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

BlockwiseFP8Smem

struct BlockwiseFP8Smem[a_type: DType, b_type: DType, c_type: DType, a_scales_type: DType, transpose_b: Bool, *, config: MatmulConfig[a_type, b_type, c_type, transpose_b]]

SMEM struct for blockwise FP8 matmul with CLC scheduler pipeline.

Thin wrapper over BlockwiseFP8TileCore + SmemPipelineBundle.

Fields​

  • ​core (BlockwiseFP8Smem[a_type, b_type, c_type, a_scales_type, transpose_b, config=config].Core):
  • ​pipelines (BlockwiseFP8Smem[a_type, b_type, c_type, a_scales_type, transpose_b, config=config].Pipelines):

Implemented traits​

AnyType, ImplicitlyDeletable

comptime members​

Core​

comptime Core = BlockwiseFP8TileCore[a_type, b_type, c_type, a_scales_type, transpose_b, config=config]

Pipelines​

comptime Pipelines = SmemPipelineBundle[(config // config), config.num_accum_pipeline_stages, config.num_clc_pipeline_stages, BlockwiseFP8TilePayload[a_type, b_type, a_scales_type, IndexList(config.block_tile_shape[Int(0)], config.block_tile_shape[Int(2)], __list_literal__=NoneType(None)), IndexList(config.block_tile_shape[Int(1)], config.block_tile_shape[Int(2)], __list_literal__=NoneType(None)), IndexList(Int(1), config.block_tile_shape[Int(0)], __list_literal__=NoneType(None)), config.num_pipeline_stages]]

Methods​

a_tiles​

def a_tiles(ref[AddressSpace._value] self) -> Self.Core.ATileArray

Get A tile array accessor.

Returns:

Self.Core.ATileArray

b_tiles​

def b_tiles(ref[AddressSpace._value] self) -> Self.Core.BTileArray

Get B tile array accessor.

Returns:

Self.Core.BTileArray

c_tiles​

def c_tiles(ref[AddressSpace._value] self) -> Self.Core.CTileArray

Get C tile array accessor.

Returns:

Self.Core.CTileArray

a_scales_tiles​

def a_scales_tiles(ref[AddressSpace._value] self) -> Self.Core.AScalesTileArray

Get A-scales tile array accessor.

Returns:

Self.Core.AScalesTileArray

ab_pipeline_size​

static def ab_pipeline_size() -> Int

Total size of A+B tiles for all pipeline stages (in elements).

Returns:

Int

a_scales_pipeline_size​

static def a_scales_pipeline_size() -> Int

Total size of A-scales tiles for all pipeline stages (in elements).

Returns:

Int

c_output_size​

static def c_output_size() -> Int

Size of C tiles for all output stages (in elements).

Returns:

Int

total_tile_size​

static def total_tile_size() -> Int

Total tile storage size (A+B+A-scales+C) in elements.

Returns:

Int