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 function

select_and_launch_sm100_config

def select_and_launch_sm100_config[c_type: DType, a_type: DType, b_type: DType, launch_type: def[config: MatmulConfig[*?, *?, *?, *?]](TileTensor[c_type, *?, origin_of(origin), Storage=*?, address_space=*?, linear_idx_type=*?], TileTensor[a_type, *?, origin_of(origin), Storage=*?, address_space=*?, linear_idx_type=*?], TileTensor[b_type, *?, origin_of(origin), Storage=*?, address_space=*?, linear_idx_type=*?], DeviceContext, OptionalReg[TileTensor[c_type, Layout[*?, *?], ImmutAnyOrigin]]) raises -> None, //, 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(), has_epilogue_tensor: Bool = False, epilogue_is_1d: Bool = False](launch: launch_type, 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, epilogue_tensor: OptionalReg[TileTensor[c_type, Layout[*?, *?], ImmutAnyOrigin]] = None) -> Int where (eq launch_type.c_type, c_type) where (eq launch_type.a_type, a_type) where (eq launch_type.b_type, b_type)

Selects and launches an SM100 matmul config for the given shape.

Checks the per-dtype outlier tuning list for a matching (N, K, M) config, then falls back to the heuristic config set from build_sm100_matmul_configs chosen via choose_config. For float8_e4m3fn output, always launches the default config on a miss; other dtypes return DISPATCH_MISS.

Returns:

Int

Was this page helpful?