pub struct PrefetchConfig {
pub lookahead_blocks: usize,
pub strategy: PrefetchStrategy,
}Expand description
Configuration for prefetch behavior in kernel loops.
Fields§
§lookahead_blocks: usizeHow many blocks ahead to prefetch in the inner loop. Higher values hide more latency but consume more cache.
strategy: PrefetchStrategyWhich prefetch strategy to use.
Implementations§
Source§impl PrefetchConfig
impl PrefetchConfig
Sourcepub fn for_gemv() -> Self
pub fn for_gemv() -> Self
Create a config optimized for GEMV (single vector, temporal reuse of weights).
Sourcepub fn for_gemm(batch_size: usize) -> Self
pub fn for_gemm(batch_size: usize) -> Self
Create a config optimized for GEMM (batch, streaming weights).
In GEMM, each weight block is reused across the M dimension, so temporal locality is still useful. For very large M, however, the first-touch of weight blocks benefits from non-temporal prefetch to avoid polluting L1 with data that won’t be reused for many iterations.
Trait Implementations§
Source§impl Clone for PrefetchConfig
impl Clone for PrefetchConfig
Source§fn clone(&self) -> PrefetchConfig
fn clone(&self) -> PrefetchConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 PrefetchConfig
impl Debug for PrefetchConfig
Auto Trait Implementations§
impl Freeze for PrefetchConfig
impl RefUnwindSafe for PrefetchConfig
impl Send for PrefetchConfig
impl Sync for PrefetchConfig
impl Unpin for PrefetchConfig
impl UnsafeUnpin for PrefetchConfig
impl UnwindSafe for PrefetchConfig
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> 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 more