Skip to content

Add Rust block warp-transpose Load and Store - #12112

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

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

Conversation

@tpn

@tpn tpn commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

coop::WarpTranspose and coop::WarpTransposeTimesliced add CUB's warp-based exchanges to block Load/Store. Both require a complete block with a thread count divisible by 32. Store permutes values and their validity bits into warp-striped order, including for zero-count writes; the timesliced form reduces the CUB exchange buffer.

Review after #12106. This draft owns the two algorithm selectors, native mappings, scratch queries, public tests, source-shared example and documentation. It uses NVIDIA/cuda-rust#1574. View this slice.

Validation covers 104 new cases within a 2,906-case combined binary, all three sanitizers, expected device failures, 36 compiler contrasts and 798 native specializations. The standalone example checks 11,436 values. Device inspection distinguishes the observation fixture's local traffic from the minimal example, which has none. Host tests, Clippy, rustdoc, strict guide rendering and hooks pass. Representative timing remains separate.

Rust host CI passes on this head.

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 <[email protected]>
Install the pinned toolchain without updating rustup itself.

Signed-off-by: Trent Nelson <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Signed-off-by: Trent Nelson <[email protected]>

# Conflicts:
#	rust/Cargo.lock
tpn added 24 commits October 20, 2026 10:49
…da-coop-rust-storage-publication

Signed-off-by: Trent Nelson <[email protected]>
…da-coop-rust-direct-review

Signed-off-by: Trent Nelson <[email protected]>
…da-coop-rust-transpose-public

Signed-off-by: Trent Nelson <[email protected]>

# Conflicts:
#	rust/cuda-coop-codegen/tests/oxide-fixture/README.md
#	rust/cuda-coop-codegen/tests/oxide-fixture/api/Cargo.toml
#	rust/cuda-coop-codegen/tests/run_oxide_fixture.py
…da-coop-rust-transpose-public

Signed-off-by: Trent Nelson <[email protected]>
…da-coop-rust-transpose-final-pin

Signed-off-by: Trent Nelson <[email protected]>
Support both CUB warp-transpose algorithms for complete blocks.
Preserve payload validity through Store permutation and query exact
scratch layouts for regular and timesliced exchanges.

Signed-off-by: Trent Nelson <[email protected]>
@copy-pr-bot

copy-pr-bot Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@github-project-automation github-project-automation Bot moved this to Todo in CCCL Oct 21, 2026
@cccl-authenticator-app cccl-authenticator-app Bot moved this from Todo to In Progress in CCCL Oct 21, 2026

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