nvfp4_grouped_gate_up_fused

Function nvfp4_grouped_gate_up_fused 

Source
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.