IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /max/get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).

Mojo struct

BlockwiseFP8TileStorage

struct BlockwiseFP8TileStorage[a_type: DType, b_type: DType, c_type: DType, a_scales_type: DType, a_shape: IndexList[2], b_shape: IndexList[2], c_dim0: Int, c_dim1: Int, a_scales_shape: IndexList[2], num_pipeline_stages: Int, num_output_stages: Int]

Storage for blockwise FP8 matmul tiles (A, B, C, A-scales).

Single source of truth for blockwise FP8 tile arrays and storage. B-scales are read directly from global memory during epilogue.

All tiles use TileTensor natively. LayoutTensor conversion is kept for SMemEpilogueWriter compatibility.

IMPORTANT: Field order preserves SMEM layout compatibility: a, b, c, a_scales.

Parameters​

  • ​a_type (DType): Data type for A matrix tiles.
  • ​b_type (DType): Data type for B matrix tiles.
  • ​c_type (DType): Data type for C matrix tiles.
  • ​a_scales_type (DType): Data type for A scale tiles.
  • ​a_shape (IndexList[2]): Tile shape for A tiles as (rows, cols).
  • ​b_shape (IndexList[2]): Tile shape for B tiles as (rows, cols).
  • ​c_dim0 (Int): First dimension for C tiles (OutputM).
  • ​c_dim1 (Int): Second dimension for C tiles (OutputN).
  • ​a_scales_shape (IndexList[2]): Tile shape for A scale tiles as (rows, cols).
  • ​num_pipeline_stages (Int): Number of input pipeline stages.
  • ​num_output_stages (Int): Number of output pipeline stages.

Fields​

  • ​a_tiles_storage (BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].ATileArray.Storage):
  • ​b_tiles_storage (BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].BTileArray.Storage):
  • ​c_tiles_storage (BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].CTileArray.Storage):
  • ​a_scales_tiles_storage (BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].AScalesTileArray.Storage):

Implemented traits​

AnyType, ImplicitlyDestructible

comptime members​

AScalesTileArray​

comptime AScalesTileArray = SMemTileArray2DRowMajor[a_scales_type, a_scales_shape[0], a_scales_shape[1], num_pipeline_stages]

ATileArray​

comptime ATileArray = SMemTileArray2D[a_type, a_shape[0], a_shape[1], num_pipeline_stages]

BTileArray​

comptime BTileArray = SMemTileArray2D[b_type, b_shape[0], b_shape[1], num_pipeline_stages]

c_tile_layout​

comptime c_tile_layout = Layout.row_major(c_dim0, c_dim1)

CTileArray​

comptime CTileArray = SMemTileArray2DRowMajor[c_type, c_dim0, c_dim1, num_output_stages]

Methods​

a_tiles​

a_tiles(ref[AddressSpace._value] self) -> BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].ATileArray

Get A tile array accessor.

Returns:

BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].ATileArray

b_tiles​

b_tiles(ref[AddressSpace._value] self) -> BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].BTileArray

Get B tile array accessor.

Returns:

BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].BTileArray

c_tiles​

c_tiles(ref[AddressSpace._value] self) -> BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].CTileArray

Get C tile array accessor.

Returns:

BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].CTileArray

a_scales_tiles​

a_scales_tiles(ref[AddressSpace._value] self) -> BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].AScalesTileArray

Get A-scales tile array accessor.

Returns:

BlockwiseFP8TileStorage[a_type, b_type, c_type, a_scales_type, a_shape, b_shape, c_dim0, c_dim1, a_scales_shape, num_pipeline_stages, num_output_stages].AScalesTileArray