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>(
stage: &mut StridedStage<ES, Self>,
nth: u32,
config: StageMemoryConfig,
) -> SliceMut<Line<ES>>
pub fn nth_slice<ES: Numeric>( stage: &mut StridedStage<ES, Self>, nth: u32, config: StageMemoryConfig, ) -> SliceMut<Line<ES>>
Returns the nth slice of the stage
pub fn __expand_nth_slice<ES: Numeric>( scope: &mut Scope, stage: <StridedStage<ES, Self> as CubeType>::ExpandType, nth: <u32 as CubeType>::ExpandType, config: StageMemoryConfig, ) -> <SliceMut<Line<ES>> as CubeType>::ExpandType
Trait Implementations§
Source§impl<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsynFullMaximizeSliceLengthJob
impl<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsynFullMaximizeSliceLengthJob
Source§fn execute_task<CM: CopyMechanism, G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism, G: GlobalConfig>( this: &mut Self, task_id: u32, tensor_reader: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_idth 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, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, tensor_reader: <GlobalIterator<Line<IP::Global>> as CubeType>::ExpandType, stage: <StridedStage<IP::Stage, 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<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsyncFullCooperativeJob
impl<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsyncFullCooperativeJob
Source§fn execute_task<CM: CopyMechanism, G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism, G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_idth 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, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, global_iter: <GlobalIterator<Line<IP::Global>> as CubeType>::ExpandType, stage: <StridedStage<IP::Stage, 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<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsyncFullMaximizeUnitCountJob
impl<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsyncFullMaximizeUnitCountJob
Source§fn execute_task<CM: CopyMechanism, G: GlobalConfig>(
this: &mut Self,
_task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism, G: GlobalConfig>( this: &mut Self, _task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_idth 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, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, _task_id: <u32 as CubeType>::ExpandType, global_iter: <GlobalIterator<Line<IP::Global>> as CubeType>::ExpandType, stage: <StridedStage<IP::Stage, 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<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsyncPartialMaximizeSliceLengthJob
impl<IP: MatrixPrecision> AsyncLoadingJob<IP, StridedTilingLayout> for AsyncPartialMaximizeSliceLengthJob
Source§fn execute_task<CM: CopyMechanism, G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, StridedTilingLayout>,
mechanism: &CM,
config: G,
)
fn execute_task<CM: CopyMechanism, G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, StridedTilingLayout>, mechanism: &CM, config: G, )
Execute the
task_idth 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, G: GlobalConfig>( scope: &mut Scope, this: <Self as CubeType>::ExpandType, task_id: <u32 as CubeType>::ExpandType, global_iter: <GlobalIterator<Line<IP::Global>> as CubeType>::ExpandType, stage: <StridedStage<IP::Stage, 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<IP: MatrixPrecision> LoadingJob<IP, StridedTilingLayout> for SyncFullStridedJob
impl<IP: MatrixPrecision> LoadingJob<IP, StridedTilingLayout> for SyncFullStridedJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, StridedTilingLayout>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, StridedTilingLayout>, config: G, )
Execute the
task_idth 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, global_iter: <GlobalIterator<Line<IP::Global>> as CubeType>::ExpandType, stage: <StridedStage<IP::Stage, StridedTilingLayout> 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>(
stage: &StridedStage<ES, Self>,
tile: Coords2d,
_buffer_index: u32,
_ident: StageIdent,
config: StageMemoryConfig,
) -> StridedTile<ES>
fn get_tile<ES: Numeric>( stage: &StridedStage<ES, Self>, tile: Coords2d, _buffer_index: u32, _ident: StageIdent, config: StageMemoryConfig, ) -> StridedTile<ES>
Returns the tile at shared memory coordinates
fn __expand_get_tile<ES: Numeric>( scope: &mut Scope, stage: <StridedStage<ES, Self> as CubeType>::ExpandType, tile: <Coords2d as CubeType>::ExpandType, _buffer_index: <u32 as CubeType>::ExpandType, _ident: StageIdent, config: StageMemoryConfig, ) -> <StridedTile<ES> as CubeType>::ExpandType
Source§impl TilingValidation for StridedTilingLayout
impl TilingValidation for StridedTilingLayout
fn check(config: GlobalMemoryConfig) -> Result<(), InvalidConfigError>
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