Skip to main content

Mojo struct

StandardTilePayload

@register_passable(trivial) struct StandardTilePayload[a_type: DType, b_type: DType, a_dim0: Int, a_dim1: Int, b_dim0: Int, b_dim1: Int, num_pipeline_stages: Int]

Tile payload for standard matmul (A and B tiles).

Uses explicit dimensions for tile arrays. The tiles are stored as TileTensor with row_major layout. TileTensors are passed directly to TMA/MMA. at TMA/MMA boundaries.

Fields

  • a_tiles (StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].ATileArray):
  • b_tiles (StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].BTileArray):

Implemented traits

AnyType, Copyable, ImplicitlyCopyable, ImplicitlyDestructible, Movable, RegisterPassable, TilePayload, TrivialRegisterPassable

comptime members

__copyinit__is_trivial

comptime __copyinit__is_trivial = True

__del__is_trivial

comptime __del__is_trivial = True

__moveinit__is_trivial

comptime __moveinit__is_trivial = True

ATile

comptime ATile = StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].ATileArray.Tile

ATileArray

comptime ATileArray = SMemTileArray2D[a_type, a_dim0, a_dim1, num_pipeline_stages]

BTile

comptime BTile = StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].BTileArray.Tile

BTileArray

comptime BTileArray = SMemTileArray2D[b_type, b_dim0, b_dim1, num_pipeline_stages]

Methods

__init__

__init__(a_tiles: SMemTileArray2D[a_type, a_dim0, a_dim1, num_pipeline_stages], b_tiles: SMemTileArray2D[b_type, b_dim0, b_dim1, num_pipeline_stages]) -> Self

get_tile

get_tile[k_group_size: Int](self, stage: UInt32, k_idx: Int) -> Tuple[StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].ATile, StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].BTile]

Get A and B tiles at the specified stage and k-group index.

Returns:

Tuple

get_a_tile

get_a_tile[k_group_size: Int](self, stage: UInt32, k_idx: Int) -> StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].ATile

Get A tile at the specified stage and k-group index.

Returns:

StandardTilePayload

get_b_tile

get_b_tile[k_group_size: Int](self, stage: UInt32, k_idx: Int) -> StandardTilePayload[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].BTile

Get B tile at the specified stage and k-group index.

Returns:

StandardTilePayload

Was this page helpful?