pub struct PlaneMatmulFamily<TM: TileMatmulFamily, StageLhs: StageFamily, StageRhs: StageFamily, StageAcc: StageFamily> { /* private fields */ }Expand description
Plane Matmul family for any precision
Trait Implementations§
Source§impl<TM: TileMatmulFamily<OutTile = Strided>, StageLhs: StageFamily<TileKind = TM::LhsTile>, StageRhs: StageFamily<TileKind = TM::RhsTile>, StageAcc: StageFamily<TileKind = TM::AccTile>> StageMatmulFamily for PlaneMatmulFamily<TM, StageLhs, StageRhs, StageAcc>
impl<TM: TileMatmulFamily<OutTile = Strided>, StageLhs: StageFamily<TileKind = TM::LhsTile>, StageRhs: StageFamily<TileKind = TM::RhsTile>, StageAcc: StageFamily<TileKind = TM::AccTile>> StageMatmulFamily for PlaneMatmulFamily<TM, StageLhs, StageRhs, 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>, <StageLhs as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Lhs as MatrixPrecision>::Stage, TL>, <StageRhs 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>, PlanePartitioner, PlanePartitionedStageConfig<<<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>, <StageLhs as StageFamily>::Stage<<<<MP as MatmulSpec>::Precision as MatmulPrecision>::Lhs as MatrixPrecision>::Stage, TL>, <StageRhs 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>, PlanePartitioner, PlanePartitionedStageConfig<<<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 = PlanePartitionedStageConfig<<TM as TileMatmulFamily>::Config>
type Config = PlanePartitionedStageConfig<<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, StageLhs, StageRhs, StageAcc> Freeze for PlaneMatmulFamily<TM, StageLhs, StageRhs, StageAcc>
impl<TM, StageLhs, StageRhs, StageAcc> RefUnwindSafe for PlaneMatmulFamily<TM, StageLhs, StageRhs, StageAcc>
impl<TM, StageLhs, StageRhs, StageAcc> Send for PlaneMatmulFamily<TM, StageLhs, StageRhs, StageAcc>
impl<TM, StageLhs, StageRhs, StageAcc> Sync for PlaneMatmulFamily<TM, StageLhs, StageRhs, StageAcc>
impl<TM, StageLhs, StageRhs, StageAcc> Unpin for PlaneMatmulFamily<TM, StageLhs, StageRhs, StageAcc>
impl<TM, StageLhs, StageRhs, StageAcc> UnwindSafe for PlaneMatmulFamily<TM, StageLhs, StageRhs, 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