Repository navigation
Conversation
elibol
requested review from
binarybana,
cryos,
kkraus14,
nihalpasham,
roivanov and
rparolin
as code owners
October 21, 2026 19:38
copy-pr-bot
Bot
force-pushed
the
pull-request/1603
branch
from
October 21, 2026 23:10
d1ee216 to
f0f61e2
Compare
Signed-off-by: Melih Elibol <[email protected]>
Signed-off-by: Melih Elibol <[email protected]>
elibol
force-pushed
the
refactor/shared-cuda-async
branch
from
October 21, 2026 23:13
e97d214 to
fcfe932
Compare
…uncher Signed-off-by: Melih Elibol <[email protected]>
This branch has not been deployed
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.
Tile operations and SIMT launches currently use separate async runtimes and cannot compose through the same operation types. This change removes
cuda_async::simtand routes both programming models through the sharedDeviceOp,DeviceFuture, execution context, scheduler, errors and launch API.Closes #1461. Stacked on #1603, which supplies the shared core types and storage. The base is its existing
pull-request/1603mirror so this diff contains only the async migration; retarget after the prerequisite merges. Both feature branches are hosted on the contributor's fork.KernelArgumentblanket implementation usesDeviceCopy. Generic Tile scalars requireDType + DeviceCopy; tensor-only type parameters retain their independentDTypecontract. The shared argument arena preserves inline storage, padded values, over-alignment and typed destruction for the explicit unsafe boxed-argument escape hatch.AsyncKernelLaunchBuilderrequires unsafe finalization before becoming a schedulable, immutable launch. Generated typed launchers retain their checked boundaries. Tile PDL and SIMT cluster/cooperative launch paths are preserved. Raw async macros marshal slice pointers and lengths as direct scalar values; optional CPU-reference examples use the corresponding scalar bounds.DeviceBoxtransfers to/from shared typed buffers without copying and preserves ordinary read permissions. ExistingDeviceOperation,and_then,applyandarcspellings delegate to the shared implementations.cutile_inter_kernelnow uses the normal shared launch API to update the Tile-produced allocation in place, checks its pointer and allocation identity, and verifies results. Consumers, generated-project templates, documentation, UI fixtures and GPU test entry points are migrated.AGENTS.mdrecords that future branches must originate from the user's fork.Validation: shared async tests and doctests; Tile unit, aggregate GPU, submission-lifetime, interop and UI tests; cuda-host/cuda-macros suites; 268 cargo-oxide tests; four explicit SIMT lifetime/concurrency GPU tests. Both
cargo oxide run cutile_inter_kernelandcargo oxide run async_mlppass. Miri passes all seven argument-storage tests, and Loom passes the completion-handoff model. Host/Tile/affected SIMT clippy checks, formatting, strict async rustdoc, SPDX/API-path guards and Tile dependency checks pass.GPU execution was validated on one RTX 5090. This does not add multi-GPU/NVLink hardware coverage. API migration and custom-operation retention obligations are documented in
cuda-async/README.md.Additional validation: the full CPU runner passes (1,381 tests; 94 intentionally ignored), all top-level SIMT example workspaces pass Clippy with warnings denied, and all 144 macro unit tests pass. The
host_closureGPU example also passes all 13 scenarios, covering the corrected async slice argument marshalling.