pub trait LoadingJob<MP: MatmulPrecision, TL: TilingLayout>:
CubeType
+ Copy
+ Clone {
// Required methods
fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut Stage<MP::ES, TL>,
quantization: &CubeOption<Quantization<MP>>,
config: G,
);
fn task_count(this: &Self) -> u32;
fn __expand_execute_task<G: GlobalConfig>(
context: &mut Scope,
this: <Self as CubeType>::ExpandType,
task_id: <u32 as CubeType>::ExpandType,
tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType,
stage: <Stage<MP::ES, TL> as CubeType>::ExpandType,
quantization: <CubeOption<Quantization<MP>> as CubeType>::ExpandType,
config: G,
) -> <() as CubeType>::ExpandType;
fn __expand_task_count(
context: &mut Scope,
this: <Self as CubeType>::ExpandType,
) -> u32;
}
Expand description
A loading job represents a group of loading tasks. Each task is the smallest unit of loading work: one thread at one iteration, operating at a specific point within a read view. The job holds shared information reused across read views and iterations. By calling execute_task at strategic moments, one can hope to speed up the matmul.
Required Methods§
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage: &mut Stage<MP::ES, TL>, quantization: &CubeOption<Quantization<MP>>, config: G, )
fn task_count(this: &Self) -> u32
fn __expand_execute_task<G: GlobalConfig>( context: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType, stage: <Stage<MP::ES, TL> as CubeType>::ExpandType, quantization: <CubeOption<Quantization<MP>> as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( context: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> u32
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.