pub struct ContiguousTilingLayout<T: TilingOrder> { /* private fields */ }Expand description
Each tile is stored contiguously in shared memory. Global memory loads may require remapping to match this layout.
Implementations§
Source§impl<T: TilingOrder> ContiguousTilingLayout<T>
impl<T: TilingOrder> ContiguousTilingLayout<T>
Sourcepub fn to_x_y(nth: u32, config: StageMemoryConfig) -> Coords2d
pub fn to_x_y(nth: u32, config: StageMemoryConfig) -> Coords2d
Converts a tile index in the stage to its (x,y) position
pub fn __expand_to_x_y( scope: &mut Scope, nth: <u32 as CubeType>::ExpandType, config: StageMemoryConfig, ) -> <Coords2d as CubeType>::ExpandType
Trait Implementations§
Source§impl<IP: MatrixPrecision, TO: TilingOrder> AsyncLoadingJob<IP, ContiguousTilingLayout<TO>> for AsyncFullCyclicJob
impl<IP: MatrixPrecision, TO: TilingOrder> AsyncLoadingJob<IP, ContiguousTilingLayout<TO>> for AsyncFullCyclicJob
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, ContiguousTilingLayout<TO>>,
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, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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<T: Clone + TilingOrder> Clone for ContiguousTilingLayout<T>
impl<T: Clone + TilingOrder> Clone for ContiguousTilingLayout<T>
Source§fn clone(&self) -> ContiguousTilingLayout<T>
fn clone(&self) -> ContiguousTilingLayout<T>
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, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncFullCyclicJob
impl<IP: MatrixPrecision, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncFullCyclicJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncFullTilewiseJob
impl<IP: MatrixPrecision, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncFullTilewiseJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncPartialCyclicJob
impl<IP: MatrixPrecision, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncPartialCyclicJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncPartialTilewiseJob
impl<IP: MatrixPrecision, TO: TilingOrder> LoadingJob<IP, ContiguousTilingLayout<TO>> for SyncPartialTilewiseJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
global_iter: &GlobalIterator<Line<IP::Global>>,
stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>,
config: G,
)
fn execute_task<G: GlobalConfig>( this: &mut Self, task_id: u32, global_iter: &GlobalIterator<Line<IP::Global>>, stage: &mut StridedStage<IP::Stage, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_task_count( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> u32
Source§impl<TO: TilingOrder> TilingLayout for ContiguousTilingLayout<TO>
impl<TO: TilingOrder> TilingLayout for ContiguousTilingLayout<TO>
Source§fn get_tile<ES: Numeric>(
stage_memory: &StridedStage<ES, Self>,
tile: Coords2d,
buffer_index: u32,
ident: StageIdent,
config: StageMemoryConfig,
) -> StridedTile<ES>
fn get_tile<ES: Numeric>( stage_memory: &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_memory: <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<TO: TilingOrder> TilingValidation for ContiguousTilingLayout<TO>
impl<TO: TilingOrder> TilingValidation for ContiguousTilingLayout<TO>
fn check(config: GlobalMemoryConfig) -> Result<(), InvalidConfigError>
impl<T: Copy + TilingOrder> Copy for ContiguousTilingLayout<T>
Auto Trait Implementations§
impl<T> Freeze for ContiguousTilingLayout<T>
impl<T> RefUnwindSafe for ContiguousTilingLayout<T>where
T: RefUnwindSafe,
impl<T> Send for ContiguousTilingLayout<T>
impl<T> Sync for ContiguousTilingLayout<T>
impl<T> Unpin for ContiguousTilingLayout<T>where
T: Unpin,
impl<T> UnwindSafe for ContiguousTilingLayout<T>where
T: UnwindSafe,
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