pub enum CaptureMode {
Global,
ThreadLocal,
Relaxed,
}Expand description
Selects how CUDA graph capture serializes interactions with other
threads. Mirrors cudaStreamCaptureMode.
Global— any CUDA API call from any thread that touches the capturing stream (or any thread that is also capturing) will invalidate capture. Safest for debugging; matches PyTorch’s default.ThreadLocal— only calls from the capturing thread can invalidate capture. Other threads may freely use unrelated streams. This is what ferrotorch-gpu has always used.Relaxed— the driver does not track cross-thread interactions at all. Fastest, but the caller is fully responsible for making sure no other thread interferes.
Variants§
Global
Global serialization (CU_STREAM_CAPTURE_MODE_GLOBAL).
ThreadLocal
Thread-local serialization (CU_STREAM_CAPTURE_MODE_THREAD_LOCAL).
This is the default in PyTorch’s cuda.graph context.
Relaxed
Relaxed — no cross-thread serialization
(CU_STREAM_CAPTURE_MODE_RELAXED).
Implementations§
Source§impl CaptureMode
impl CaptureMode
Sourcepub fn to_cuda(self) -> CUstreamCaptureMode
pub fn to_cuda(self) -> CUstreamCaptureMode
Convert to the raw cudarc enum.
Trait Implementations§
Source§impl Clone for CaptureMode
impl Clone for CaptureMode
Source§fn clone(&self) -> CaptureMode
fn clone(&self) -> CaptureMode
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CaptureMode
impl Debug for CaptureMode
Source§impl Default for CaptureMode
impl Default for CaptureMode
Source§impl Hash for CaptureMode
impl Hash for CaptureMode
Source§impl PartialEq for CaptureMode
impl PartialEq for CaptureMode
impl Copy for CaptureMode
impl Eq for CaptureMode
impl StructuralPartialEq for CaptureMode
Auto Trait Implementations§
impl Freeze for CaptureMode
impl RefUnwindSafe for CaptureMode
impl Send for CaptureMode
impl Sync for CaptureMode
impl Unpin for CaptureMode
impl UnsafeUnpin for CaptureMode
impl UnwindSafe for CaptureMode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more