pub struct SyncPartialTilewiseLoading<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
,
until it would otherwise write to the opposite stage. At that point, it continues on the next
row or column of the same stage, skipping over the memory region of the other stage.
Only supports RowMajorTilingOrder for Lhs and ColMajorTilingOrder for Rhs
Trait Implementations§
Source§impl<T: Clone + TilingOrder> Clone for SyncPartialTilewiseLoading<T>
impl<T: Clone + TilingOrder> Clone for SyncPartialTilewiseLoading<T>
Source§fn clone(&self) -> SyncPartialTilewiseLoading<T>
fn clone(&self) -> SyncPartialTilewiseLoading<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 SyncPartialTilewiseLoading<T>
impl<T: TilingOrder> CubeType for SyncPartialTilewiseLoading<T>
type ExpandType = SyncPartialTilewiseLoadingExpand<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 SyncPartialTilewiseLoading<TO>
impl<TO: TilingOrder> LoadMaxRoundPlaneCount for SyncPartialTilewiseLoading<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 SyncPartialTilewiseLoading<T>
impl<T: TilingOrder> LoadingValidation for SyncPartialTilewiseLoading<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> SyncPartialLoadingStrategy for SyncPartialTilewiseLoading<TO>
impl<TO: TilingOrder> SyncPartialLoadingStrategy for SyncPartialTilewiseLoading<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> = SyncPartialTilewiseJob
type Job<MP: MatmulPrecision> = SyncPartialTilewiseJob
The LoadingJob for this strategy.
Source§fn new_job<MP: MatmulPrecision, G: GlobalConfig>(
stage_index: u32,
input_ident: InputIdent,
config: G,
) -> SyncPartialTilewiseJob
fn new_job<MP: MatmulPrecision, G: GlobalConfig>( stage_index: u32, input_ident: InputIdent, config: G, ) -> SyncPartialTilewiseJob
Returns the job with preliminary calculations done.
fn __expand_new_job<MP: MatmulPrecision, G: GlobalConfig>( scope: &mut Scope, stage_index: u32, input_ident: InputIdent, config: G, ) -> <SyncPartialTilewiseJob as CubeType>::ExpandType
impl<T: Copy + TilingOrder> Copy for SyncPartialTilewiseLoading<T>
Auto Trait Implementations§
impl<T> Freeze for SyncPartialTilewiseLoading<T>
impl<T> RefUnwindSafe for SyncPartialTilewiseLoading<T>where
T: RefUnwindSafe,
impl<T> Send for SyncPartialTilewiseLoading<T>
impl<T> Sync for SyncPartialTilewiseLoading<T>
impl<T> Unpin for SyncPartialTilewiseLoading<T>where
T: Unpin,
impl<T> UnwindSafe for SyncPartialTilewiseLoading<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