pub struct OrderedDoubleBufferingAlgorithm<TMM> {
pub _phantom: PhantomData<TMM>,
}Expand description
Plane accelerated double buffered matmul ordered on Lhs with cyclic reader on Rhs
Fields§
§_phantom: PhantomData<TMM>Trait Implementations§
Source§impl<TMM> Algorithm for OrderedDoubleBufferingAlgorithm<TMM>where
TMM: TileMatmulFamily<LhsTile = Strided, RhsTile = Strided, AccTile = Filled, OutTile = Strided>,
impl<TMM> Algorithm for OrderedDoubleBufferingAlgorithm<TMM>where
TMM: TileMatmulFamily<LhsTile = Strided, RhsTile = Strided, AccTile = Filled, OutTile = Strided>,
type SelectionArgs = OrderedSelectionArgs
type TileMatmul = TMM
type StageMatmul = PlaneMatmulFamily<<OrderedDoubleBufferingAlgorithm<TMM> as Algorithm>::TileMatmul, StridedStageFamily, StridedStageFamily, FilledStageFamily>
type GlobalMatmul = OrderedDoubleBufferingMatmulFamily<<OrderedDoubleBufferingAlgorithm<TMM> as Algorithm>::StageMatmul, SyncPartialCyclicLoading<RowMajorTilingOrder>, PlaneWriterFamily>
type BatchMatmul = PartitionedBatchMatmulFamily<<OrderedDoubleBufferingAlgorithm<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 OrderedDoubleBufferingAlgorithm<TMM>
impl<TMM> RefUnwindSafe for OrderedDoubleBufferingAlgorithm<TMM>where
TMM: RefUnwindSafe,
impl<TMM> Send for OrderedDoubleBufferingAlgorithm<TMM>where
TMM: Send,
impl<TMM> Sync for OrderedDoubleBufferingAlgorithm<TMM>where
TMM: Sync,
impl<TMM> Unpin for OrderedDoubleBufferingAlgorithm<TMM>where
TMM: Unpin,
impl<TMM> UnwindSafe for OrderedDoubleBufferingAlgorithm<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