[MoE][Ada] Add Qwen4-Exp FP8 Triton configs for NVIDIA L20 - #36993
Open
positive666 wants to merge 1 commit into
Open
positive666 wants to merge 1 commit into
positive666 wants to merge 1 commit into
Conversation
positive666
requested review from
BBuf,
Edwardf0t1,
Fridge003,
HaiShaw,
Ying1123,
ch-wan,
ispobock and
merrymercy
as code owners
August 29, 2026 08:18
positive666
force-pushed
the
codex/qwen4exp-l20-fp8-configs
branch
from
September 2, 2026 04:20
cce35da to
eb56833
Compare
positive666
force-pushed
the
codex/qwen4exp-l20-fp8-configs
branch
from
September 14, 2026 15:51
eb56833 to
04639d5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Qwen3.8-Flash-Next-FP8 uses the
Qwen4ExpForConditionalGenerationMoE architecture, but the TP4/EP4 FP8 path on NVIDIA L20 currently falls back to the default Triton MoE configuration because these exact keys are missing:The topology is TP4/EP4 with 128 local experts, hidden size 2560, MoE intermediate size 640, top-k 10, and FP8 block shape
[128, 128]. All 48 transformer layers contain MoE blocks.Modifications
Add independently tuned L20 configurations for the gate-up and down GEMMs at M buckets 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, and 1024 under the Triton 3.7.1 config directory.
This is a data-only change. The generic config loader on
mainalready resolves these keys, so it has no code dependency. Qwen3.8-Flash-Next model integration has landed in #37500 (replacing #36497).September 14 CPU-only update
Rebased onto
7465e42b7a, including the required CI baseline. Both JSON files are unchanged from the previously tuned submission; the base branch still has no matching L20 configurations.A dependency-isolated CPU check of the current loader definitions verified unique/valid JSON keys, all 22 gate-up/down bucket records, filename resolution, loading and nearest-bucket selection for 15 batch sizes, matching gate-up/down
BLOCK_SIZE_M, version fallback, and deterministic-mode bypass. No GPU work was performed during this update. The accuracy and timing results below were collected before this rebase and have not been revalidated against the current kernels.Accuracy Tests (historical)
Compared the default and tuned kernels with fixed inputs at every configured M bucket. All 11 buckets were bitwise identical:
Speed Tests and Profiling
Hardware and shape:
[128, 128]Routing methodology:
Three-repeat interleaved default/tuned A/B on the independent holdout routing:
These are MoE kernel measurements. The trace requests were prefill-only (
max_new_tokens=0); this PR does not claim end-to-end serving throughput because sparse QSA decode on SM89 still requires classic FA2.Checklist
CI States
Latest PR Test (Base): ❌ Run #34864866608
Latest PR Test (Extra): ❌ Run #34864866514
Latest PR Test (AMD ROCm 10): ❌ Run #34864866545