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 trait

OutputWriter

Injected output-writer policy for BlackwellMatmulSM100Kernel.

Carries the regime scalars and a static factory-and-write that resolves the concrete writer from the kernel's config-derived parameters. The kernel takes this as the comptime output_writer_type parameter; the default is StandardOutputWriter (local TMA store, no sync, one peer).

Implemented traits​

AnyType

comptime members​

needs_sync​

comptime needs_sync

Whether the produced writer needs cross-GPU barrier/signal sync around the epilogue (reduce-scatter), False for a local TMA store.

num_peers​

comptime num_peers

Number of C TMA descriptors / peer buffers the kernel must supply in c_tma_ops (1 for the standard local store).

Required methods​

write_batched​

static def write_batched[tma_origin: ImmOrigin, c_type: DType, c_rank: Int, c_tile_shape: IndexList[c_rank], c_desc_shape: IndexList[c_rank], a_type: DType, accum_type: DType, block_tile_shape: IndexList[Int(3)], mma_shape: IndexList[Int(3)], opc: OutputPipelineConfig, c_swizzle: TensorMapSwizzle, transpose_c: Bool, c_smem_dim0: Int, c_smem_dim1: Int, num_output_stages: Int, num_output_warps: Int, elementwise_lambda_fn: Optional[def[dtype: DType, width: SIMDLength, *, alignment: Int = Int(1)](IndexList[Int(2)], SIMD[dtype, width]) capturing thin -> None], elementwise_compute_lambda_fn: Optional[def[dtype: DType, width: SIMDLength, *, alignment: Int = Int(1)](IndexList[Int(2)], SIMD[dtype, width]) capturing thin -> SIMD[dtype, width]], register_based_epilogue: Bool](c_tma_ops: Pointer[Array[TMATensorTile[c_type, c_rank, c_tile_shape, c_desc_shape], _Self.num_peers], tma_origin, _safe=True], c_tiles: SMemTileArray2DRowMajor[c_type, c_smem_dim0, c_smem_dim1, num_output_stages], stage: OutputStage[opc], tile_coord: Tuple[UInt32, UInt32, UInt32], shape: Tuple[UInt32, UInt32], alpha: Float32 = 1)

Construct the concrete writer from the c_tma_ops array and write one batched (3D-coord) output tile.

The standard policy stores descriptor [0]; the reduce-scatter policy retains all num_peers descriptors. The c_tiles / stage argument types are the shared SMemTileArray2DRowMajor[...] / OutputStage[opc] both writers consume, so the kernel passes its smem.c_tiles() and pipeline stage directly, with no rebind needed.

Parameters:

Args:

Was this page helpful?