KernelBench cuda · H100
GLM-5.2 Fused MoE Muse Spark 1.3
Isolated regrade 0.0717 on a quiet H100 SXM 2026-09-03 07:41Z (harness 0.0720, in-run 0.0713). Real fused MoE: a single-block counting-sort plan kernel groups the T*8 (token, slot) pairs per expert on GPU and emits perm/rank/starts/lens plus the active-expert list, a gather kernel builds one padded (A, Cmax, H) batch touching only active experts, a fused SiLU*mul kernel (fp32 math, RNE bf16 store) sits between the two stages, and a collect kernel gives each token one block that binary-searches starts for its K slots and accumulates shared + sum_k w*y in fp32. Every timed matmul, however, is torch: bmm for both routed stages and F.linear for the shared expert - no cublas symbol and no MMA anywhere in the file, which places it below the grok-4.6 and deepseek-v4-pro library-GEMM cells rather than beside the authored-MMA glm-5.3 and Opus 5 ones. The M<=8 decode branch fires at T=1 only and computes the full op (shared expert plus all 8 routed pairs, fp32 weighted sum); check.py preserves T=1 so it is correctness-checked at 3 seeds x 3 stress cases. A hardcoded-shape decode experiment (H -> 4096, H/64 -> 64) was built, measured 3x slower than the bmm path, and fully reverted with a byte-identical backup diff. No cache, CUDA graph, or data_ptr-keyed state exists, so the overwrite probe has no trigger; note time_fn reuses the same inputs across all 15 iters, which a memoizer would exploit and this kernel does not. All seven template files byte-identical and trusted_src clean; template_mutated false. This run was bwrap-sandboxed: ls /root/kb-cuda/ returned no results/ and no DEVLOG.md, every outputs/runs reference in transcript and export is this run's own id, and the only long lines shared with the gemini or RTX muse solutions are reference-mandated __init__ boilerplate. gpu_lock.log records 61 commands with 61 wait/start/end and no contention.
20260903_022859_muse_muse-spark-1.3_01_glm52_fused_moe