@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 70d5953f82
Fork 0

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(