MUSA: enable CAR-RMSNorm by default under contract - #199
Open
Elon-yf wants to merge 1 commit into
Open
Conversation
Elon-yf
force-pushed
the
codex/musa60030-default-on-qwen36-v028-20260825
branch
from
August 27, 2026 10:47
e69cf29 to
c7532bc
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.
Default-enable MUSA CAR-RMSNorm with per-model batch routing
Summary
The original PR #140 added CAR-RMSNorm support but did not enable it by
default. This update enables it by default for supported routes. A normal
vllm servecommand needs no CAR-specific override.To disable only CAR-RMSNorm while keeping compilation and CUDAGraph enabled,
pass
-cc.pass_config.fuse_allreduce_rms=False. The nested field syntax merges with theexisting
-cc.modeand-cc.cudagraph_modearguments.pass_config.fuse_allreduce_rmsunspecified (auto/default)-cc.pass_config.fuse_allreduce_rms=Falsepass_config.fuse_allreduce_rmsunspecified (auto/default)Problem
CAR-RMSNorm support depends on the model family, tensor-parallel size, hidden
size, explicit BF16 or FP8 format, active rows, and compile range. A broad global
switch cannot safely decide every row. Unsupported configurations and compile
ranges that cross a native boundary must remain on the native path.
Implementation
range.
the native path.
control:
-cc.pass_config.fuse_allreduce_rms=False.Supported routing matrix
TP2 contract
[16][3,4,15,16,63][[1,3],[4,4],[5,15],[17,63],[64,8192]]; Native[[16,16]][4,16][3,4,15,16,63][[1,3],[5,15],[17,63],[64,8192]]; Native[[4,4],[16,16]]TP4 contract
[16,64][15,16,63,64][[1,15]]; Native[[16,16],[17,63],[64,64],[65,8192]][64][15,16,63,64][[1,15],[16,16],[17,63],[65,8192]]; Native[[64,64]]Other / unsupported
[][][[1,8192]]Compile endpoints split the graph into stable intervals. If a requested range
crosses a native row, the provider uses the native path for that range; the
endpoint partition keeps adjacent fused intervals separate.
Qwen3.5 serve and benchmark
Run the benchmark once per reported BS (
1,4,16, or64); set--num-promptsand--max-concurrencyto that same BS, with--request-rate inf. The command below shows the 4096/1024 form; use the sameBS mapping for the 2500/1500 rows by changing the two random-length arguments.
The serve command below is the default-ON arm:
For the matched OFF arm, append this argument to the same serve command:
Validation
The existing
FULL_DECODE_ONLYreport is copied without re-aggregation:n=10repeated data;25 cells retain the report's unavailable sample count.
are not attributed to fused execution.
FULL_DECODE_ONLYmeasures the decode graph path; mixed execution is outsidethis report.
Complete results
Qwen3.5-35B-A3B-BF16 · 4096/1024 · TP4 · BF16
Qwen3.5-35B-A3B-BF16 · 2500/1500 · TP4 · BF16
Qwen3.5-27B-BF16 · 4096/1024 · TP2 · BF16
Qwen3.5-27B-BF16 · 2500/1500 · TP2 · BF16
Qwen3.5-27B-FP8 · 4096/1024 · TP2 · FP8
Qwen3.5-27B-FP8 · 2500/1500 · TP2 · FP8
Qwen3.5-35B-A3B-FP8 · 4096/1024 · TP4 · FP8
Qwen3.5-35B-A3B-FP8 · 2500/1500 · TP4 · FP8
Standalone Qwen3.6-27B case
This case is reported separately from the Qwen3.5 matrix.
Qwen3.6-27B serve and benchmark
The serve command below is the default-ON arm:
For the matched OFF arm, append this argument to the same serve command:
Gain is relative to SGLang. Positive values are better; throughput uses
higher-is-better, while TTFT and TPOT use lower-is-better.
Limitations
RMSNorm; ordinary custom all-reduce transport is unchanged.
n=10measurements.they do not establish fused-operator performance benefit.