Trait AsyncBufferLoadingStrategy

Source
pub trait AsyncBufferLoadingStrategy:
    '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>(
        buffer_index: u32,
        ident: InputIdent,
        config: G,
    ) -> Self::Job<MP>;
    fn barrier_level() -> BarrierLevel;
    fn __expand_new_job<MP: MatmulPrecision, G: GlobalConfig>(
        context: &mut Scope,
        buffer_index: u32,
        ident: InputIdent,
        config: G,
    ) -> <Self::Job<MP> as CubeType>::ExpandType;
    fn __expand_barrier_level(
        context: &mut Scope,
    ) -> <BarrierLevel as CubeType>::ExpandType;
}
Expand description

A strategy for asynchronously loading a buffer (partial stage), either eagerly or as a deferred job.

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>( buffer_index: u32, 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>( context: &mut Scope, buffer_index: u32, ident: InputIdent, config: G, ) -> <Self::Job<MP> as CubeType>::ExpandType

Source

fn __expand_barrier_level( context: &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§