Fix/gfx1201 bf16 g1u1 small m moe - #4740
Draft
keneoneth wants to merge 2 commits into
Draft
Conversation
Contributor
🏷️ CI GuideRuns automatically on every PR:
Extended tests (opt-in via labels):
|
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
Add a narrow gfx1201/RDNA4 BF16 G1U1 MoE direct path for very small decode-sized Qwen3.6 shapes.
This is part of the Qwen3.6 gfx1201 AITER MoE enablement stack.
Issue being addressed:
fmoe_g1u1finds no suitable kernel #4492Required dependency:
The generic MoE path is too expensive for very small M decode cases, and unsupported gfx12 shapes can otherwise fall into CK paths that are not valid for the problem. This PR adds a tightly guarded direct BF16 path for the tiny-M tier.
This PR intentionally does not claim broader gfx12 MoE shape support. Follow-up PRs will add tuned config data and optimized tiled/direct-route kernels for larger small-M shapes.
Technical Details
This PR adds a direct BF16 G1U1 MoE path guarded to:
M <= 4Implementation summary:
fmoe_g1u1_bf16_small_mentrypoint.Silu(gate) * upinto a BF16 activation workspace.aiter/fused_moe.pyfor the guarded tiny-M gfx1201 BF16 G1U1 case.Follow-up PR stack:
Related vLLM safety work:
Test Plan
Static validation:
Targeted GPU validation:
Performance validation should compare Qwen3.6 BF16 tiny-M cases against the previous AITER path and the vLLM Triton MoE path, with the same routing inputs and canonical weights.
Test Result
Static validation passed:
Local branch:
Diff summary:
GPU performance/correctness results should be added before marking ready for full review.
Submission Checklist