pub struct AsyncFullCyclicLoading<T: TilingOrder> { /* private fields */ }Expand description
Loads the content of all tiles in the stage using all planes. Unit with pos X loads lines with indices X, X + NUM_UNITS, X + 2 * NUM_UNITS, …
Trait Implementations§
Source§impl<T: Clone + TilingOrder> Clone for AsyncFullCyclicLoading<T>
impl<T: Clone + TilingOrder> Clone for AsyncFullCyclicLoading<T>
Source§fn clone(&self) -> AsyncFullCyclicLoading<T>
fn clone(&self) -> AsyncFullCyclicLoading<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 AsyncFullCyclicLoading<T>
impl<T: TilingOrder> CubeType for AsyncFullCyclicLoading<T>
type ExpandType = AsyncFullCyclicLoadingExpand<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> FullLoadingStrategy for AsyncFullCyclicLoading<TO>
impl<TO: TilingOrder> FullLoadingStrategy for AsyncFullCyclicLoading<TO>
Source§type TilingLayout = ContiguousTilingLayout<TO>
type TilingLayout = ContiguousTilingLayout<TO>
The layout describing how data is tiled across the stage.
Source§type SyncStrategy = AsyncCopy
type SyncStrategy = AsyncCopy
The synchronization strategy that should be used with this loading strategy
Source§type Job<EG: Numeric, ES: Numeric> = AsyncFullCyclicJob
type Job<EG: Numeric, ES: Numeric> = AsyncFullCyclicJob
The LoadingJob for this strategy.
Source§fn new_job<EG: Numeric, ES: Numeric>(
runtime_args: RuntimeArgs,
_line_size: u32,
config: GlobalReaderConfig,
) -> Self::Job<EG, ES>
fn new_job<EG: Numeric, ES: Numeric>( runtime_args: RuntimeArgs, _line_size: u32, config: GlobalReaderConfig, ) -> Self::Job<EG, ES>
Returns the job with preliminary calculations done.
fn __expand_new_job<EG: Numeric, ES: Numeric>( scope: &mut Scope, runtime_args: <RuntimeArgs as CubeType>::ExpandType, _line_size: u32, config: GlobalReaderConfig, ) -> <Self::Job<EG, ES> as CubeType>::ExpandType
Source§impl<TO: TilingOrder> LoadMaxRoundPlaneCount for AsyncFullCyclicLoading<TO>
impl<TO: TilingOrder> LoadMaxRoundPlaneCount for AsyncFullCyclicLoading<TO>
Source§fn max_round_plane_count(
elements_per_tile: u32,
tiles_per_stage: u32,
line_size: u8,
plane_dim: u32,
dtype: StorageType,
) -> u32
fn max_round_plane_count( elements_per_tile: u32, tiles_per_stage: u32, line_size: u8, plane_dim: u32, dtype: StorageType, ) -> u32
Returns the largest number of planes that evenly divides the tasks.
Source§impl<TO: TilingOrder> LoadingValidation for AsyncFullCyclicLoading<TO>
impl<TO: TilingOrder> LoadingValidation for AsyncFullCyclicLoading<TO>
Source§fn check<R: Runtime>(
client: &ComputeClient<R>,
problem: &MatmulProblem,
config: &GlobalReaderConfig,
dtypes: &MatmulElems,
) -> Result<(), InvalidConfigError>
fn check<R: Runtime>( client: &ComputeClient<R>, problem: &MatmulProblem, config: &GlobalReaderConfig, dtypes: &MatmulElems, ) -> Result<(), InvalidConfigError>
Verify that configs are valid for a reader, otherwise return an error stating why
impl<T: Copy + TilingOrder> Copy for AsyncFullCyclicLoading<T>
Auto Trait Implementations§
impl<T> Freeze for AsyncFullCyclicLoading<T>
impl<T> RefUnwindSafe for AsyncFullCyclicLoading<T>where
T: RefUnwindSafe,
impl<T> Send for AsyncFullCyclicLoading<T>
impl<T> Sync for AsyncFullCyclicLoading<T>
impl<T> Unpin for AsyncFullCyclicLoading<T>where
T: Unpin,
impl<T> UnwindSafe for AsyncFullCyclicLoading<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