pub struct SyncFullStageGlobalReader<IP: MatrixPrecision, G: GlobalConfig, L: SyncFullLoadingStrategy> { /* private fields */ }Expand description
Loads the entire stage memory using synchronous data movement operations.
A complete load is referred to as a Job, which is divided into Tasks—
each Task represents a single data transfer for a specific unit
Implementations§
Source§impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncFullLoadingStrategy> SyncFullStageGlobalReader<IP, G, L>
impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncFullLoadingStrategy> SyncFullStageGlobalReader<IP, G, L>
Sourcepub fn new(
tensor: View<Line<IP::Global>, Coords2d>,
k_step: u32,
ident: MatmulIdent,
config: G,
) -> Self
pub fn new( tensor: View<Line<IP::Global>, Coords2d>, k_step: u32, ident: MatmulIdent, config: G, ) -> Self
Create a new SyncFullStageGlobalReader
Sourcepub fn stage(&self) -> StridedStage<IP::Stage, L::TilingLayout>
pub fn stage(&self) -> StridedStage<IP::Stage, L::TilingLayout>
Give a reader to the loaded stage memory.
pub fn free_stage(self)
Sourcepub fn advance_view(&mut self)
pub fn advance_view(&mut self)
Advance the view over global memory along the k dimension by a specified offset, k_offset.
Sourcepub fn load_stage(&mut self, config: G)
pub fn load_stage(&mut self, config: G)
Accomplish the entire job of loading data into the stage memory
pub fn __expand_new( scope: &mut Scope, tensor: <View<Line<IP::Global>, Coords2d> as CubeType>::ExpandType, k_step: <u32 as CubeType>::ExpandType, ident: MatmulIdent, config: G, ) -> <Self as CubeType>::ExpandType
pub fn __expand_stage( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <StridedStage<IP::Stage, L::TilingLayout> as CubeType>::ExpandType
pub fn __expand_free_stage( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <() as CubeType>::ExpandType
pub fn __expand_advance_view( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <() as CubeType>::ExpandType
pub fn __expand_load_stage( scope: &mut Scope, this: <Self as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
Trait Implementations§
Source§impl<IP: Clone + MatrixPrecision, G: Clone + GlobalConfig, L: Clone + SyncFullLoadingStrategy> Clone for SyncFullStageGlobalReader<IP, G, L>
impl<IP: Clone + MatrixPrecision, G: Clone + GlobalConfig, L: Clone + SyncFullLoadingStrategy> Clone for SyncFullStageGlobalReader<IP, G, L>
Source§fn clone(&self) -> SyncFullStageGlobalReader<IP, G, L>
fn clone(&self) -> SyncFullStageGlobalReader<IP, G, L>
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, G: GlobalConfig, L: SyncFullLoadingStrategy> CubeType for SyncFullStageGlobalReader<IP, G, L>
impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncFullLoadingStrategy> CubeType for SyncFullStageGlobalReader<IP, G, L>
type ExpandType = SyncFullStageGlobalReaderExpand<IP, G, L>
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<IP: MatrixPrecision, G: GlobalConfig, L: SyncFullLoadingStrategy> JobExecutor<G> for SyncFullStageGlobalReader<IP, G, L>
impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncFullLoadingStrategy> JobExecutor<G> for SyncFullStageGlobalReader<IP, G, L>
Source§type JobIterator = SyncFullStageJobIterator<IP, L>
type JobIterator = SyncFullStageJobIterator<IP, L>
The job to execute
Source§fn create_job_iterator(
this: &Self,
_stage_buffer: StageBuffer,
config: G,
) -> Self::JobIterator
fn create_job_iterator( this: &Self, _stage_buffer: StageBuffer, config: G, ) -> Self::JobIterator
Create the job to execute
Source§fn execute_task(
this: &mut Self,
job_iterator: &mut SyncFullStageJobIterator<IP, L>,
config: G,
)
fn execute_task( this: &mut Self, job_iterator: &mut SyncFullStageJobIterator<IP, L>, config: G, )
Execute the next task
Source§fn execute_all_remaining_tasks(
this: &mut Self,
job_iterator: &mut Self::JobIterator,
config: G,
)
fn execute_all_remaining_tasks( this: &mut Self, job_iterator: &mut Self::JobIterator, config: G, )
Execute all tasks that remain at once
Source§fn execute_whole_job(this: &mut Self, stage_buffer: StageBuffer, config: G)
fn execute_whole_job(this: &mut Self, stage_buffer: StageBuffer, config: G)
Create a job and execute all its tasks at once
fn __expand_create_job_iterator( scope: &mut Scope, this: <Self as CubeType>::ExpandType, _stage_buffer: StageBuffer, config: G, ) -> <Self::JobIterator as CubeType>::ExpandType
fn __expand_execute_task( scope: &mut Scope, this: <Self as CubeType>::ExpandType, job_iterator: <SyncFullStageJobIterator<IP, L> as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_execute_all_remaining_tasks( scope: &mut Scope, this: <Self as CubeType>::ExpandType, job_iterator: <Self::JobIterator as CubeType>::ExpandType, config: G, ) -> <() as CubeType>::ExpandType
fn __expand_execute_whole_job( scope: &mut Scope, this: <Self as CubeType>::ExpandType, stage_buffer: StageBuffer, config: G, ) -> <() as CubeType>::ExpandType
Auto Trait Implementations§
impl<IP, G, L> Freeze for SyncFullStageGlobalReader<IP, G, L>
impl<IP, G, L> RefUnwindSafe for SyncFullStageGlobalReader<IP, G, L>where
<L as SyncFullLoadingStrategy>::Job<IP>: RefUnwindSafe,
<L as SyncFullLoadingStrategy>::TilingLayout: RefUnwindSafe,
G: RefUnwindSafe,
L: RefUnwindSafe,
<IP as MatrixPrecision>::Stage: RefUnwindSafe,
<IP as MatrixPrecision>::Global: RefUnwindSafe,
impl<IP, G, L> Send for SyncFullStageGlobalReader<IP, G, L>
impl<IP, G, L> Sync for SyncFullStageGlobalReader<IP, G, L>
impl<IP, G, L> Unpin for SyncFullStageGlobalReader<IP, G, L>where
<L as SyncFullLoadingStrategy>::Job<IP>: Unpin,
<L as SyncFullLoadingStrategy>::TilingLayout: Unpin,
G: Unpin,
L: Unpin,
<IP as MatrixPrecision>::Stage: Unpin,
<IP as MatrixPrecision>::Global: Unpin,
impl<IP, G, L> UnwindSafe for SyncFullStageGlobalReader<IP, G, L>where
<L as SyncFullLoadingStrategy>::Job<IP>: UnwindSafe,
<L as SyncFullLoadingStrategy>::TilingLayout: UnwindSafe,
G: UnwindSafe,
L: UnwindSafe,
<IP as MatrixPrecision>::Stage: UnwindSafe,
<IP as MatrixPrecision>::Global: 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