pub struct SimpleUnitAlgorithm<LL = SyncFullCyclicLoading<ColMajorTilingOrder>, RL = SyncFullCyclicLoading<RowMajorTilingOrder>, AL = SyncFullCyclicLoading<RowMajorTilingOrder>> {
pub _ll: PhantomData<LL>,
pub _rl: PhantomData<RL>,
pub _al: PhantomData<AL>,
}Expand description
Unit single stage matmul with configurable readers (default to cyclic)
Fields§
§_ll: PhantomData<LL>§_rl: PhantomData<RL>§_al: PhantomData<AL>Trait Implementations§
Source§impl<RC, LL, RL, AL> Routine<RC> for SimpleUnitAlgorithm<LL, RL, AL>where
RC: RuntimeConfig,
LL: FullLoadingStrategy<RC, TileKind = Strided>,
RL: FullLoadingStrategy<RC, Stage = LL::Stage, TileKind = Strided, SyncStrategy = LL::SyncStrategy>,
AL: FullLoadingStrategy<RC, TileKind = Strided, SyncStrategy = LL::SyncStrategy>,
impl<RC, LL, RL, AL> Routine<RC> for SimpleUnitAlgorithm<LL, RL, AL>where
RC: RuntimeConfig,
LL: FullLoadingStrategy<RC, TileKind = Strided>,
RL: FullLoadingStrategy<RC, Stage = LL::Stage, TileKind = Strided, SyncStrategy = LL::SyncStrategy>,
AL: FullLoadingStrategy<RC, TileKind = Strided, SyncStrategy = LL::SyncStrategy>,
type Strategy = SimpleUnitSelectionArgs
type BatchMatmul = PartitionedBatchMatmulFamily<RC, SimpleMatmulFamily<UnitMatmulFamily<<LL as FullLoadingStrategy<RC>>::Stage, Option<<AL as FullLoadingStrategy<RC>>::Stage>>, RC, LL, RL, AL, UnitWriterFamily>, RowMajorGlobalPartitionMatmul>
type Blueprint = TilingBlueprint
type Config = <<SimpleUnitAlgorithm<LL, RL, AL> as Routine<RC>>::BatchMatmul as BatchMatmulFamily<RC>>::Config
fn expand_blueprint<R: Runtime>( problem: &MatmulProblem, device_settings: &DeviceSettings<R>, strategy: &BlueprintStrategy<RC, Self>, ) -> Result<ExpandInfo<Self::Blueprint>, MatmulSetupError>
fn prepare<R: Runtime>( problem: &MatmulProblem, device_settings: &DeviceSettings<R>, expand_info: ExpandInfo<Self::Blueprint>, ) -> Result<LaunchInfo<Self::Blueprint>, MatmulSetupError>
fn device_settings<R: Runtime>( client: &ComputeClient<R>, vector_sizes: MatmulVectorSizes, ) -> DeviceSettings<R>
fn launch<MA: MatmulArgs<Config = RC>, R: Runtime>( client: &ComputeClient<R>, ruda_dim: RudaDim, ruda_count: RudaCount, address_type: AddressType, input: InputRuntimeArg<MA, R>, output: OutputRuntimeArg<MA, R>, config: ConfigRuntimeArg<MA, R>, ruda_count_input: RudaMappingLaunch<R>, blueprint: Self::Blueprint, dtypes: &MatmulElems, vector_sizes: &MatmulVectorSizes, ) -> Result<(), MatmulSetupError>
fn num_stages() -> NumStages
fn validate_blueprint<R: Runtime>( client: &ComputeClient<R>, blueprint: &Self::Blueprint, problem: &MatmulProblem, dtypes: &MatmulElems, vector_sizes: &MatmulVectorSizes, ) -> Result<(), MatmulSetupError>
Auto Trait Implementations§
impl<LL, RL, AL> Freeze for SimpleUnitAlgorithm<LL, RL, AL>
impl<LL, RL, AL> RefUnwindSafe for SimpleUnitAlgorithm<LL, RL, AL>where
PhantomData<LL>: RefUnwindSafe,
PhantomData<RL>: RefUnwindSafe,
PhantomData<AL>: RefUnwindSafe,
impl<LL, RL, AL> Send for SimpleUnitAlgorithm<LL, RL, AL>
impl<LL, RL, AL> Sync for SimpleUnitAlgorithm<LL, RL, AL>
impl<LL, RL, AL> Unpin for SimpleUnitAlgorithm<LL, RL, AL>
impl<LL, RL, AL> UnsafeUnpin for SimpleUnitAlgorithm<LL, RL, AL>
impl<LL, RL, AL> UnwindSafe for SimpleUnitAlgorithm<LL, RL, AL>
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