pub struct PartitionTileExpand<N: Numeric, Sc: TileScope> {
pub tiles: <Sequence<Tile<N, Sc>> as CubeType>::ExpandType,
pub rows: u32,
pub cols: u32,
pub _phantom: PhantomData<Sc>,
}Fields§
§tiles: <Sequence<Tile<N, Sc>> as CubeType>::ExpandType§rows: u32§cols: u32§_phantom: PhantomData<Sc>Implementations§
Source§impl<CRE: Numeric, Sc: TileScope> PartitionTileExpand<CRE, Sc>
impl<CRE: Numeric, Sc: TileScope> PartitionTileExpand<CRE, Sc>
Sourcepub fn __expand_execute_with_listener_method<LhsS: Numeric, LhsSize: Size, LhsR: Numeric, RhsS: Numeric, RhsSize: Size, RhsR: Numeric, SEL: StageEventListener>(
&mut self,
scope: &Scope,
a_stage: &<StageTile<LhsS> as CubeType>::ExpandType,
b_stage: &<StageTile<RhsS> as CubeType>::ExpandType,
a_fragment: &mut <Sequence<Tile<LhsR, Sc>> as CubeType>::ExpandType,
b_fragments: &mut <PipelinedTile<RhsR, Sc> as CubeType>::ExpandType,
partition_size_k: u32,
listener: <SEL as CubeType>::ExpandType,
scheduler: &<PartitionScheduler as CubeType>::ExpandType,
)
pub fn __expand_execute_with_listener_method<LhsS: Numeric, LhsSize: Size, LhsR: Numeric, RhsS: Numeric, RhsSize: Size, RhsR: Numeric, SEL: StageEventListener>( &mut self, scope: &Scope, a_stage: &<StageTile<LhsS> as CubeType>::ExpandType, b_stage: &<StageTile<RhsS> as CubeType>::ExpandType, a_fragment: &mut <Sequence<Tile<LhsR, Sc>> as CubeType>::ExpandType, b_fragments: &mut <PipelinedTile<RhsR, Sc> as CubeType>::ExpandType, partition_size_k: u32, listener: <SEL as CubeType>::ExpandType, scheduler: &<PartitionScheduler as CubeType>::ExpandType, )
Run the partition matmul. b_fragments length picks single (1) or
double (2) buffering.
Sourcepub fn __expand_execute_with_listener<LhsS: Numeric, LhsSize: Size, LhsR: Numeric, RhsS: Numeric, RhsSize: Size, RhsR: Numeric, SEL: StageEventListener>(
scope: &Scope,
this: &mut Self,
a_stage: &<StageTile<LhsS> as CubeType>::ExpandType,
b_stage: &<StageTile<RhsS> as CubeType>::ExpandType,
a_fragment: &mut <Sequence<Tile<LhsR, Sc>> as CubeType>::ExpandType,
b_fragments: &mut <PipelinedTile<RhsR, Sc> as CubeType>::ExpandType,
partition_size_k: u32,
listener: <SEL as CubeType>::ExpandType,
scheduler: &<PartitionScheduler as CubeType>::ExpandType,
)
pub fn __expand_execute_with_listener<LhsS: Numeric, LhsSize: Size, LhsR: Numeric, RhsS: Numeric, RhsSize: Size, RhsR: Numeric, SEL: StageEventListener>( scope: &Scope, this: &mut Self, a_stage: &<StageTile<LhsS> as CubeType>::ExpandType, b_stage: &<StageTile<RhsS> as CubeType>::ExpandType, a_fragment: &mut <Sequence<Tile<LhsR, Sc>> as CubeType>::ExpandType, b_fragments: &mut <PipelinedTile<RhsR, Sc> as CubeType>::ExpandType, partition_size_k: u32, listener: <SEL as CubeType>::ExpandType, scheduler: &<PartitionScheduler as CubeType>::ExpandType, )
Run the partition matmul. b_fragments length picks single (1) or
double (2) buffering.
Trait Implementations§
Source§impl<N: Numeric, Sc: TileScope> AsMutExpand for PartitionTileExpand<N, Sc>
impl<N: Numeric, Sc: TileScope> AsMutExpand for PartitionTileExpand<N, Sc>
fn __expand_ref_mut_method(&mut self, _: &Scope) -> &mut Self
fn __expand_as_mut_method(&mut self, scope: &Scope) -> &mut T
Source§impl<N: Numeric, Sc: TileScope> AsRefExpand for PartitionTileExpand<N, Sc>
impl<N: Numeric, Sc: TileScope> AsRefExpand for PartitionTileExpand<N, Sc>
fn __expand_ref_method(&self, _: &Scope) -> &Self
fn __expand_as_ref_method(&self, scope: &Scope) -> &T
Source§impl<N: Numeric, Sc: TileScope> CubeDebug for PartitionTileExpand<N, Sc>
impl<N: Numeric, Sc: TileScope> CubeDebug for PartitionTileExpand<N, Sc>
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Set the debug name of this type’s expansion. Should do nothing for types that don’t appear
at runtime
Source§impl<N: Numeric, Sc: TileScope> ExpandTypeClone for PartitionTileExpand<N, Sc>
impl<N: Numeric, Sc: TileScope> ExpandTypeClone for PartitionTileExpand<N, Sc>
Source§fn clone_unchecked(&self) -> Self
fn clone_unchecked(&self) -> Self
Unchecked clone that only clones the conceptual runtime value. Should only be used in cases
where each copy is used in a mutually exclusive branch (i.e. match, runtime enums). This is
intentionally separated from Rust’s
Clone semantics and should only be used for the
conceptual expand values, never real data. Using two values in the same branch is undefined
behaviour.Source§impl<N: Numeric, Sc: TileScope> IntoExpand for PartitionTileExpand<N, Sc>
impl<N: Numeric, Sc: TileScope> IntoExpand for PartitionTileExpand<N, Sc>
type Expand = PartitionTileExpand<N, Sc>
fn into_expand(self, _: &Scope) -> Self
Auto Trait Implementations§
impl<N, Sc> !Send for PartitionTileExpand<N, Sc>
impl<N, Sc> !Sync for PartitionTileExpand<N, Sc>
impl<N, Sc> Freeze for PartitionTileExpand<N, Sc>
impl<N, Sc> RefUnwindSafe for PartitionTileExpand<N, Sc>where
Sc: RefUnwindSafe,
N: RefUnwindSafe,
impl<N, Sc> Unpin for PartitionTileExpand<N, Sc>
impl<N, Sc> UnsafeUnpin for PartitionTileExpand<N, Sc>
impl<N, Sc> UnwindSafe for PartitionTileExpand<N, Sc>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more