Repository navigation
Conversation
…nstead of blocking Dropping a DeviceFuture whose work is still in flight used to synchronize the stream on the dropping thread, which under select!/timeout is an executor thread. The result is a handle by the DeviceOp::execute contract (every device-visible resource is retained by the submission), so it is released immediately; the execution context is parked with the completion reactor behind a flag write enqueued after the abandoned work and released on a dedicated reaper thread when the flag lands. The reactor only hands off, never releases. If the context cannot be parked it is dropped inline, which is the previous blocking wait; faulted and capturing streams still leak the owners with a report (quiet when the fault was already delivered). reaper::parked() and reaper::reaped_total() expose the counts. Signed-off-by: Melih Elibol <elibol@users.noreply.github.com>
roivanov
requested review from
elibol,
kkraus14,
nihalpasham and
rparolin
as code owners
October 7, 2026 18:27
This was referenced Oct 7, 2026
elibol
pushed a commit
that referenced
this pull request
Oct 7, 2026
## Summary `AGENTS.md` now records the cutile-rs transplant procedure used for [NVlabs/cutile-rs#305](NVlabs/cutile-rs#305) / [#1391](#1391), so the next replay can follow the same steps. ## Changes - Keep the original author as author, committer, and the only sign-off. - Prefix paths with `cutile-rs/`, then cherry-pick so the host-crate move to the repository root is applied again. - Leave code conflicts for a developer. A changelog note that belongs under Unreleased may be resolved. - Push that feature branch to `NVIDIA/cuda-rust` and cross-link the source pull request. This is the one exception to the fork-only push rule. ## Testing Documentation only. No code or tests to run. - [ ] `just -f cuda-oxide/Justfile check` passes (the local mirror of CI: fmt, clippy, tests, guards, docs) - [ ] `cargo oxide run <example>` passes, or `cuda-oxide/scripts/smoketest.sh -o '^<example>$'` - [x] New example added (if applicable) ## Checklist - [x] All commits signed off (`git commit -s`) - [x] SPDX headers on new source files --- > Questions about the review? Ping us in [#contributors on Discord](https://discord.gg/ZUEr4AhH5C). Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
Collaborator
Collaborator
Author
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.
On behalf of @elibol. Transplant of NVlabs/cutile-rs#305 onto CUDA Rust after the repository merge. The commit keeps the original author and sign-off. Host-crate paths follow the move from
cutile-rs/cuda-async/tocuda-async/at the repository root.The source pull request is still a draft and was not targeted at 0.4.0. The changelog note is under Unreleased.
Summary
Dropping an in-flight
DeviceFutureno longer synchronizes the stream on the dropping thread. The result handle is released immediately. The execution context is parked with the completion reactor and released on a dedicated reaper thread once a flag write enqueued behind the abandoned work lands.Changes
cuda-async/src/reaper.rs.cuda_async::reaper::parked()andreaped_total().cutile-rs/CHANGELOG.md: a future drop is no longer a barrier before an unchecked host access through a raw device pointer.Testing
just -f cuda-oxide/Justfile checkpasses (the local mirror of CI: fmt, clippy, tests, guards, docs)cargo oxide run <example>passes, orcuda-oxide/scripts/smoketest.sh -o '^<example>$'cargo check -p cuda-asyncdid not run here: no CUDA 13.0+ toolkit is installed on this machine.Checklist
git commit -s)