Skip to content

Add Dockerfiles for CUDA 13. #488

Add Dockerfiles for CUDA 13.

Add Dockerfiles for CUDA 13. #488

Workflow file for this run

name: CI on Windows
on:
pull_request:
paths-ignore:
- "**.md"
push:
branches:
- main
paths-ignore:
- "**.md"
env:
RUST_LOG: info
RUST_BACKTRACE: 1
jobs:
rust:
name: Build / ${{ matrix.os }} / CUDA-${{ matrix.cuda }}
runs-on: ${{ matrix.os }}
env:
LLVM_LINK_STATIC: 1
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
target: x86_64-pc-windows-msvc
cuda: "12.8.1"
linux-local-args: []
sub-packages:
[
"nvcc",
"nvrtc",
"nvrtc_dev",
"cuda_profiler_api",
"cudart",
"cublas",
"cublas_dev",
"curand",
"curand_dev",
]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install CUDA
uses: Jimver/[email protected]
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
- name: Install rust-toolchain
run: cargo version
- name: Add rustup components
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
- name: Verify CUDA, Rust installation
run: |
nvcc --version
rustup show
- name: Load Rust Cache
uses: Swatinem/[email protected]
with:
key: ${{ matrix.os }}-${{ matrix.target }}-${{ matrix.cuda }}
- name: Rustfmt
run: cargo fmt --all -- --check
- name: Build all bindings
run: cargo build --all-features -p cust_raw
# Exclude crates that require cuDNN, not available on Windows CI: cudnn, cudnn-sys.
# Exclude vecadd because of a link error involving nanorand and `SystemFunction036` (a.k.a.
# `RtlGenRandom`).
- name: Build workspace
run: cargo build --workspace --exclude cudnn --exclude cudnn-sys --exclude "vecadd*"
# Exclude crates that require cuDNN, not available on Windows CI: cudnn, cudnn-sys.
- name: Clippy
env:
RUSTFLAGS: -Dwarnings
run: cargo clippy --workspace --exclude cudnn --exclude cudnn-sys
# 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
# Exclude crates that require cuDNN, not available on Windows CI: cudnn, cudnn-sys.
# Exclude cust_raw because it triggers hundreds of warnings.
- name: Check documentation
env:
RUSTDOCFLAGS: -Dwarnings
run: cargo doc --workspace --all-features --document-private-items --no-deps --exclude cudnn --exclude cudnn-sys --exclude cust_raw
# 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