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§
Sourcetype TilingLayout: TilingLayout
type TilingLayout: TilingLayout
The layout describing how data is tiled across the stage.
Sourcetype Job<MP: MatmulPrecision>: AsyncLoadingJob<MP, Self::TilingLayout>
type Job<MP: MatmulPrecision>: AsyncLoadingJob<MP, Self::TilingLayout>
The [LoadingJob] for this strategy.
Required Methods§
Sourcefn new_job<MP: MatmulPrecision, G: GlobalConfig>(
buffer_index: u32,
ident: InputIdent,
config: G,
) -> Self::Job<MP>
fn new_job<MP: MatmulPrecision, G: GlobalConfig>( buffer_index: u32, ident: InputIdent, config: G, ) -> Self::Job<MP>
Returns the job with preliminary calculations done.
Sourcefn barrier_level() -> BarrierLevel
fn barrier_level() -> BarrierLevel
The barrier level at which the copy mechanism works
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
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.