Conversation
dllehr-amd
requested changes
Aug 11, 2026
dllehr-amd
left a comment
Collaborator
There was a problem hiding this comment.
Lets just see about 64 group size and it's efficacy here
| @@ -1082,3 +1215,5 @@ def __init__(self, config: VllmConfig) -> None: | |||
| for epsilon in [1e-5, 1e-6]: | |||
| self.register(MLADualRMSNormPattern(epsilon)) | |||
| self.register(MLADualRMSPerTokenQuantPattern(epsilon)) | |||
| for group_size in [128, 64]: | |||
Collaborator
There was a problem hiding this comment.
Can you double check that group size 64 is used, and this pattern correctly runs it? The UT you provided is for 128 only
Contributor
Author
There was a problem hiding this comment.
All producers hard code 128. Removed 64
Contributor
|
This pull request has merge conflicts that must be resolved before it can be |
afriedri
force-pushed
the
fuse_triton_kernels
branch
from
August 27, 2026 21:02
fb4efde to
0073cf6
Compare
Rebased onto main after vllm-project#53540 landed the fused_mla_dual_rms_norm_group_quant custom op. The op registration this PR previously carried is dropped; only the accessor the pattern matcher needs is added here. Adds MLADualRMSGroupQuantPattern, the group-quant sibling of the existing MLADualRMSPerTokenQuantPattern, so the MLA FP8 path picks up the fused AITER kernel through the compile pass rather than a hand-wired call site -- covering DeepSeek-R1 / MLA, which vllm-project#53540 does not touch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Andy Friedrich <afriedri@amd.com>
afriedri
force-pushed
the
fuse_triton_kernels
branch
from
August 27, 2026 21:16
0073cf6 to
e583740
Compare
dllehr-amd
approved these changes
Sep 9, 2026
dllehr-amd
left a comment
Collaborator
There was a problem hiding this comment.
Thanks @afriedri looks good now
|
✅ @afriedri, CI is now available for this PR.
|
Contributor
Author
|
/ci run |
|
✅ Triggered Buildkite CI #87966 for commit |
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.
Purpose
Extends #49621 so that double RMSNorm fp8 quantization fusion works on group-sized quant. Distinct from open #44437 (MXFP4) and #45798 (RoPE-gate).
Validation
becomes
<think>blocks, so flexible-extract is the correct metric.tests/compile/passes/test_fuse_mla_dual_rms_norm.py— 3 passed (plain, per-token, and new group-quant), on ROCm/AITER withVLLM_ROCM_USE_AITER=1.End-to-end serving
DeepSeek-R1, TP8, MI350X (gfx950), ROCm + AITER (
VLLM_ROCM_USE_AITER=1). Bothservers built from the same tree; the only difference is the
fuse_mla_dual_rms_normpass. Each config ran a 3-prompt warmup that wasdiscarded, then the measured run below.
Update: rebased onto #53540 (2026-08-27)
#53540 landed the fused_mla_dual_rms_norm_group_quant custom op while this was in review, so the op registration this PR used to carry is dropped — it now calls upstream's. Keep compile pass.
vllm/_aiter_ops.py goes from +77 to +4. Total +354 → +284.
Re-validated against upstream's op
Unit tests: 3/3 pass (tests/compile/passes/test_fuse_mla_dual_rms_norm.py), including a bit-exactness check on the q latent vs the unfused reference.
Pass fires — refs in the AOT-compiled model, per rank:
fuse_mla_dual_rms_norm=falsefused_mla_dual_rms_norm_group_quantrocm_aiter_rmsnorm_fp8_group_quantPrepared with the help of AI (Claude). All changes looked over + verified by Andy.