feat(llvm): add llvm19 support for compute_100+ #660
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI on Windows | |
| on: | |
| pull_request: | |
| paths-ignore: | |
| - "**.md" | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - "**.md" | |
| env: | |
| RUST_LOG: info | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| build: | |
| 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" | |
| nvvm-dll-dir: "nvvm\\bin" | |
| sub-packages: | |
| [ | |
| "cublas", | |
| "cublas_dev", | |
| "cuda_profiler_api", | |
| "cudart", | |
| "curand", | |
| "curand_dev", | |
| "nvcc", | |
| "nvrtc", | |
| "nvrtc_dev", | |
| ] | |
| - 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.29 | |
| id: cuda-toolkit | |
| with: | |
| cuda: ${{ matrix.cuda }} | |
| method: network | |
| use-local-cache: false | |
| sub-packages: ${{ toJson(matrix.sub-packages) }} | |
| log-file-suffix: "${{matrix.os}}-${{matrix.cuda}}" | |
| - name: List CUDA_PATH files | |
| 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 | |
| run: | | |
| echo "$env:CUDA_PATH\\${{matrix.nvvm-dll-dir}}" | ` | |
| 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/rust-cache@v2.7.7 | |
| 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. | |
| - name: Build workspace | |
| run: cargo build --workspace --exclude cudnn --exclude cudnn-sys | |
| # 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 rustc_codegen_nvvm: `--all-features` enables its `llvm19` feature, | |
| # whose build.rs requires an LLVM 19 toolchain not present in the CI image. | |
| - name: Check documentation | |
| env: | |
| RUSTDOCFLAGS: -Dwarnings | |
| run: | | |
| cargo doc --workspace --all-features --document-private-items --no-deps ` | |
| --exclude cudnn --exclude cudnn-sys --exclude rustc_codegen_nvvm | |
| # 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 |