AsyncFullLoadingStrategy

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>(
        context: &mut Scope,
        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 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>( context: &mut Scope, 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§

Source§

impl AsyncFullLoadingStrategy for cubecl_linalg::matmul::components::global::load::async_full_cooperative::LoadingStrategy

Source§

impl AsyncFullLoadingStrategy for cubecl_linalg::matmul::components::global::load::async_full_maximize_slice_length::LoadingStrategy

Source§

impl AsyncFullLoadingStrategy for cubecl_linalg::matmul::components::global::load::async_full_maximize_unit_count::LoadingStrategy

Source§

impl<TO: TilingOrder> AsyncFullLoadingStrategy for cubecl_linalg::matmul::components::global::load::async_full_cyclic::LoadingStrategy<TO>