cuda.coop: add physical Warp Load and Store - #11205
Draft
tpn wants to merge 4 commits into
Draft
Conversation
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. |
tpn
force-pushed
the
codex/cuda-coop-numba-group-storage-scopes
branch
from
September 4, 2026 16:52
59b7629 to
47c148d
Compare
tpn
force-pushed
the
codex/cuda-coop-numba-warp-load-store
branch
from
September 4, 2026 17:24
53edeb5 to
0398389
Compare
tpn
force-pushed
the
codex/cuda-coop-numba-group-storage-scopes
branch
from
September 4, 2026 17:56
47c148d to
53a60ea
Compare
Extend portable contracts and the Numba-CUDA-MLIR provider path. Lower complete 32-lane warps through every CUB Warp algorithm. Plan per-warp origins, storage, and synchronization. Keep logical and incomplete warps unsupported. Signed-off-by: Trent Nelson <trent@trent.me>
Exercise portable and qualified paths across every CUB Warp layout. Cover all numeric dtypes, partial tails, and three-dimensional blocks. Isolate divergent warps and invalid controls, and verify scalar typing. Signed-off-by: Trent Nelson <trent@trent.me>
Explain exact participation, per-warp origins, and valid counts. Describe layouts for portable and qualified calls. Document transpose storage and warp-scoped synchronization. Signed-off-by: Trent Nelson <trent@trent.me>
Keep the qualified Load and Store surface aligned with the portable API while retaining the backend physical-warp overloads and memory helpers. Remove backend-only algorithm enums so both spellings accept the same string selectors and reject non-string values before materialization. Export shared payload and storage protocols from the qualified module and keep their typing contracts structurally compatible. Signed-off-by: Trent Nelson <trent@trent.me>
tpn
force-pushed
the
codex/cuda-coop-numba-warp-load-store
branch
from
September 4, 2026 18:02
0398389 to
53bf279
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why this is needed
The preceding stack establishes the Numba-CUDA-MLIR foundation, completes
Block Load/Store, and makes temporary storage group-scoped. This PR uses those
seams to add the first concrete non-block collective without changing
activation, phase orchestration, caching, or generic rewrite dispatch.
Keeping this layer to complete 32-lane physical warps makes participation,
addressing, storage, and synchronization guarantees reviewable before logical
subwarps are introduced.
Reviewer-visible behavior
cuda.coop.load()andcuda.coop.store()acceptthis_warp()with the same call shape, dtype inference, and lowercaseselector strings.
direct,striped,vectorize, andtransposemap to the correspondingCUB WarpLoad and WarpStore algorithms.
block address consecutive independent tiles before the caller offset.
valid_itemsis relative to one Warp tile. Partial Load preserves invalidpayload slots unless
oob_defaultis supplied.direct,striped, andvectorizeremain allocation- and barrier-free.transposeuses one compiler-owned storage slice per physical warp and anexact-scope
syncwarp.group_by()warps, non-string or unknownselectors, block-only selectors, and explicit Warp
TempStoragefail beforeprovider materialization.
Validation
9b299e894fpassed 607 contract, packaging,public-surface, and activation tests outside the source tree.
runtime tests on an RTX PRO 6000.
git diff --checkpassed.Stack and scope
This draft is stacked on #11203. Logical-Warp Load/Store and runtime
ThreadGroupquery or synchronization methods remain out of scope. CUDA12/13 L4 and Windows CI remain external readiness gates.