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<S: StageConfig>(nth: u32, ident: Ident, config: S) -> (u32, u32)
pub fn to_x_y<S: StageConfig>(nth: u32, ident: Ident, config: S) -> (u32, u32)
Converts a tile index in the stage to its (x,y) position
pub fn __expand_to_x_y<S: StageConfig>( scope: &mut Scope, nth: <u32 as CubeType>::ExpandType, ident: Ident, config: S, ) -> <(u32, u32) as CubeType>::ExpandType
Trait Implementations§
Source§impl<MP: MatmulPrecision, TO: TilingOrder> AsyncLoadingJob<MP, ContiguousTilingLayout<TO>> for AsyncFullCyclicJob
impl<MP: MatmulPrecision, TO: TilingOrder> AsyncLoadingJob<MP, ContiguousTilingLayout<TO>> for AsyncFullCyclicJob
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, ContiguousTilingLayout<TO>>,
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, ContiguousTilingLayout<TO>>, 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, 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<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncFullCyclicJob
impl<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncFullCyclicJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, ContiguousTilingLayout<TO>>,
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, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncFullTilewiseJob
impl<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncFullTilewiseJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, ContiguousTilingLayout<TO>>,
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, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncPartialCyclicJob
impl<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncPartialCyclicJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, ContiguousTilingLayout<TO>>,
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, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncPartialTilewiseJob
impl<MP: MatmulPrecision, TO: TilingOrder> LoadingJob<MP, ContiguousTilingLayout<TO>> for SyncPartialTilewiseJob
Source§fn execute_task<G: GlobalConfig>(
this: &mut Self,
task_id: u32,
tensor_reader: &TensorReader<MP::EI>,
stage: &mut StageMemory<MP::ES, ContiguousTilingLayout<TO>>,
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, ContiguousTilingLayout<TO>>, 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, ContiguousTilingLayout<TO>> 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<TO: TilingOrder> TilingLayout for ContiguousTilingLayout<TO>
impl<TO: TilingOrder> TilingLayout for ContiguousTilingLayout<TO>
Source§fn get_tile<ES: Numeric, S: StageConfig>(
stage_memory: &StageMemory<ES, Self>,
row: u32,
col: u32,
buffer_index: u32,
ident: Ident,
config: S,
) -> Tile<ES>
fn get_tile<ES: Numeric, S: StageConfig>( stage_memory: &StageMemory<ES, Self>, row: u32, col: 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_memory: <StageMemory<ES, Self> as CubeType>::ExpandType, row: <u32 as CubeType>::ExpandType, col: <u32 as CubeType>::ExpandType, buffer_index: u32, ident: Ident, config: S, ) -> <Tile<ES> as CubeType>::ExpandType
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