diff --git a/.github/scripts/build-cuda.sh b/.github/scripts/build-cuda.sh index 8985327f2..672ab1121 100644 --- a/.github/scripts/build-cuda.sh +++ b/.github/scripts/build-cuda.sh @@ -11,14 +11,14 @@ if [[ -v cuda_targets ]]; then elif [ "${build_arch}" = "aarch64" ]; then build_capability="75;80;90" - # CUDA 12.8: Add sm100 - [[ "${cuda_version}" == 12.8.* ]] && build_capability="75;80;90;100" + # CUDA 12.8+: Add sm100/sm120 + [[ "${cuda_version}" == 12.8.* || "${cuda_version}" == 12.9.* ]] && build_capability="75;80;90;100;120" else # By default, target Maxwell through Hopper. build_capability="50;52;60;61;70;75;80;86;89;90" - # CUDA 12.8: Add sm100 and sm120; remove < sm75 to align with PyTorch 2.7+cu128 minimum - [[ "${cuda_version}" == 12.8.* ]] && build_capability="75;80;86;89;90;100;120" + # CUDA 12.8+: Add sm100 and sm120; remove < sm75 to align with PyTorch 2.7+cu128 minimum + [[ "${cuda_version}" == 12.8.* || "${cuda_version}" == 12.9.* ]] && build_capability="75;80;86;89;90;100;120" fi [[ "${build_os}" = windows-* ]] && python3 -m pip install ninja diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d3deb26ee..2ca19e32f 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -72,16 +72,17 @@ jobs: - os: windows-latest arch: x86_64 cuda_version: - ["11.8.0", "12.0.1", "12.1.1", "12.2.2", "12.3.2", "12.4.1", "12.5.1", "12.6.3", "12.8.1"] + ["11.8.0", "12.0.1", "12.1.1", "12.2.2", "12.3.2", "12.4.1", "12.5.1", "12.6.3", "12.8.1", "12.9.1"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 # Windows: We install Cuda on the agent (slow) - - uses: Jimver/cuda-toolkit@v0.2.22 + - uses: Jimver/cuda-toolkit@c35baa1a18fd1fc9dcf47c5bd839bf30559c0bc3 # v0.2.24 if: startsWith(matrix.os, 'windows') id: cuda-toolkit with: - cuda: ${{ matrix.cuda_version }} + # Temporary: Use CUDA 12.9.0 for Windows until 12.9.1 is supported with this action. + cuda: ${{ matrix.cuda_version == '12.9.1' && '12.9.0' || matrix.cuda_version }} method: "network" sub-packages: '["nvcc","cudart","cusparse","cublas","thrust","nvrtc_dev","cublas_dev","cusparse_dev"]' linux-local-args: '["--toolkit"]' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c6423b1f8..483ddc6ec 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -49,8 +49,8 @@ jobs: build-cuda: strategy: matrix: - cuda_version: ["11.8.0", "12.6.3", "12.8.1"] - os: [ubuntu-22.04, ubuntu-22.04-arm, windows-2025] + cuda_version: ["11.8.0", "12.6.3", "12.8.1", "12.9.1"] + os: [ubuntu-22.04, ubuntu-22.04-arm] include: - os: ubuntu-22.04 arch: x86_64 @@ -58,13 +58,14 @@ jobs: arch: aarch64 - os: windows-2025 arch: x86_64 + cuda_version: "11.8.0" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Install CUDA Toolkit - uses: Jimver/cuda-toolkit@v0.2.23 + uses: Jimver/cuda-toolkit@c35baa1a18fd1fc9dcf47c5bd839bf30559c0bc3 # v0.2.24 if: startsWith(matrix.os, 'windows') id: cuda-toolkit with: @@ -231,7 +232,7 @@ jobs: os: [ubuntu-22.04, windows-2025] arch: [x86_64] gpu: [T4, L40S] - cuda_version: ["11.8.0", "12.6.3", "12.8.1"] + cuda_version: ["11.8.0", "12.6.3", "12.8.1", "12.9.1"] include: - cuda_version: "11.8.0" torch_version: "2.2.2" @@ -242,6 +243,9 @@ jobs: - cuda_version: "12.8.1" torch_version: "2.7.1" pypi_index: "https://download.pytorch.org/whl/cu128" + - cuda_version: "12.9.1" + torch_version: "2.8.0" + pypi_index: "https://download.pytorch.org/whl/nightly/cu129" # Linux L40S runners @@ -274,12 +278,14 @@ jobs: gpu: T4 runner: CUDA-Windows-x64 cuda_version: "11.8.0" - torch_version: "2.7.1" + torch_version: "2.7.1" # Note: this is the last PyTorch release supporting CUDA 11.8. pypi_index: "https://download.pytorch.org/whl/cu118" exclude: # Our current T4 Windows runner has a driver too old (471.11) # and cannot support CUDA 12+. Skip for now. + - os: windows-2025 + cuda_version: "12.9.1" - os: windows-2025 cuda_version: "12.8.1" - os: windows-2025 @@ -311,7 +317,7 @@ jobs: - name: Install dependencies run: | - pip install torch==${{ matrix.torch_version }} --index-url ${{ matrix.pypi_index }} + pip install --pre torch~=${{ matrix.torch_version }}.dev0 --index-url ${{ matrix.pypi_index }} pip install -e ".[test]" pip install pytest-cov