A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 12, 13:30 UTC
Revert "[Bugfix] Fix GPT-OSS AR+NORM fusion (#28841)" (#29483)
Signed-off-by: Huamin Li <3ericli@gmail.com>
Huamin Li committed
Nov 26, 2025 at 06:27 UTC
70d5953f820ec528e2b6050a7969130009410d1e
4 files changed
+7
-24
.buildkite/test-pipeline.yaml
-1
@@ -972,7 +972,6 @@ steps:
972
- vllm/model_executor/layers/layernorm.py
973
- vllm/model_executor/layers/activation.py
974
- vllm/model_executor/layers/quantization/input_quant_fp8.py
975
- - vllm/model_executor/layers/fused_moe/layer.py
975
- tests/compile/test_fusion_attn.py
976
- tests/compile/test_silu_mul_quant_fusion.py
977
- tests/compile/distributed/test_fusion_all_reduce.py
tests/compile/distributed/test_fusions_e2e.py
-11
@@ -111,17 +111,6 @@ if current_platform.is_cuda():
111
async_tp=96, # MLP is MoE, half the fusions of dense
112
),
113
),
114
- ModelBackendTestCase(
115
- model_name="openai/gpt-oss-20b",
116
- model_kwargs=dict(max_model_len=1024, kv_cache_dtype="fp8"),
117
- backend=AttentionBackendEnum.FLASHINFER,
118
- matches=Matches(
119
- attention_fusion=0,
120
- allreduce_fusion=49,
121
- sequence_parallel=49,
122
- async_tp=48,
123
- ),
124
- ),
114
]
115
116
elif current_platform.is_rocm():
vllm/distributed/device_communicators/symm_mem.py
+1
-1
@@ -131,7 +131,7 @@ class SymmMemCommunicator:
131
return None
132
if out is None:
133
out = torch.empty_like(inp)
134
- self.buffer[: inp.numel()].copy_(inp.reshape(-1))
134
+ self.buffer[: inp.numel()].copy_(inp.view(-1))
135
136
# Determine which algorithm to use
137
use_multimem = False
vllm/model_executor/layers/fused_moe/layer.py
+6
-11
@@ -1690,10 +1690,6 @@ class FusedMoE(CustomOp):
1690
)
1691
1692
def reduce_output(states: torch.Tensor) -> torch.Tensor:
1693
- # Slice before all_reduce to enable possible fusion
1694
- if self.hidden_size != og_hidden_states:
1695
- states = states[..., :og_hidden_states]
1696
-
1693
if (
1694
not self.is_sequence_parallel
1695
and not self.use_dp_chunking
@@ -1716,12 +1712,11 @@ class FusedMoE(CustomOp):
1712
if self.zero_expert_num is not None and self.zero_expert_num > 0:
1713
assert isinstance(fused_output, tuple)
1714
fused_output, zero_expert_result = fused_output
1719
- return (
1720
- reduce_output(fused_output)
1721
- + zero_expert_result[..., :og_hidden_states]
1722
- )
1715
+ return (reduce_output(fused_output) + zero_expert_result)[
1716
+ ..., :og_hidden_states
1717
+ ]
1718
else:
1724
- return reduce_output(fused_output)
1719
+ return reduce_output(fused_output)[..., :og_hidden_states]
1720
else:
1721
if current_platform.is_tpu():
1722
# TODO: Once the OOM issue for the TPU backend is resolved, we
@@ -1734,8 +1729,8 @@ class FusedMoE(CustomOp):
1729
hidden_states, router_logits, self.layer_name
1730
)
1731
return (
1737
- reduce_output(shared_output),
1738
- reduce_output(fused_output),
1732
+ reduce_output(shared_output)[..., :og_hidden_states],
1733
+ reduce_output(fused_output)[..., :og_hidden_states],
1734
)
1735
1736
def forward_cuda(