From 0706c1741efc10e8d8d67de04af1630e276b501d Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 2 Dec 2025 14:00:38 +1100 Subject: [PATCH 1/2] PowerShell CI tweaks. - `pwsh` is the default shell on Windows, no need to specify it. - Putting a backtick at the end of a line lets you continue it on the next, like a backslash in Unix shells. --- .github/workflows/ci_windows.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci_windows.yml b/.github/workflows/ci_windows.yml index 7923fb66..44628039 100644 --- a/.github/workflows/ci_windows.yml +++ b/.github/workflows/ci_windows.yml @@ -57,7 +57,6 @@ jobs: log-file-suffix: "${{matrix.os}}-${{matrix.cuda}}" - name: List CUDA_PATH files - shell: pwsh run: Get-ChildItem -Path $env:CUDA_PATH -Recurse | ForEach-Object { $_.FullName } # random command that forces rustup to install stuff in rust-toolchain @@ -68,7 +67,6 @@ jobs: run: rustup component add rustfmt clippy - name: Update PATH to expose CUDA codegen backend - shell: pwsh run: | echo "$env:CUDA_PATH\nvvm\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append @@ -103,14 +101,20 @@ jobs: # Exclude crates with tests that require an NVIDIA GPU: blastoff, cudnn, cust. # Exclude crates that require cuDNN, not available on Windows CI: cudnn, cudnn-sys. - name: Test - run: cargo test --workspace --exclude blastoff --exclude cudnn --exclude cudnn-sys --exclude cust + run: | + cargo test --workspace ` + --exclude blastoff --exclude cudnn --exclude cudnn-sys --exclude cust # Exclude crates that require cuDNN, not available on Windows CI: cudnn, cudnn-sys. - name: Check documentation env: RUSTDOCFLAGS: -Dwarnings - run: cargo doc --workspace --all-features --document-private-items --no-deps --exclude cudnn --exclude cudnn-sys + run: | + cargo doc --workspace --all-features --document-private-items --no-deps ` + --exclude cudnn --exclude cudnn-sys # Disabled due to dll issues, someone with Windows knowledge needed # - name: Compiletest - # run: cargo run -p compiletests --release --no-default-features -- --target-arch compute_61,compute_75,compute_90 + # run: | + # cargo run -p compiletests --release --no-default-features ` + # -- --target-arch compute_61,compute_75,compute_90 From f364fd40424992202431bf7cc721c1873605bb32 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Mon, 1 Dec 2025 13:15:35 +1100 Subject: [PATCH 2/2] Test CUDA 13.0 on Windows CI. We need to account for some CUDA 12 vs 13 differences: - new sub-packages - the location of `nvvm64_40_0.dll` - Jitver/cuda-toolkit needs updating to handle CUDA 13 --- .github/workflows/ci_windows.yml | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci_windows.yml b/.github/workflows/ci_windows.yml index 44628039..84983583 100644 --- a/.github/workflows/ci_windows.yml +++ b/.github/workflows/ci_windows.yml @@ -27,18 +27,37 @@ jobs: - os: windows-latest target: x86_64-pc-windows-msvc cuda: "12.8.1" - linux-local-args: [] + nvvm-dll-dir: "nvvm\\bin" sub-packages: [ + "cublas", + "cublas_dev", + "cuda_profiler_api", + "cudart", + "curand", + "curand_dev", "nvcc", "nvrtc", "nvrtc_dev", - "cuda_profiler_api", - "cudart", + ] + - os: windows-latest + target: x86_64-pc-windows-msvc + cuda: "13.0.2" + nvvm-dll-dir: "nvvm\\bin\\x64" + sub-packages: + [ + "crt", # new subpackage in CUDA 13 "cublas", "cublas_dev", + "cuda_profiler_api", + "cudart", "curand", "curand_dev", + "nvcc", + "nvptxcompiler", # new subpackage in CUDA 13 + "nvrtc", + "nvrtc_dev", + "nvvm", # new subpackage in CUDA 13 ] steps: @@ -46,12 +65,11 @@ jobs: uses: actions/checkout@v4 - name: Install CUDA - uses: Jimver/cuda-toolkit@v0.2.22 + uses: Jimver/cuda-toolkit@v0.2.29 id: cuda-toolkit with: cuda: ${{ matrix.cuda }} method: network - linux-local-args: ${{ toJson(matrix.linux-local-args) }} use-local-cache: false sub-packages: ${{ toJson(matrix.sub-packages) }} log-file-suffix: "${{matrix.os}}-${{matrix.cuda}}" @@ -68,7 +86,8 @@ jobs: - name: Update PATH to expose CUDA codegen backend run: | - echo "$env:CUDA_PATH\nvvm\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + echo "$env:CUDA_PATH\\${{matrix.nvvm-dll-dir}}" | ` + Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Verify CUDA, Rust installation run: |