Trait AsyncFullLoadingStrategy

Source
pub trait AsyncFullLoadingStrategy:
    'static
    + Send
    + Sync
    + Clone
    + LoadingValidation {
    type TilingLayout: TilingLayout;
    type Job<MP: MatmulPrecision>: AsyncLoadingJob<MP, Self::TilingLayout>;

    // Required methods
    fn new_job<MP: MatmulPrecision, G: GlobalConfig>(
        ident: InputIdent,
        config: G,
    ) -> Self::Job<MP>;
    fn barrier_level() -> BarrierLevel;
    fn __expand_new_job<MP: MatmulPrecision, G: GlobalConfig>(
        scope: &mut Scope,
        ident: InputIdent,
        config: G,
    ) -> <Self::Job<MP> as CubeType>::ExpandType;
    fn __expand_barrier_level(
        scope: &mut Scope,
    ) -> <BarrierLevel as CubeType>::ExpandType;
}
Expand description

A strategy for fully and asynchronously loading a stage.

Required Associated Types§

Source

type TilingLayout: TilingLayout

The layout describing how data is tiled across the stage.

Source

type Job<MP: MatmulPrecision>: AsyncLoadingJob<MP, Self::TilingLayout>

The [LoadingJob] for this strategy.

Required Methods§

Source

fn new_job<MP: MatmulPrecision, G: GlobalConfig>( ident: InputIdent, config: G, ) -> Self::Job<MP>

Returns the job with preliminary calculations done.

Source

fn barrier_level() -> BarrierLevel

The barrier level at which the copy mechanism works

Source

fn __expand_new_job<MP: MatmulPrecision, G: GlobalConfig>( scope: &mut Scope, ident: InputIdent, config: G, ) -> <Self::Job<MP> as CubeType>::ExpandType

Source

fn __expand_barrier_level( scope: &mut Scope, ) -> <BarrierLevel 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.

Implementors§