pub fn moe_expert_silu_down_shared(
gpu: &dyn GpuBackend,
kernel: KernelHandle,
gate_out: DevicePtr,
up_out: DevicePtr,
packed_ptrs: DevicePtr,
scale_ptrs: DevicePtr,
scale2_vals: DevicePtr,
output: DevicePtr,
expert_indices: DevicePtr,
sh_gate_in: DevicePtr,
sh_up_in: DevicePtr,
sh_down: &QuantizedWeight,
sh_down_out: DevicePtr,
n: u32,
k: u32,
top_k: u32,
stream: u64,
) -> Result<()>Expand description
Fused SiLU+down expert GEMV with shared expert as extra blockIdx.y slot.
blockIdx.y < top_k: routed expert (pointer table + expert gate/up buffers). blockIdx.y == top_k: shared expert (direct pointers + sh_gate_in/up_in). Eliminates separate shared expert silu+down kernel launch.
Grid: (ceil(N/8), top_k+1, 1) Block: (128, 1, 1)