Repository navigation
[FlyDSL] [gfx950] hc_mix kernel for Qwen3.8 hyper-connections - #5993
Conversation
Adds a FlyDSL implementation of the Qwen3.8 hyper-connection mix projection (_hc_project) as aiter.ops.flydsl.hc_mix, with pack_hc_weights to prepack the weights, plus op_tests/test_flydsl_hc_mix.py checking it against a torch reference. About 2.7x faster than the SGLang baseline on gfx950 (median 2.66x over 5 shapes). Co-Authored-By: Claude <noreply@anthropic.com>
🏷️ CI GuideRuns automatically on every PR:
Extended tests (opt-in via labels):
One backend per PR: PR title tags & labels: |
Adds a FlyDSL kernel for the Qwen3.8 hyper-connection mix projection (
_hc_project) on gfx950: BF16 input, decode-sized M (up to 128 rows).Changes
aiter.ops.flydsl.hc_mix: down projection, then split-K reduce + SiLU, then up projection with gated HC reduction. Math runs in FP32; only the SiLU intermediate and the output are rounded to BF16.pack_hc_weights: packs the weights once into the MFMA operand layout.Performance
Setup:
[M, 10240], down[320, 10240], up[10240, 320].benchmark/kernels/bench_hc_mix_flydsl.pyin the SGLang PR.fused_hc_mix(µs)The weights alone are 2 × 320 × 10240 × 2 B = 13.1 MB. At M=1 that is about 0.72 TB/s effective, against the Triton kernel's 0.36 TB/s.
Accuracy
Against the float64 reference:
atol=4e-3, rtol=1e-2, andatol=5e-3in the gate-range test.Tests