pub struct OrderedTilingOrder {}Expand description
Tiles are laid out in column-major order across a fixed number of rows, with all tiles from those rows placed contiguously side by side.
The grouping should match the set of tiles processed by a warp, so warp-local tile memory remains contiguous.
This layout ensures that for Lhs data, all tiles needed for a given
k iteration are stored contiguously, before moving to the next iteration.
Note: use only for Lhs
Example tile indices for 4 rows grouped 2 at a time:
┌───┬───┐
│ 0 │ 2 │
├───┼───┤
│ 1 │ 3 │
├───┼───┤
│ 4 │ 6 │
├───┼───┤
│ 5 │ 7 │
└───┴───┘Trait Implementations§
Source§impl Clone for OrderedTilingOrder
impl Clone for OrderedTilingOrder
Source§fn clone(&self) -> OrderedTilingOrder
fn clone(&self) -> OrderedTilingOrder
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for OrderedTilingOrder
Source§impl TilingOrder for OrderedTilingOrder
impl TilingOrder for OrderedTilingOrder
Source§fn to_row_col(
nth: u32,
tile_count_rows: u32,
tile_count_cols: u32,
config: StageMemoryConfig,
) -> Coords2d
fn to_row_col( nth: u32, tile_count_rows: u32, tile_count_cols: u32, config: StageMemoryConfig, ) -> Coords2d
Returns the coordinates (row, col) of the tile
Source§fn to_nth_tile(
tile: Coords2d,
tile_count_rows: u32,
tile_count_cols: u32,
config: StageMemoryConfig,
) -> u32
fn to_nth_tile( tile: Coords2d, tile_count_rows: u32, tile_count_cols: u32, config: StageMemoryConfig, ) -> u32
Given the coordinates (row, col) of the tile,
returns its index in shared memory
Source§fn to_enum() -> TilingOrderEnum
fn to_enum() -> TilingOrderEnum
Return the trait value as enum
fn __expand_to_row_col( scope: &Scope, nth: <u32 as CubeType>::ExpandType, tile_count_rows: <u32 as CubeType>::ExpandType, tile_count_cols: <u32 as CubeType>::ExpandType, config: StageMemoryConfig, ) -> <Coords2d as CubeType>::ExpandType
fn __expand_to_nth_tile( scope: &Scope, tile: <Coords2d as CubeType>::ExpandType, tile_count_rows: <u32 as CubeType>::ExpandType, tile_count_cols: <u32 as CubeType>::ExpandType, config: StageMemoryConfig, ) -> <u32 as CubeType>::ExpandType
fn __expand_to_enum(scope: &Scope) -> TilingOrderEnum
Auto Trait Implementations§
impl Freeze for OrderedTilingOrder
impl RefUnwindSafe for OrderedTilingOrder
impl Send for OrderedTilingOrder
impl Sync for OrderedTilingOrder
impl Unpin for OrderedTilingOrder
impl UnsafeUnpin for OrderedTilingOrder
impl UnwindSafe for OrderedTilingOrder
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> 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> ⓘ
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