pub struct UnitMatmulFamily<TM: TileMatmulFamily, StageIn: StageFamily, StageAcc: StageFamily> { /* private fields */ }Expand description
Unit Matmul family for any precision
Trait Implementations§
Source§impl<TM: TileMatmulFamily<LhsTile = StageIn::TileKind, RhsTile = StageIn::TileKind, AccTile = StageAcc::TileKind, OutTile = Strided>, StageIn: StageFamily, StageAcc: StageFamily> StageMatmulFamily for UnitMatmulFamily<TM, StageIn, StageAcc>
impl<TM: TileMatmulFamily<LhsTile = StageIn::TileKind, RhsTile = StageIn::TileKind, AccTile = StageAcc::TileKind, OutTile = Strided>, StageIn: StageFamily, StageAcc: StageFamily> StageMatmulFamily for UnitMatmulFamily<TM, StageIn, StageAcc>
Source§type OutStage = PartitionedStageFamily
type OutStage = PartitionedStageFamily
Stage family for Out
Source§type Matmul<MP: MatmulPrecision, TL: TilingLayout, TR: TilingLayout, TA: TilingLayout, TO: TilingLayout> = PartitionedStageMatmul<MP, <TM as TileMatmulFamily>::Matmul<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Register>, <StageIn as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Lhs as MatrixPrecision>::Stage, TL>, <StageIn as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Rhs as MatrixPrecision>::Stage, TR>, <StageAcc as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Acc as MatrixPrecision>::Stage, TA>, PartitionedStage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Acc as MatrixPrecision>::Stage>, UnitPartitioner, UnitPartitionedStageConfig<<<TM as TileMatmulFamily>::Matmul<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Register> as TileMatmul<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Register>>::Config>>
type Matmul<MP: MatmulPrecision, TL: TilingLayout, TR: TilingLayout, TA: TilingLayout, TO: TilingLayout> = PartitionedStageMatmul<MP, <TM as TileMatmulFamily>::Matmul<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Register>, <StageIn as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Lhs as MatrixPrecision>::Stage, TL>, <StageIn as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Rhs as MatrixPrecision>::Stage, TR>, <StageAcc as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Acc as MatrixPrecision>::Stage, TA>, PartitionedStage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Acc as MatrixPrecision>::Stage>, UnitPartitioner, UnitPartitionedStageConfig<<<TM as TileMatmulFamily>::Matmul<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Register> as TileMatmul<<<MP as MatmulPrecision>::Lhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Rhs as MatrixPrecision>::Register, <<MP as MatmulPrecision>::Acc as MatrixPrecision>::Register>>::Config>>
The specific [TileMatmul] implementation associated with this family.
Source§type Config = UnitPartitionedStageConfig<<TM as TileMatmulFamily>::Config>
type Config = UnitPartitionedStageConfig<<TM as TileMatmulFamily>::Config>
The configuration type associated with this matmul family.
Source§fn setup<MP: MatmulPrecision, R: Runtime>(
client: &ComputeClient<R::Server>,
problem: &MatmulProblem,
selection: &MatmulSelection,
line_sizes: &MatmulLineSizes,
num_stages: NumStages,
max_global_readers: Option<MaxGlobalReaderPlanes>,
ordered: bool,
) -> Result<Self::Config, MatmulSetupError>
fn setup<MP: MatmulPrecision, R: Runtime>( client: &ComputeClient<R::Server>, problem: &MatmulProblem, selection: &MatmulSelection, line_sizes: &MatmulLineSizes, num_stages: NumStages, max_global_readers: Option<MaxGlobalReaderPlanes>, ordered: bool, ) -> Result<Self::Config, MatmulSetupError>
Constructs the configuration based on the matmul problem, selection, line sizes,
number of stages, maximum of tasks per plane, and whether the algorithm is an ordered variant Read more
Source§fn filter_line_sizes(
available_line_sizes: AvailableLineSizes,
) -> AvailableLineSizes
fn filter_line_sizes( available_line_sizes: AvailableLineSizes, ) -> AvailableLineSizes
Filters out line sizes that are incompatible with this matmul family. Read more
Auto Trait Implementations§
impl<TM, StageIn, StageAcc> Freeze for UnitMatmulFamily<TM, StageIn, StageAcc>
impl<TM, StageIn, StageAcc> RefUnwindSafe for UnitMatmulFamily<TM, StageIn, StageAcc>
impl<TM, StageIn, StageAcc> Send for UnitMatmulFamily<TM, StageIn, StageAcc>
impl<TM, StageIn, StageAcc> Sync for UnitMatmulFamily<TM, StageIn, StageAcc>
impl<TM, StageIn, StageAcc> Unpin for UnitMatmulFamily<TM, StageIn, StageAcc>
impl<TM, StageIn, StageAcc> UnwindSafe for UnitMatmulFamily<TM, StageIn, StageAcc>
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