pub struct SimpleAlgorithm<TMM, LL = SyncFullCyclicLoading<ColMajorTilingOrder>, RL = SyncFullCyclicLoading<RowMajorTilingOrder>> {
pub _tmm: PhantomData<TMM>,
pub _ll: PhantomData<LL>,
pub _rl: PhantomData<RL>,
}Expand description
Plane accelerated single stage matmul with configurable readers (default to cyclic)
Fields§
§_tmm: PhantomData<TMM>§_ll: PhantomData<LL>§_rl: PhantomData<RL>Trait Implementations§
Source§impl<TMM, LL, RL> Algorithm for SimpleAlgorithm<TMM, LL, RL>where
TMM: TileMatmulFamily<LhsTile = Strided, RhsTile = Strided, AccTile = Filled, OutTile = Strided>,
LL: SyncFullLoadingStrategy,
RL: SyncFullLoadingStrategy,
impl<TMM, LL, RL> Algorithm for SimpleAlgorithm<TMM, LL, RL>where
TMM: TileMatmulFamily<LhsTile = Strided, RhsTile = Strided, AccTile = Filled, OutTile = Strided>,
LL: SyncFullLoadingStrategy,
RL: SyncFullLoadingStrategy,
type SelectionArgs = SimpleArgs
type TileMatmul = TMM
type StageMatmul = PlaneMatmulFamily<<SimpleAlgorithm<TMM, LL, RL> as Algorithm>::TileMatmul, StridedStageFamily, StridedStageFamily, FilledStageFamily>
type GlobalMatmul = SimpleMatmulFamily<<SimpleAlgorithm<TMM, LL, RL> as Algorithm>::StageMatmul, LL, RL, PlaneWriterFamily>
type BatchMatmul = PartitionedBatchMatmulFamily<<SimpleAlgorithm<TMM, LL, RL> 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, LL, RL> Freeze for SimpleAlgorithm<TMM, LL, RL>
impl<TMM, LL, RL> RefUnwindSafe for SimpleAlgorithm<TMM, LL, RL>
impl<TMM, LL, RL> Send for SimpleAlgorithm<TMM, LL, RL>
impl<TMM, LL, RL> Sync for SimpleAlgorithm<TMM, LL, RL>
impl<TMM, LL, RL> Unpin for SimpleAlgorithm<TMM, LL, RL>
impl<TMM, LL, RL> UnwindSafe for SimpleAlgorithm<TMM, LL, RL>
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