pub struct HybridDoubleBufferingAlgorithm<TMM> {
pub _phantom: PhantomData<TMM>,
}Expand description
Plane accelerated double buffered matmul with tilewise reader on Lhs and cyclic on Rhs
Fields§
§_phantom: PhantomData<TMM>Trait Implementations§
Source§impl<TMM> Algorithm for HybridDoubleBufferingAlgorithm<TMM>where
TMM: TileMatmulFamily<LhsTile = Strided, RhsTile = Strided, AccTile = Filled, OutTile = Strided>,
impl<TMM> Algorithm for HybridDoubleBufferingAlgorithm<TMM>where
TMM: TileMatmulFamily<LhsTile = Strided, RhsTile = Strided, AccTile = Filled, OutTile = Strided>,
type SelectionArgs = DoubleBufferingArgs
type TileMatmul = TMM
type StageMatmul = PlaneMatmulFamily<<HybridDoubleBufferingAlgorithm<TMM> as Algorithm>::TileMatmul, StridedStageFamily, StridedStageFamily, FilledStageFamily>
type GlobalMatmul = DoubleBufferingMatmulFamily<<HybridDoubleBufferingAlgorithm<TMM> as Algorithm>::StageMatmul, SyncPartialTilewiseLoading<RowMajorTilingOrder>, SyncPartialCyclicLoading<RowMajorTilingOrder>, PlaneWriterFamily>
type BatchMatmul = PartitionedBatchMatmulFamily<<HybridDoubleBufferingAlgorithm<TMM> as Algorithm>::GlobalMatmul, RowMajorGlobalPartitionMatmul>
fn selection<R: Runtime>( client: &ComputeClient<R::Server>, problem: &MatmulProblem, plane_dim: u32, _line_sizes: &MatmulLineSizes, elems: MatmulElems, args: &Self::SelectionArgs, ) -> Result<MatmulSelection, MatmulSetupError>
fn setup<MP: MatmulPrecision, R: Runtime>( client: &ComputeClient<R::Server>, problem: &MatmulProblem, selection: &MatmulSelection, line_sizes: &MatmulLineSizes, ) -> Result<<Self::BatchMatmul as BatchMatmulFamily>::Config, MatmulSetupError>
fn filter_line_sizes( available_line_sizes: AvailableLineSizes, ) -> AvailableLineSizes
fn select_plane_dim<R: Runtime>(client: &ComputeClient<R::Server>) -> u32
Auto Trait Implementations§
impl<TMM> Freeze for HybridDoubleBufferingAlgorithm<TMM>
impl<TMM> RefUnwindSafe for HybridDoubleBufferingAlgorithm<TMM>where
TMM: RefUnwindSafe,
impl<TMM> Send for HybridDoubleBufferingAlgorithm<TMM>where
TMM: Send,
impl<TMM> Sync for HybridDoubleBufferingAlgorithm<TMM>where
TMM: Sync,
impl<TMM> Unpin for HybridDoubleBufferingAlgorithm<TMM>where
TMM: Unpin,
impl<TMM> UnwindSafe for HybridDoubleBufferingAlgorithm<TMM>where
TMM: UnwindSafe,
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