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_memory: &mut StageMemory<MP::ES, TL>,
quantization: &CubeOption<Quantization<MP>>,
config: G,
);
fn task_count(this: &Self) -> u32;
fn __expand_execute_task<G: GlobalConfig>(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
task_id: u32,
tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType,
stage_memory: <StageMemory<MP::ES, TL> as CubeType>::ExpandType,
quantization: <CubeOption<Quantization<MP>> as CubeType>::ExpandType,
config: G,
) -> <() as CubeType>::ExpandType;
fn __expand_task_count(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
) -> u32;
}
Expand description
A loading job represents a sequence of loading tasks. Each task is the smallest unit of loading work: one unit 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§
Sourcefn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage_memory: &mut StageMemory<MP::ES, TL>,
quantization: &CubeOption<Quantization<MP>>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage_memory: &mut StageMemory<MP::ES, TL>, quantization: &CubeOption<Quantization<MP>>, config: G, )
Execute the task_id
th loading task
Sourcefn task_count(this: &Self) -> u32
fn task_count(this: &Self) -> u32
Get the number of tasks
fn __expand_execute_task<G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: u32, tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType, stage_memory: <StageMemory<MP::ES, TL> as CubeType>::ExpandType, quantization: <CubeOption<Quantization<MP>> as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( scope: &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.