Replace Ubuntu 22.04 by 26.04 in Github workflows

Ubuntu 22.04 is approaching the end of its standard support, while 26.04
is the current LTS release. Build on 24.04 and 26.04 instead and run the
Android workflow on the newer release.

The CUDA toolkit packaged by Ubuntu 26.04 predates its default GCC.
Install CUDA 13 from the NVIDIA repository instead together with the
matching cuDSS release.

Change-Id: Ic47f6e52d39729b76e173a306d519b0b063f9ef6
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index 2251a2a..0e63218 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -17,7 +17,7 @@
       fail-fast: true
       matrix:
         os:
-          - ubuntu-24.04
+          - ubuntu-26.04
         abi:
           - arm64-v8a
           - armeabi-v7a
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 2b75c9d..6b538ca 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -18,8 +18,8 @@
       fail-fast: true
       matrix:
         os:
-          - ubuntu:22.04
           - ubuntu:24.04
+          - ubuntu:26.04
         build_type:
           - Release
         lib:
@@ -28,6 +28,11 @@
         gpu:
           - cuda
           - no-cuda
+        include:
+          - os: ubuntu:24.04
+            cudss: 0.3.0.9_cuda12
+          - os: ubuntu:26.04
+            cudss: 0.8.0.10_cuda13
 
     steps:
       - name: Setup Dependencies
@@ -51,41 +56,42 @@
         with:
           submodules: recursive
 
-      # nvidia cuda toolkit + gcc combo shipped with 22.04LTS is broken
-      # and is not able to compile code that uses thrust
-      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1006962
-      - name: Setup CUDA Toolkit Repositories (22.04)
-        if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:22.04'
-        run: |
-          wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
-          dpkg -i cuda-keyring_1.0-1_all.deb
-
       - name: Setup CUDA Toolkit Repositories (24.04)
         if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:24.04'
         run: |
           wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
           dpkg -i cuda-keyring_1.1-1_all.deb
 
-      - name: Setup CUDA Toolkit (<24.04)
-        if: matrix.gpu == 'cuda' && matrix.os != 'ubuntu:24.04'
+      - name: Setup CUDA Toolkit Repositories (26.04)
+        if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:26.04'
         run: |
-          apt-get update
-          apt-get install -y cuda
-          echo "CUDACXX=/usr/local/cuda/bin/nvcc" >> $GITHUB_ENV
+          wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb
+          dpkg -i cuda-keyring_1.1-1_all.deb
 
-      - name: Setup CUDA Toolkit (>=24.04)
+      - name: Setup CUDA Toolkit (24.04)
         if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:24.04'
         run: |
           apt-get update
           apt-get install -y nvidia-cuda-toolkit
           echo "CUDACXX=/usr/lib/nvidia-cuda-toolkit/bin/nvcc" >> $GITHUB_ENV
 
+      - name: Setup CUDA Toolkit (26.04)
+        if: matrix.gpu == 'cuda' && matrix.os == 'ubuntu:26.04'
+        run: |
+          apt-get update
+          apt-get install -y \
+            cuda-minimal-build-13-3 \
+            libcublas-dev-13-3 \
+            libcusolver-dev-13-3 \
+            libcusparse-dev-13-3
+          echo "CUDACXX=/usr/local/cuda-13.3/bin/nvcc" >> $GITHUB_ENV
+
       - name: Setup cuDSS
         if: matrix.gpu == 'cuda'
         run: |
-          wget https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-x86_64/libcudss-linux-x86_64-0.3.0.9_cuda12-archive.tar.xz
-          tar -xf libcudss-linux-x86_64-0.3.0.9_cuda12-archive.tar.xz
-          echo "cudss_DIR=${{github.workspace}}/libcudss-linux-x86_64-0.3.0.9_cuda12-archive/lib/cmake/cudss" >> $GITHUB_ENV
+          wget https://developer.download.nvidia.com/compute/cudss/redist/libcudss/linux-x86_64/libcudss-linux-x86_64-${{matrix.cudss}}-archive.tar.xz
+          tar -xf libcudss-linux-x86_64-${{matrix.cudss}}-archive.tar.xz
+          echo "cudss_DIR=${{github.workspace}}/libcudss-linux-x86_64-${{matrix.cudss}}-archive/lib/cmake/cudss" >> $GITHUB_ENV
 
       - name: Cache Mold
         id: cache-mold