pub struct PlanKey { /* private fields */ }Expand description
Plan-cache key. u128 is chosen so all Phase 6 templates fit
without collisions while staying small enough to copy by value.
The key is opaque on purpose: callers should construct it via the
dedicated PlanKey::gemm / PlanKey::grouped_gemm / PlanKey::conv
constructors so we control the layout.
Implementations§
Source§impl PlanKey
impl PlanKey
Sourcepub const SIZE_BYTES: usize
pub const SIZE_BYTES: usize
Element size of the cache key in bytes — used by the cache size reporter and by callers that want to budget the LRU.
pub fn template_id(&self) -> u8
Sourcepub fn gemm<T: GemmSupported>(
shape: GemmShape,
layout_a: GemmLayout,
layout_b: GemmLayout,
layout_c: GemmLayout,
epilogue: GemmEpilogue,
accum: CutlassDtype,
out: CutlassDtype,
arch: SmArch,
persistent: bool,
) -> Self
pub fn gemm<T: GemmSupported>( shape: GemmShape, layout_a: GemmLayout, layout_b: GemmLayout, layout_c: GemmLayout, epilogue: GemmEpilogue, accum: CutlassDtype, out: CutlassDtype, arch: SmArch, persistent: bool, ) -> Self
Build a key for a single GEMM.
Trait Implementations§
impl Copy for PlanKey
impl Eq for PlanKey
impl StructuralPartialEq for PlanKey
Auto Trait Implementations§
impl Freeze for PlanKey
impl RefUnwindSafe for PlanKey
impl Send for PlanKey
impl Sync for PlanKey
impl Unpin for PlanKey
impl UnsafeUnpin for PlanKey
impl UnwindSafe for PlanKey
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<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.