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 function
matmul_dispatch_sm90_fp8
def matmul_dispatch_sm90_fp8[c_type: DType, a_type: DType, b_type: DType, //, transpose_b: Bool = True, elementwise_lambda_fn: Optional[def[dtype: DType, width: SIMDLength, *, alignment: Int = Int(1)](IndexList[Int(2)], SIMD[dtype, width]) capturing thin -> None] = 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]] = None, pdl_level: PDLLevel = PDLLevel()](c: TileTensor[c_type, Storage=c.Storage, address_space=c.address_space, linear_idx_type=c.linear_idx_type], a: TileTensor[a_type, Storage=a.Storage, address_space=a.address_space, linear_idx_type=a.linear_idx_type], b: TileTensor[b_type, Storage=b.Storage, address_space=b.address_space, linear_idx_type=b.linear_idx_type], ctx: DeviceContext) -> Int
Dispatches an FP8 (e4m3fn) rank-2 matmul to the SM90 warp-specialized kernel.
Searches the llama-405B and llama-8B FP8 tuning tables for matching static
N and K, then falls back to a generic kernel sized by
_find_largest_bn_for_sm90_matmul for other shapes. Honors the
AUTOTUNING_MODE compile-time flag to launch a single autotuning config.
Parameters:
- βc_type (
DType): Element type of the output tensorc(inferred). - βa_type (
DType): Element type of the input tensora; must befloat8_e4m3fn(inferred). - βb_type (
DType): Element type of the input tensorb; must befloat8_e4m3fn(inferred). - βtranspose_b (
Bool): Whetherbis stored transposed (defaults toTrue); the SM90 kernel requires this to beTrueto dispatch. - βelementwise_lambda_fn (
Optional[def[dtype: DType, width: SIMDLength, *, alignment: Int = Int(1)](IndexList[Int(2)], SIMD[dtype, width]) capturing thin -> None]): Epilogue applied to each output tile after the matmul, consuming the tile and returning nothing (defaults toNonefor no epilogue). - β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]]): Compute lambda transforming each output value before the epilogue, returning the transformed value (defaults toNonefor no transform). - βpdl_level (
PDLLevel): Programmatic dependent launch level for overlapping this kernel with prior work (defaults toPDLLevel()).
Args:
- βc (
TileTensor[c_type, Storage=c.Storage, address_space=c.address_space, linear_idx_type=c.linear_idx_type]): Rank-2 output tensor of shape(M, N). - βa (
TileTensor[a_type, Storage=a.Storage, address_space=a.address_space, linear_idx_type=a.linear_idx_type]): Rank-2 input tensor of shape(M, K). - βb (
TileTensor[b_type, Storage=b.Storage, address_space=b.address_space, linear_idx_type=b.linear_idx_type]): Rank-2 input tensor of shape(K, N)whentranspose_bisTrue. - βctx (
DeviceContext): Device context for the kernel launch.
Returns:
Int: DISPATCH_HIT (1) if the kernel was launched, DISPATCH_MISS (0)
otherwise.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!