pub struct SyncFullTilewiseLoading<T: TilingOrder> { /* private fields */ }
Expand description
Each tile is guaranteed to be loaded entirely by the same plane. Each plane can load multiple tiles, provided the number of planes evenly divides the number of tiles. In this case, a plane loads contiguous tiles following the TilingOrder.
If number of planes = number of rows of Lhs and TilingOrder is RowMajor, each plane loads its own row and a sync can be saved. In multi-row, number of planes must divide number of rows, and each plane loads a contiguous chunk of rows (e.g. plane 0 loads rows 0–1, plane 1 loads 2–3, etc.).
Trait Implementations§
Source§impl<T: Clone + TilingOrder> Clone for SyncFullTilewiseLoading<T>
impl<T: Clone + TilingOrder> Clone for SyncFullTilewiseLoading<T>
Source§fn clone(&self) -> SyncFullTilewiseLoading<T>
fn clone(&self) -> SyncFullTilewiseLoading<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<T: TilingOrder> CubeType for SyncFullTilewiseLoading<T>
impl<T: TilingOrder> CubeType for SyncFullTilewiseLoading<T>
type ExpandType = SyncFullTilewiseLoadingExpand<T>
Source§fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Wrapper around the init method, necessary to type inference.
Source§impl<TO: TilingOrder> LoadMaxRoundPlaneCount for SyncFullTilewiseLoading<TO>
impl<TO: TilingOrder> LoadMaxRoundPlaneCount for SyncFullTilewiseLoading<TO>
Source§fn max_round_plane_count(
tiling_scheme: &TilingScheme,
ident: InputIdent,
_line_size: u8,
_plane_dim: u32,
) -> u32
fn max_round_plane_count( tiling_scheme: &TilingScheme, ident: InputIdent, _line_size: u8, _plane_dim: u32, ) -> u32
Returns the largest number of planes that evenly divides the tasks.
Source§impl<T: TilingOrder> LoadingValidation for SyncFullTilewiseLoading<T>
impl<T: TilingOrder> LoadingValidation for SyncFullTilewiseLoading<T>
Source§fn check<C: GlobalConfig>(
config: &C,
ident: Ident,
) -> Result<(), InvalidConfigError>
fn check<C: GlobalConfig>( config: &C, ident: Ident, ) -> Result<(), InvalidConfigError>
Verify that configs are valid for a loader, otherwise return an error stating why
Source§impl<TO: TilingOrder> SyncFullLoadingStrategy for SyncFullTilewiseLoading<TO>
impl<TO: TilingOrder> SyncFullLoadingStrategy for SyncFullTilewiseLoading<TO>
Source§type TilingLayout = ContiguousTilingLayout<TO>
type TilingLayout = ContiguousTilingLayout<TO>
The layout describing how data is tiled across the stage.
Source§type Job<MP: MatmulPrecision> = SyncFullTilewiseJob
type Job<MP: MatmulPrecision> = SyncFullTilewiseJob
The LoadingJob for this strategy.
Source§fn new_job<MP: MatmulPrecision, G: GlobalConfig>(
input_ident: InputIdent,
config: G,
) -> Self::Job<MP>
fn new_job<MP: MatmulPrecision, G: GlobalConfig>( input_ident: InputIdent, config: G, ) -> Self::Job<MP>
Returns the job with preliminary calculations done.
fn __expand_new_job<MP: MatmulPrecision, G: GlobalConfig>( scope: &mut Scope, input_ident: InputIdent, config: G, ) -> <Self::Job<MP> as CubeType>::ExpandType
impl<T: Copy + TilingOrder> Copy for SyncFullTilewiseLoading<T>
Auto Trait Implementations§
impl<T> Freeze for SyncFullTilewiseLoading<T>
impl<T> RefUnwindSafe for SyncFullTilewiseLoading<T>where
T: RefUnwindSafe,
impl<T> Send for SyncFullTilewiseLoading<T>
impl<T> Sync for SyncFullTilewiseLoading<T>
impl<T> Unpin for SyncFullTilewiseLoading<T>where
T: Unpin,
impl<T> UnwindSafe for SyncFullTilewiseLoading<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