pub struct SyncPartialStageGlobalReader<IP: MatrixPrecision, G: GlobalConfig, L: SyncPartialLoadingStrategy> { /* private fields */ }Expand description
Loads a stage from 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: SyncPartialLoadingStrategy> SyncPartialStageGlobalReader<IP, G, L>
impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncPartialLoadingStrategy> SyncPartialStageGlobalReader<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 SyncPartialStageGlobalReader
Sourcepub fn stage(
&self,
stage_buffer: StageBuffer,
) -> StridedStage<IP::Stage, L::TilingLayout>
pub fn stage( &self, stage_buffer: StageBuffer, ) -> StridedStage<IP::Stage, L::TilingLayout>
Give a reader to the loaded stage memory.
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, stage_buffer: StageBuffer, config: G)
pub fn load_stage(&mut self, stage_buffer: StageBuffer, 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, stage_buffer: StageBuffer, ) -> <StridedStage<IP::Stage, L::TilingLayout> 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, stage_buffer: StageBuffer, config: G, ) -> <() as CubeType>::ExpandType
Trait Implementations§
Source§impl<IP: Clone + MatrixPrecision, G: Clone + GlobalConfig, L: Clone + SyncPartialLoadingStrategy> Clone for SyncPartialStageGlobalReader<IP, G, L>
impl<IP: Clone + MatrixPrecision, G: Clone + GlobalConfig, L: Clone + SyncPartialLoadingStrategy> Clone for SyncPartialStageGlobalReader<IP, G, L>
Source§fn clone(&self) -> SyncPartialStageGlobalReader<IP, G, L>
fn clone(&self) -> SyncPartialStageGlobalReader<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: SyncPartialLoadingStrategy> CubeType for SyncPartialStageGlobalReader<IP, G, L>
impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncPartialLoadingStrategy> CubeType for SyncPartialStageGlobalReader<IP, G, L>
type ExpandType = SyncPartialStageGlobalReaderExpand<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: SyncPartialLoadingStrategy> JobExecutor<G> for SyncPartialStageGlobalReader<IP, G, L>
impl<IP: MatrixPrecision, G: GlobalConfig, L: SyncPartialLoadingStrategy> JobExecutor<G> for SyncPartialStageGlobalReader<IP, G, L>
Source§type JobIterator = SyncPartialJobIterator<IP, L>
type JobIterator = SyncPartialJobIterator<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 SyncPartialJobIterator<IP, L>,
config: G,
)
fn execute_task( this: &mut Self, job_iterator: &mut SyncPartialJobIterator<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: <SyncPartialJobIterator<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 SyncPartialStageGlobalReader<IP, G, L>
impl<IP, G, L> RefUnwindSafe for SyncPartialStageGlobalReader<IP, G, L>where
G: RefUnwindSafe,
<L as SyncPartialLoadingStrategy>::TilingLayout: RefUnwindSafe,
<L as SyncPartialLoadingStrategy>::Job<IP>: RefUnwindSafe,
<IP as MatrixPrecision>::Stage: RefUnwindSafe,
<IP as MatrixPrecision>::Global: RefUnwindSafe,
impl<IP, G, L> Send for SyncPartialStageGlobalReader<IP, G, L>
impl<IP, G, L> Sync for SyncPartialStageGlobalReader<IP, G, L>
impl<IP, G, L> Unpin for SyncPartialStageGlobalReader<IP, G, L>where
G: Unpin,
<L as SyncPartialLoadingStrategy>::TilingLayout: Unpin,
<L as SyncPartialLoadingStrategy>::Job<IP>: Unpin,
<IP as MatrixPrecision>::Stage: Unpin,
<IP as MatrixPrecision>::Global: Unpin,
impl<IP, G, L> UnwindSafe for SyncPartialStageGlobalReader<IP, G, L>where
G: UnwindSafe,
<L as SyncPartialLoadingStrategy>::TilingLayout: UnwindSafe,
<L as SyncPartialLoadingStrategy>::Job<IP>: 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