Skip to main content

Module launch

Module launch 

Source
Expand description

Owner-bearing access recorder for one CUDA launch.

The recorder retains real allocations/import tokens without retaining Rust borrows, so callers can subsequently build mutable kernel parameters. Exact CUDA context and byte spans participate in the same atomic admission as safe device copies, including independently imported overlapping views. Runtime-only block identities are validated against the owning allocator.

enqueue admits the whole manifest, arms cleanup, queues dependency waits, and invokes one synchronous enqueue closure on the resolved stream. Commit publishes every shared dependency before releasing the reservation. Failure or unwind synchronizes possible work; unknown completion retains the actual owners and the whole reservation.

Both modes retain owner-bearing sources. Strict mode is additionally required by sealed resident execution domains. Neither mode permits arbitrary writes by an external framework: unsafe import must establish the producer handoff, and subsequent foreign access still requires coordination with that producer.

Structs§

CudaEnqueue
Borrowed authority for one already-admitted enqueue. Nested kernel and graph submissions use this proof rather than re-entering capture or memory admission. It cannot escape the callback or be reconstructed from a CUDA stream handle.
EnqueuedLaunch
Enqueued operation that must be completed or cancelled exactly once.
LaunchRecorder
Records buffer uses for a single launch or copy on launch_stream. Consume it with Self::enqueue, then consume the returned EnqueuedLaunch with commit or abort. Dropping a prepared transaction automatically aborts it and never panics.

Enums§

LaunchEnqueueError
Failure while preparing, enqueueing, or cleaning up a recorded operation.
RecorderMode
Recorder construction mode.