Skip to content

build: add CUDA 13.4 and 13.x versions to default candidates - #1474

Open
temotskipa wants to merge 3 commits into
NVIDIA:mainfrom
temotskipa:build/cuda-13x-toolkit-candidates
Open

temotskipa wants to merge 3 commits into
NVIDIA:mainfrom
temotskipa:build/cuda-13x-toolkit-candidates

Conversation

@temotskipa

@temotskipa temotskipa commented Oct 10, 2026 •

Copy link
Copy Markdown

Summary

Adds CUDA 13.4 and the other 13.x minor versions to the default toolkit roots that cuda-bindings probes when neither CUDA_TOOLKIT_PATH nor CUDA_HOME is set. On main, a machine with only CUDA 13.4 at its default location fails the cuda-bindings build with "no CUDA 13.0+ toolkit was found in default locations", although the Tile runtime's tileiras lookup and the cutile-rs README already list 13.4.

Changes

  • cuda-bindings/build.rs: add v13.5, v13.4, v13.1 and v13.0 on Windows, and /usr/local/cuda-13.5, -13.4, -13.1 and -13.0 elsewhere, to default_cuda_toolkit_candidates(), newest first.
  • cuda-core/build.rs and cuda-oxide/crates/cargo-oxide/src/commands/doctor.rs: the same entries in their hand-maintained mirrors of that list, so the multicast probe and cargo oxide doctor resolve the toolkit the bindings were generated from.
  • cuda-bindings/README.md and cuda-oxide/cuda-oxide-book/getting-started/installation.md: the documented list.

Order still decides which toolkit wins. With several toolkits installed and no variable set, a 13.5 or 13.4 install is now chosen ahead of 13.3.

Left alone: /opt/cuda is in the cuda-bindings list but in neither mirror on main.

Testing

Native Windows 11 (MSVC), Rust 1.98.0, LLVM 23.1.3, GeForce RTX 4070 Ti, with CUDA Toolkit 13.4 as the only toolkit, at its default path, and no toolkit variables set:

  • cargo check -p cuda-bindings: passes, and the build script resolves C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4. On main it stops with "no CUDA 13.0+ toolkit was found in default locations".

  • cuda-core build script: reads v13.4\include\cuda.h and emits cuda_has_multicast. On main it finds no header and leaves the cfg unset.

  • cuda-core itself does not compile on Windows MSVC on this branch or on main; those are the enum type errors that fix: standardize non-negative enum types for windows msvc #1473 fixes. With fix: standardize non-negative enum types for windows msvc #1473 merged in locally, and still no toolkit variables: cargo check --workspace --all-targets passes, cargo test -p cuda-core --lib passes (45), and cargo run -p cutile-examples --example saxpy runs on the GPU with the expected results.

  • cargo test -p cargo-oxide toolkit (8 tests) and discovery_takes_the_first_candidate_that_validates: pass. Run with stable 1.98.0, not the pinned nightly, which is not installed here.

  • rustfmt --check on the three Rust files is clean.

  • Not covered locally: the non-Windows lists (not compiled on this machine), the book build, and the two template items below.

  • just -f cuda-oxide/Justfile check passes (the local mirror of CI: fmt, clippy, tests, guards, docs)

  • cargo oxide run <example> passes, or cuda-oxide/scripts/smoketest.sh -o '^<example>$'

Checklist

  • All commits signed off
  • SPDX headers on new source files (no new files)

temotskipa and others added 2 commits October 10, 2026 18:14
Signed-off-by: Temo Tskipuri <ttskipuri@gmail.com>
cuda-core's multicast probe and `cargo oxide doctor` each carry a
hand-maintained copy of cuda-bindings' default toolkit roots and must
resolve the same toolkit the bindings were generated from. Give both
the 13.5 through 13.0 entries added there, and update the two documents
that list the roots.

Signed-off-by: Temo Tskipuri <ttskipuri@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 10, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants