Skip to main content

SimpleUnitAlgorithm

Struct SimpleUnitAlgorithm 

Source
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>,

Source§

type Strategy = SimpleUnitSelectionArgs

Source§

type BatchMatmul = PartitionedBatchMatmulFamily<RC, SimpleMatmulFamily<UnitMatmulFamily<<LL as FullLoadingStrategy<RC>>::Stage, Option<<AL as FullLoadingStrategy<RC>>::Stage>>, RC, LL, RL, AL, UnitWriterFamily>, RowMajorGlobalPartitionMatmul>

Source§

type Blueprint = TilingBlueprint

Source§

type Config = <<SimpleUnitAlgorithm<LL, RL, AL> as Routine<RC>>::BatchMatmul as BatchMatmulFamily<RC>>::Config

Source§

fn expand_blueprint<R: Runtime>( problem: &MatmulProblem, device_settings: &DeviceSettings<R>, strategy: &BlueprintStrategy<RC, Self>, ) -> Result<ExpandInfo<Self::Blueprint>, MatmulSetupError>

Source§

fn prepare<R: Runtime>( problem: &MatmulProblem, device_settings: &DeviceSettings<R>, expand_info: ExpandInfo<Self::Blueprint>, ) -> Result<LaunchInfo<Self::Blueprint>, MatmulSetupError>

Source§

fn device_settings<R: Runtime>( client: &ComputeClient<R>, vector_sizes: MatmulVectorSizes, ) -> DeviceSettings<R>

Source§

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>

Source§

fn num_stages() -> NumStages

Source§

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>

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.