FullLoadingStrategy

Trait FullLoadingStrategy 

Source
pub trait FullLoadingStrategy:
    'static
    + Send
    + Sync
    + Clone
    + LoadingValidation
    + LoadMaxRoundPlaneCount {
    type TilingLayout: TilingLayout;
    type SyncStrategy: SyncStrategy;
    type Job<EG: Numeric, ES: Numeric>: LoadingJob<EG, ES, Self::TilingLayout, Self::SyncStrategy, Stage = StridedStageFamily>;

    // Required methods
    fn new_job<EG: Numeric, ES: Numeric>(
        runtime_args: RuntimeArgs,
        line_size: u32,
        config: GlobalReaderConfig,
    ) -> Self::Job<EG, ES>;
    fn __expand_new_job<EG: Numeric, ES: Numeric>(
        scope: &mut Scope,
        runtime_args: <RuntimeArgs as CubeType>::ExpandType,
        line_size: u32,
        config: GlobalReaderConfig,
    ) -> <Self::Job<EG, ES> as CubeType>::ExpandType;
}
Expand description

A strategy for synchronously loading a full stage memory.

Required Associated Types§

Source

type TilingLayout: TilingLayout

The layout describing how data is tiled across the stage.

Source

type SyncStrategy: SyncStrategy

The synchronization strategy that should be used with this loading strategy

Source

type Job<EG: Numeric, ES: Numeric>: LoadingJob<EG, ES, Self::TilingLayout, Self::SyncStrategy, Stage = StridedStageFamily>

The LoadingJob for this strategy.

Required Methods§

Source

fn new_job<EG: Numeric, ES: Numeric>( runtime_args: RuntimeArgs, line_size: u32, config: GlobalReaderConfig, ) -> Self::Job<EG, ES>

Returns the job with preliminary calculations done.

Source

fn __expand_new_job<EG: Numeric, ES: Numeric>( scope: &mut Scope, runtime_args: <RuntimeArgs as CubeType>::ExpandType, line_size: u32, config: GlobalReaderConfig, ) -> <Self::Job<EG, ES> as CubeType>::ExpandType

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl FullLoadingStrategy for AsyncFullTmaLoading

Source§

impl FullLoadingStrategy for SyncFullOrderedLoading

Source§

impl FullLoadingStrategy for SyncFullStridedLoading

Source§

impl<TO: CubeType + TilingOrder> FullLoadingStrategy for SyncFullCyclicLoading<TO>

Source§

type TilingLayout = <SyncFullCyclicLoading<TO> as FullLoadingStrategy>::TilingLayout

Source§

type SyncStrategy = <SyncFullCyclicLoading<TO> as FullLoadingStrategy>::SyncStrategy

Source§

type Job<EG: Numeric, ES: Numeric> = <SyncFullCyclicLoading<TO> as FullLoadingStrategy>::Job<EG, ES>

Source§

fn new_job<EG: Numeric, ES: Numeric>( _runtime_args: RuntimeArgs, line_size: u32, config: GlobalReaderConfig, ) -> Self::Job<EG, ES>

Source§

fn __expand_new_job<EG: Numeric, ES: Numeric>( scope: &mut Scope, _runtime_args: RuntimeArgsExpand, line_size: u32, config: GlobalReaderConfig, ) -> <Self::Job<EG, ES> as CubeType>::ExpandType

Source§

impl<TO: CubeType + TilingOrder> FullLoadingStrategy for SyncFullTilewiseLoading<TO>

Implementors§