pub fn nvfp4_grouped_gate_up_fused(
a: u64,
sorted_token_ids: u64,
gate_packed_ptrs: &[u64],
gate_sfb_ptrs: &[u64],
gate_scale2_vals: &[f32],
up_packed_ptrs: &[u64],
up_sfb_ptrs: &[u64],
up_scale2_vals: &[f32],
c_gate: u64,
c_up: u64,
expert_offsets_host: &[i32],
n: u32,
k: u32,
stream: u64,
) -> Result<()>Expand description
2026-09-25: Grouped NVFP4 gate and up GEMMs, one GemmUniversalMode::kGrouped
launch per projection over the active experts. a is packed once and
shared by both.
a is bf16 and token-major. Group row i reads token sorted_token_ids[i],
or token i when sorted_token_ids is 0 (null); expert e owns group rows
[expert_offsets_host[e], expert_offsets_host[e+1]), and c_gate/c_up are
written in that order. *_packed_ptrs hold one device pointer per expert to
a CUTLASS [N,K/2] weight; *_sfb_ptrs to its swizzled SFB scales (see
pack_weight_sfb). *_scale2_vals and expert_offsets_host are host arrays.