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
Struct_grouped_matmul_block_scaled
struct Struct_grouped_matmul_block_scaled
MOGG wrapper for grouped block-scaled matrix multiplication.
Provides graph compiler integration for block-scaled grouped matmul operations used in Mixture of Experts (MoE) layers on SM100 GPUs.
Implemented traitsβ
AnyType,
ImplicitlyDestructible
Methodsβ
executeβ
static def execute[c_type: DType, a_type: DType, b_type: DType, scales_type: DType, //, target: StringSlice[StaticConstantOrigin]](c: ManagedTensorSlice[Output, static_spec=c.static_spec], a: ManagedTensorSlice[Input, static_spec=a.static_spec], b: ManagedTensorSlice[Input, static_spec=b.static_spec], a_scales: ManagedTensorSlice[Input, static_spec=a_scales.static_spec], b_scales: ManagedTensorSlice[Input, static_spec=b_scales.static_spec], expert_start_indices: ManagedTensorSlice[Input, static_spec=expert_start_indices.static_spec], expert_ids: ManagedTensorSlice[Input, static_spec=expert_ids.static_spec], a_scale_offsets: ManagedTensorSlice[Input, static_spec=a_scale_offsets.static_spec], expert_scales: ManagedTensorSlice[Input, static_spec=expert_scales.static_spec], estimated_total_m: UInt32, num_active_experts: UInt32, context: DeviceContext)
Executes grouped block-scaled matrix multiplication.
Computes C = A @ B^T for multiple expert groups where A and B are block-scaled (e.g. NVFP4: 4-bit floating point packed as uint8).
Parameters:
- βc_type (
DType): The output tensor data type. - βa_type (
DType): The input A data type. Constraints: Must beuint8. - βb_type (
DType): The input B data type. Constraints: Must beuint8. - βscales_type (
DType): The scale factor data type. Constraints: Must befloat8_e4m3fn. - βtarget (
StringSlice[StaticConstantOrigin]): The target GPU device.
Args:
- βc (
ManagedTensorSlice[Output, static_spec=c.static_spec]): The output tensor of shape (total_tokens, N). - βa (
ManagedTensorSlice[Input, static_spec=a.static_spec]): The input tensor of shape (total_tokens, K // 2). - βb (
ManagedTensorSlice[Input, static_spec=b.static_spec]): The weight tensor of shape (num_experts, N, K // 2). - βa_scales (
ManagedTensorSlice[Input, static_spec=a_scales.static_spec]): The A scale factors in tcgen05 5D layout. - βb_scales (
ManagedTensorSlice[Input, static_spec=b_scales.static_spec]): The B scale factors in tcgen05 6D layout. - βexpert_start_indices (
ManagedTensorSlice[Input, static_spec=expert_start_indices.static_spec]): The starting token index for each expert. - βexpert_ids (
ManagedTensorSlice[Input, static_spec=expert_ids.static_spec]): The expert ID for each group. - βa_scale_offsets (
ManagedTensorSlice[Input, static_spec=a_scale_offsets.static_spec]): The starting scale index for each expert. - βexpert_scales (
ManagedTensorSlice[Input, static_spec=expert_scales.static_spec]): The per-expert scaling factors for the epilogue. - βestimated_total_m (
UInt32): The estimated total number of tokens. - βnum_active_experts (
UInt32): The number of active experts. - βcontext (
DeviceContext): The device context pointer.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!