pub enum KernelMode {
Batch,
Ring,
}Expand description
Kernel execution mode.
Determines how the kernel is launched and manages state:
Batch: Traditional GPU offload with CPU orchestrationRing: Persistent GPU-native actor with lock-free messaging
Variants§
Batch
Batch kernel mode (CPU-orchestrated).
Characteristics:
- 10-50μs launch overhead per invocation
- State resides in CPU memory between operations
- Data transfer via pinned memory (PCIe bandwidth limited)
- Best for: Periodic heavy computation (>10ms compute time)
Ring
Ring kernel mode (GPU-persistent actor).
Characteristics:
- 100-500ns message processing latency
- State permanently in GPU memory
- Communication via lock-free ring buffers (zero-copy)
- Best for: High-frequency operations (>10K msgs/sec), real-time
Implementations§
Source§impl KernelMode
impl KernelMode
Sourcepub const fn typical_overhead_us(&self) -> f64
pub const fn typical_overhead_us(&self) -> f64
Returns the typical launch overhead in microseconds.
Trait Implementations§
Source§impl Clone for KernelMode
impl Clone for KernelMode
Source§fn clone(&self) -> KernelMode
fn clone(&self) -> KernelMode
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 KernelMode
impl Debug for KernelMode
Source§impl<'de> Deserialize<'de> for KernelMode
impl<'de> Deserialize<'de> for KernelMode
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<KernelMode, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<KernelMode, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for KernelMode
impl Display for KernelMode
Source§impl Hash for KernelMode
impl Hash for KernelMode
Source§impl PartialEq for KernelMode
impl PartialEq for KernelMode
Source§impl Serialize for KernelMode
impl Serialize for KernelMode
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Copy for KernelMode
impl Eq for KernelMode
impl StructuralPartialEq for KernelMode
Auto Trait Implementations§
impl Freeze for KernelMode
impl RefUnwindSafe for KernelMode
impl Send for KernelMode
impl Sync for KernelMode
impl Unpin for KernelMode
impl UnwindSafe for KernelMode
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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> CallHasher for T
impl<T> CallHasher for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.