pub struct SwizzleSpanMatmul<const W: u32> {}
Expand description
Iterates on global matmuls following the swizzle algorithm
The swizzle algorithm processes W elements per row in a top-down pass, then shifts to the next W columns in a bottom-up pass. This zigzag (top-down, bottom-up) repeats, covering the matrix span by span.
Trait Implementations§
Source§impl<const W: u32> CubeType for SwizzleSpanMatmul<W>
impl<const W: u32> CubeType for SwizzleSpanMatmul<W>
type ExpandType = SwizzleSpanMatmulExpand<W>
Source§fn init(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
fn init(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Wrapper around the init method, necessary to type inference.
Source§impl<const W: u32> SpanMatmul for SwizzleSpanMatmul<W>
impl<const W: u32> SpanMatmul for SwizzleSpanMatmul<W>
fn execute<MP: MatmulPrecision, GMM: GlobalMatmul<MP>>( lhs: VirtualTensor<MP::EI>, rhs: VirtualTensor<MP::EI>, out: VirtualTensor<MP::EO, ReadWrite>, span: Span, acc: GMM::Accumulator, k_range: (u32, u32), quantization: CubeOption<Quantization<MP>>, config: GMM::Config, )
fn __expand_execute<MP: MatmulPrecision, GMM: GlobalMatmul<MP>>( context: &mut Scope, lhs: <VirtualTensor<MP::EI> as CubeType>::ExpandType, rhs: <VirtualTensor<MP::EI> as CubeType>::ExpandType, out: <VirtualTensor<MP::EO, ReadWrite> as CubeType>::ExpandType, span: <Span as CubeType>::ExpandType, acc: <GMM::Accumulator as CubeType>::ExpandType, k_range: <(u32, u32) as CubeType>::ExpandType, quantization: <CubeOption<Quantization<MP>> as CubeType>::ExpandType, config: GMM::Config, ) -> <() as CubeType>::ExpandType
Auto Trait Implementations§
impl<const W: u32> Freeze for SwizzleSpanMatmul<W>
impl<const W: u32> RefUnwindSafe for SwizzleSpanMatmul<W>
impl<const W: u32> Send for SwizzleSpanMatmul<W>
impl<const W: u32> Sync for SwizzleSpanMatmul<W>
impl<const W: u32> Unpin for SwizzleSpanMatmul<W>
impl<const W: u32> UnwindSafe for SwizzleSpanMatmul<W>
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