Skip to content

Support Rust Direct Load and Store within physical warps - #12113

Draft
tpn wants to merge 86 commits into
NVIDIA:mainfrom
tpn:codex/cuda-coop-rust-warp
Draft

tpn wants to merge 86 commits into
NVIDIA:mainfrom
tpn:codex/cuda-coop-rust-warp

Conversation

@tpn

@tpn tpn commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Physical warps can call coop::load and coop::store through the group-first Direct API. Each warp accesses its own 32-lane tile; sibling warps may choose different counts and defaults. Store preserves payload values and validity, while collective carriers retain their declared group ownership.

Review after #12105. Review the owning Physical-Warp Direct changes (10 files); GitHub’s main-based diff includes prerequisites. This slice adds dispatch, native specialization, checked offsets and ownership, tests, and documentation. It uses the matching compiler from cuda-rust #1593 with Rust 1.99.1. Logical widths and other Warp algorithms are separate work.

Local validation passes host tests, strict lints, guide rendering, 24 raw and 264 typed native specializations, and all 64 compiler checks (22 accepts, 42 rejects). Release and DEV consumers have complete executable, typed-ABI, launch, scratch, and resource inspection. Actual stack and local-memory traffic are recorded without a spill-free or performance claim.

Current-binary GPU validation passes seven numerical runs, ten sanitizer runs, and eleven expected device traps, each followed by a passing health replay. Current-head host CI, pre-commit.ci, and the project check pass.

tpn added 30 commits October 19, 2026 21:39
Create a host-only Cargo workspace that specializes selected CUB forms
through NVRTC and reports exact scratch layouts with their LTO output.
Bind specialization identities to source, headers and toolkit bytes.
Include a runnable provider example, Rust guide and CPU checks.

Signed-off-by: Trent Nelson <trent@trent.me>
Install the pinned toolchain without updating rustup itself.

Signed-off-by: Trent Nelson <trent@trent.me>
Serve native specialization batches through the versioned Oxide boundary
and exercise Load and Store through a standalone Cargo consumer with a
generic helper dependency.

Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Reuse the same helper sites with 64- and 128-thread kernels and retain

one device static across their emitted bodies. Check each launch plan

and preserve fixed external-symbol diagnostics.

Signed-off-by: Trent Nelson <trent@trent.me>
Select fixture output locations from raw CUDA coordinates and exercise
payload initialization, access and copying at both item counts. Annotate
compile-fail examples and clarify hierarchy ordering in the guide.

Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>

# Conflicts:
#	rust/Cargo.lock
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
Signed-off-by: Trent Nelson <trent@trent.me>
tpn added 30 commits October 23, 2026 08:33
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Keep the owning implementation and tests unchanged while applying
its scoped compiler, lock and documentation compatibility updates.

Signed-off-by: Trent Nelson <trent@trent.me>
Resolve artifact metadata from the pinned compiler source.
Keep the owning implementation and dependency versions unchanged.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Record the existing provider build dependency in the query lock.
Keep implementation and third-party dependency records unchanged.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Use the existing compiler diagnostic for three original cases.
Keep their program bodies and all other expectations unchanged.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Use the current compiler diagnostic for the original case.
Keep its program body and all other expectations unchanged.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Use the current compiler diagnostic for the original case.
Keep its program body and all other expectations unchanged.

Signed-off-by: Trent Nelson <trent@trent.me>
Merge the corrected prerequisite while preserving this owner.

Signed-off-by: Trent Nelson <trent@trent.me>
Use the scoped barrier diagnostic for conflicting Warp accesses.
Accept the two finite sibling-warp read loops after reconvergence,
matching the migrated checker and existing logical-warp policy.

Signed-off-by: Trent Nelson <trent@trent.me>

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

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant