Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 34 additions & 11 deletions .github/workflows/ci_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,37 +27,54 @@ 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:
- name: Checkout repository
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}}"

- 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
Expand All @@ -68,9 +85,9 @@ 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
echo "$env:CUDA_PATH\\${{matrix.nvvm-dll-dir}}" | `
Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

- name: Verify CUDA, Rust installation
run: |
Expand Down Expand Up @@ -103,14 +120,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
Loading