pub struct StridedStageMemoryExpand<ES: Numeric, NS: Size, T: TilingLayout> {
pub smem: <Shared<[Vector<ES, NS>]> as CubeType>::ExpandType,
pub swizzle: <Swizzle as CubeType>::ExpandType,
/* private fields */
}Fields§
§smem: <Shared<[Vector<ES, NS>]> as CubeType>::ExpandType§swizzle: <Swizzle as CubeType>::ExpandTypeImplementations§
Source§impl<ES: Numeric, NS: Size, T: TilingLayout> StridedStageMemoryExpand<ES, NS, T>
impl<ES: Numeric, NS: Size, T: TilingLayout> StridedStageMemoryExpand<ES, NS, T>
pub fn __expand_with_buffer_index_method( &self, scope: &Scope, buffer_idx: <u32 as CubeType>::ExpandType, ) -> Self
Sourcepub fn __expand_with_layout_method<TNew: TilingLayout>(
&self,
scope: &Scope,
) -> <StridedStageMemory<ES, NS, TNew> as CubeType>::ExpandType
pub fn __expand_with_layout_method<TNew: TilingLayout>( &self, scope: &Scope, ) -> <StridedStageMemory<ES, NS, TNew> as CubeType>::ExpandType
Return the same stage but with a different tiling layout. Allows comptime switching tiling.
Sourcepub fn __expand_get_tile_method(
&self,
scope: &Scope,
tile: <Coords2d as CubeType>::ExpandType,
) -> <StridedTile<ES, NS> as CubeType>::ExpandType
pub fn __expand_get_tile_method( &self, scope: &Scope, tile: <Coords2d as CubeType>::ExpandType, ) -> <StridedTile<ES, NS> as CubeType>::ExpandType
Get the tile at position (row, col)
Sourcepub fn __expand_as_slice_method<'infer, 'scope, N: Size>(
&'infer self,
scope: &'scope Scope,
) -> &'infer <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
pub fn __expand_as_slice_method<'infer, 'scope, N: Size>( &'infer self, scope: &'scope Scope, ) -> &'infer <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
Return the whole stage as a slice, for reading
Sourcepub fn __expand_as_slice_mut_method<'infer, 'scope, N: Size>(
&'infer mut self,
scope: &'scope Scope,
) -> &'infer mut <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
pub fn __expand_as_slice_mut_method<'infer, 'scope, N: Size>( &'infer mut self, scope: &'scope Scope, ) -> &'infer mut <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
Return the whole stage as a mutable slice, for loading
Sourcepub fn __expand_free_method(&self, scope: &Scope)
pub fn __expand_free_method(&self, scope: &Scope)
Frees the shared memory for reuse, if possible on the target runtime.
§Safety
Must be used in uniform control flow Must not have any dangling references to this shared memory
Sourcepub fn __expand_new(
scope: &Scope,
config: StageMemoryConfig,
) -> <StridedStageMemory<ES, NS, T> as CubeType>::ExpandType
pub fn __expand_new( scope: &Scope, config: StageMemoryConfig, ) -> <StridedStageMemory<ES, NS, T> as CubeType>::ExpandType
Instantiate a new stage memory for the given identifier
Sourcepub fn __expand_new_aligned(
scope: &Scope,
alignment: usize,
config: StageMemoryConfig,
) -> <StridedStageMemory<ES, NS, T> as CubeType>::ExpandType
pub fn __expand_new_aligned( scope: &Scope, alignment: usize, config: StageMemoryConfig, ) -> <StridedStageMemory<ES, NS, T> as CubeType>::ExpandType
Instantiate a new stage memory for the given identifier, with shared memory alignment
pub fn __expand_with_buffer_index( scope: &Scope, this: &Self, buffer_idx: <u32 as CubeType>::ExpandType, ) -> Self
Sourcepub fn __expand_with_layout<TNew: TilingLayout>(
scope: &Scope,
this: &Self,
) -> <StridedStageMemory<ES, NS, TNew> as CubeType>::ExpandType
pub fn __expand_with_layout<TNew: TilingLayout>( scope: &Scope, this: &Self, ) -> <StridedStageMemory<ES, NS, TNew> as CubeType>::ExpandType
Return the same stage but with a different tiling layout. Allows comptime switching tiling.
Sourcepub fn __expand_get_tile(
scope: &Scope,
this: &Self,
tile: <Coords2d as CubeType>::ExpandType,
) -> <StridedTile<ES, NS> as CubeType>::ExpandType
pub fn __expand_get_tile( scope: &Scope, this: &Self, tile: <Coords2d as CubeType>::ExpandType, ) -> <StridedTile<ES, NS> as CubeType>::ExpandType
Get the tile at position (row, col)
Sourcepub fn __expand_as_slice<'infer, 'scope, N: Size>(
scope: &'scope Scope,
this: &'infer Self,
) -> &'infer <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
pub fn __expand_as_slice<'infer, 'scope, N: Size>( scope: &'scope Scope, this: &'infer Self, ) -> &'infer <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
Return the whole stage as a slice, for reading
Sourcepub fn __expand_as_slice_mut<'infer, 'scope, N: Size>(
scope: &'scope Scope,
this: &'infer mut Self,
) -> &'infer mut <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
pub fn __expand_as_slice_mut<'infer, 'scope, N: Size>( scope: &'scope Scope, this: &'infer mut Self, ) -> &'infer mut <[Vector<ES, N>] as CubeType>::ExpandType ⓘ
Return the whole stage as a mutable slice, for loading
Sourcepub fn __expand_free(scope: &Scope, this: &Self)
pub fn __expand_free(scope: &Scope, this: &Self)
Frees the shared memory for reuse, if possible on the target runtime.
§Safety
Must be used in uniform control flow Must not have any dangling references to this shared memory
Trait Implementations§
Source§impl<ES: Numeric, NS: Size, T: TilingLayout> AsMutExpand for StridedStageMemoryExpand<ES, NS, T>
impl<ES: Numeric, NS: Size, T: TilingLayout> AsMutExpand for StridedStageMemoryExpand<ES, NS, T>
fn __expand_ref_mut_method(&mut self, _: &Scope) -> &mut Self
fn __expand_as_mut_method(&mut self, scope: &Scope) -> &mut T
Source§impl<ES: Numeric, NS: Size, T: TilingLayout> AsRefExpand for StridedStageMemoryExpand<ES, NS, T>
impl<ES: Numeric, NS: Size, T: TilingLayout> AsRefExpand for StridedStageMemoryExpand<ES, NS, T>
fn __expand_ref_method(&self, _: &Scope) -> &Self
fn __expand_as_ref_method(&self, scope: &Scope) -> &T
Source§impl<ES: Clone + Numeric, NS: Clone + Size, T: Clone + TilingLayout> Clone for StridedStageMemoryExpand<ES, NS, T>
impl<ES: Clone + Numeric, NS: Clone + Size, T: Clone + TilingLayout> Clone for StridedStageMemoryExpand<ES, NS, T>
Source§fn clone(&self) -> StridedStageMemoryExpand<ES, NS, T>
fn clone(&self) -> StridedStageMemoryExpand<ES, NS, T>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<ES: Numeric, NS: Size, T: TilingLayout> CubeDebug for StridedStageMemoryExpand<ES, NS, T>
impl<ES: Numeric, NS: Size, T: TilingLayout> CubeDebug for StridedStageMemoryExpand<ES, NS, T>
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Source§impl<ES: Numeric, NS: Size, T: TilingLayout> ExpandTypeClone for StridedStageMemoryExpand<ES, NS, T>
impl<ES: Numeric, NS: Size, T: TilingLayout> ExpandTypeClone for StridedStageMemoryExpand<ES, NS, T>
Source§fn clone_unchecked(&self) -> Self
fn clone_unchecked(&self) -> Self
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<ES: Numeric, NS: Size, T: TilingLayout> IntoExpand for StridedStageMemoryExpand<ES, NS, T>
impl<ES: Numeric, NS: Size, T: TilingLayout> IntoExpand for StridedStageMemoryExpand<ES, NS, T>
type Expand = StridedStageMemoryExpand<ES, NS, T>
fn into_expand(self, _: &Scope) -> Self
Auto Trait Implementations§
impl<ES, NS, T> !Send for StridedStageMemoryExpand<ES, NS, T>
impl<ES, NS, T> !Sync for StridedStageMemoryExpand<ES, NS, T>
impl<ES, NS, T> Freeze for StridedStageMemoryExpand<ES, NS, T>
impl<ES, NS, T> RefUnwindSafe for StridedStageMemoryExpand<ES, NS, T>
impl<ES, NS, T> Unpin for StridedStageMemoryExpand<ES, NS, T>where
T: Unpin,
impl<ES, NS, T> UnsafeUnpin for StridedStageMemoryExpand<ES, NS, T>
impl<ES, NS, T> UnwindSafe for StridedStageMemoryExpand<ES, NS, T>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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