cuda.coop: add logical Warp Load and Store - #11207
Draft
tpn wants to merge 5 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-warp-load-store
branch
from
September 4, 2026 17:24
53edeb5 to
0398389
Compare
tpn
force-pushed
the
codex/cuda-coop-numba-logical-warp-load-store
branch
from
September 4, 2026 17:24
16dbc79 to
a1439f9
Compare
tpn
force-pushed
the
codex/cuda-coop-numba-warp-load-store
branch
from
September 4, 2026 18:02
0398389 to
53bf279
Compare
Allow this_warp().group_by(width) to select every supported CUB Warp Load and Store specialization. Carry logical topology through provider selection, offset planning, storage slicing, and masked synchronization without adding runtime ThreadGroup APIs. Signed-off-by: Trent Nelson <trent@trent.me>
Exercise portable and qualified logical-Warp calls across all supported widths, algorithms, and scalar data types. Cover per-group offsets and validity, divergent transpose calls, runtime traps, real NVRTC compilation, cache identity, and strict typing. Signed-off-by: Trent Nelson <trent@trent.me>
Describe supported logical widths, per-group indexing and validity, and the storage and convergence contracts for Warp Load and Store. Keep ThreadGroup descriptor-only and call out that explicit Warp TempStorage remains unsupported. Signed-off-by: Trent Nelson <trent@trent.me>
Exercise logical Warp Load and Store with runtime offsets loaded from an array and varied independently across groups. Document that runtime validity, default, and offset controls must remain uniform within each participating group. Signed-off-by: Trent Nelson <trent@trent.me>
Use the same lowercase string algorithm selectors for portable and qualified logical-Warp Load and Store calls. Retain negative coverage for non-string and unsupported selectors without reintroducing backend enum artifacts. Signed-off-by: Trent Nelson <trent@trent.me>
tpn
force-pushed
the
codex/cuda-coop-numba-logical-warp-load-store
branch
from
September 4, 2026 18:05
a1439f9 to
8ac30b9
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 complete Block and physical-Warp Load/Store
plus topology-aware storage and synchronization. This PR proves that those
same contracts support logical subwarps without changing generic dispatch,
caching, or rewrite orchestration.
Reviewer-visible behavior
cuda.coop.load()andcuda.coop.store()acceptthis_warp().group_by(width)with the same call shape, dtype inference, andlowercase selector strings.
block must contain complete physical warps.
direct,striped,vectorize, andtransposemap to the correspondingCUB WarpLoad and WarpStore algorithms at the selected width.
caller offset, and
valid_itemsis relative to that logical tile.oob_defaultpreserve invalid payload slotsusing the logical lane rank.
direct,striped, andvectorizeremain allocation- and barrier-free.transposeuses one compiler-owned storage slice per logical group and anexact-mask
syncwarp, allowing sibling logical groups to diverge.unsupported selectors, and explicit Warp
TempStoragefail before providermaterialization.
Validation
supported widths and algorithms, all ten numeric dtypes, logical tails,
x-major 3-D blocks, divergent subwarps, and isolated invalid-runtime traps.
9b299e894fpassed 607 contract, packaging,public-surface, and activation tests, 50 real NVRTC LTO/nvJitLink compile
tests, and all 366 runtime tests on the same GPU.
git diff --checkpassed.Stack and scope
This draft is stacked on #11205. It supports logical groups formed with
this_warp().group_by(width); mappings such aswarps_within_blockandruntime
ThreadGroupquery or synchronization methods remain out of scope.CUDA 12/13 L4 and Windows CI remain external readiness gates.