pub struct StridedTilingLayout {}
Expand description
Tiles follow a strided layout that often mirrors global memory layout. Not all tiles are contiguous in shared memory, but mapping is more direct.
Implementations§
Source§impl StridedTilingLayout
impl StridedTilingLayout
Sourcepub fn nth_slice<ES: Numeric, S: StageConfig>(
stage: &mut StageMemory<ES, Self>,
nth: u32,
ident: Ident,
config: S,
) -> SliceMut<Line<ES>>
pub fn nth_slice<ES: Numeric, S: StageConfig>( stage: &mut StageMemory<ES, Self>, nth: u32, ident: Ident, config: S, ) -> SliceMut<Line<ES>>
Returns the nth slice of the stage
pub fn __expand_nth_slice<ES: Numeric, S: StageConfig>( scope: &mut Scope, stage: <StageMemory<ES, Self> as CubeType>::ExpandType, nth: <u32 as CubeType>::ExpandType, ident: Ident, config: S, ) -> <SliceMut<Line<ES>> as CubeType>::ExpandType
Trait Implementations§
Source§impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsynFullMaximizeSliceLengthJob
impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsynFullMaximizeSliceLengthJob
Source§fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage: &mut StageMemory<MP::ES, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_id
th loading taskSource§fn task_count(this: &Self) -> u32
fn task_count(this: &Self) -> u32
Get the number of tasks
fn __expand_execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType, stage: <StageMemory<MP::ES, StridedTilingLayout> as CubeType>::ExpandType, mechanism: <CM as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> u32
Source§impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsyncFullCooperativeJob
impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsyncFullCooperativeJob
Source§fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage: &mut StageMemory<MP::ES, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_id
th loading taskSource§fn task_count(this: &Self) -> u32
fn task_count(this: &Self) -> u32
Get the number of tasks
fn __expand_execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType, stage: <StageMemory<MP::ES, StridedTilingLayout> as CubeType>::ExpandType, mechanism: <CM as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> u32
Source§impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsyncFullMaximizeUnitCountJob
impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsyncFullMaximizeUnitCountJob
Source§fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>(
this: &mut Self,
_task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( this: &mut Self, _task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage: &mut StageMemory<MP::ES, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_id
th loading taskSource§fn task_count(_this: &Self) -> u32
fn task_count(_this: &Self) -> u32
Get the number of tasks
fn __expand_execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, _task_id: <u32 as CubeType>::ExpandType, tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType, stage: <StageMemory<MP::ES, StridedTilingLayout> as CubeType>::ExpandType, mechanism: <CM as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( scope: &mut Scope, _this: <Self as CubeType>::ExpandType, ) -> u32
Source§impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsyncPartialMaximizeSliceLengthJob
impl<MP: MatmulPrecision> AsyncLoadingJob<MP, StridedTilingLayout> for AsyncPartialMaximizeSliceLengthJob
Source§fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage: &mut StageMemory<MP::ES, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_id
th loading taskSource§fn task_count(this: &Self) -> u32
fn task_count(this: &Self) -> u32
Get the number of tasks
fn __expand_execute_task<CM: CopyMechanism<MP::ES>, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, tensor_reader: <TensorReader<MP::EI> as CubeType>::ExpandType, stage: <StageMemory<MP::ES, StridedTilingLayout> as CubeType>::ExpandType, mechanism: <CM as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> u32
Source§impl Clone for StridedTilingLayout
impl Clone for StridedTilingLayout
Source§fn clone(&self) -> StridedTilingLayout
fn clone(&self) -> StridedTilingLayout
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<MP: MatmulPrecision> LoadingJob<MP, StridedTilingLayout> for SyncFullStridedJob
impl<MP: MatmulPrecision> LoadingJob<MP, StridedTilingLayout> for SyncFullStridedJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, StridedTilingLayout>,
quantization: &CubeOption<Quantization<MP>>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &TensorReader<MP::EI>, stage: &mut StageMemory<MP::ES, StridedTilingLayout>, quantization: &CubeOption<Quantization<MP>>, config: G, )
Execute the
task_id
th loading taskSource§fn 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: <StageMemory<MP::ES, StridedTilingLayout> 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
Source§impl TilingLayout for StridedTilingLayout
impl TilingLayout for StridedTilingLayout
Source§fn get_tile<ES: Numeric, S: StageConfig>(
stage: &StageMemory<ES, Self>,
x: u32,
y: u32,
_buffer_index: u32,
ident: Ident,
config: S,
) -> Tile<ES>
fn get_tile<ES: Numeric, S: StageConfig>( stage: &StageMemory<ES, Self>, x: u32, y: u32, _buffer_index: u32, ident: Ident, config: S, ) -> Tile<ES>
Returns the tile at shared memory coordinates
fn __expand_get_tile<ES: Numeric, S: StageConfig>( scope: &mut Scope, stage: <StageMemory<ES, Self> as CubeType>::ExpandType, x: <u32 as CubeType>::ExpandType, y: <u32 as CubeType>::ExpandType, _buffer_index: u32, ident: Ident, config: S, ) -> <Tile<ES> as CubeType>::ExpandType
impl Copy for StridedTilingLayout
Auto Trait Implementations§
impl Freeze for StridedTilingLayout
impl RefUnwindSafe for StridedTilingLayout
impl Send for StridedTilingLayout
impl Sync for StridedTilingLayout
impl Unpin for StridedTilingLayout
impl UnwindSafe for StridedTilingLayout
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more