Skip to main content

Mojo struct

StandardTileStorage

struct StandardTileStorage[a_type: DType, b_type: DType, a_dim0: Int, a_dim1: Int, b_dim0: Int, b_dim1: Int, num_pipeline_stages: Int]

Storage for standard matmul tiles (A and B).

This is the single source of truth for tile array types and storage. SMEM structs embed this rather than defining tile arrays separately.

All tiles use TileTensor natively. Convert to LayoutTensor at TMA/MMA boundaries using {ptr} syntax or explicit construction.

Parameters

  • a_type (DType): Data type for A matrix tiles.
  • b_type (DType): Data type for B matrix tiles.
  • a_dim0 (Int): First dimension for A tiles.
  • a_dim1 (Int): Second dimension for A tiles.
  • b_dim0 (Int): First dimension for B tiles.
  • b_dim1 (Int): Second dimension for B tiles.
  • num_pipeline_stages (Int): Number of pipeline stages (determines array depth).

Fields

  • a_tiles_storage (StandardTileStorage[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].ATileArray.Storage):
  • b_tiles_storage (StandardTileStorage[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].BTileArray.Storage):

Implemented traits

AnyType, ImplicitlyDestructible

comptime members

__del__is_trivial

comptime __del__is_trivial = True

ATileArray

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

BTileArray

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

Methods

a_tiles

a_tiles(ref[AddressSpace._value._mlir_value] self) -> StandardTileStorage[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].ATileArray

Get A tile array accessor (TileTensor-based).

Returns:

StandardTileStorage

b_tiles

b_tiles(ref[AddressSpace._value._mlir_value] self) -> StandardTileStorage[a_type, b_type, a_dim0, a_dim1, b_dim0, b_dim1, num_pipeline_stages].BTileArray

Get B tile array accessor (TileTensor-based).

Returns:

StandardTileStorage

Was this page helpful?