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 2, 09:45 UTC
[Bugfix] Disable allreduce_rms_fusion when pipeline_parallel_size > 1 (#43616)
Signed-off-by: zixi-qi <zixi@inferact.ai> Co-authored-by: Claude <noreply@anthropic.com>
qizixi committed
May 29, 2026 at 07:57 UTC
4ff865c38eac3c3602c064fd43b00836805cd0a4
1 file changed
+8
-1
vllm/config/vllm.py
+8
-1
@@ -121,7 +121,13 @@ def enable_act_fusion(cfg: "VllmConfig") -> bool:
121
122
123
def enable_allreduce_rms_fusion(cfg: "VllmConfig") -> bool:
124
- """Enable if TP > 1 and Hopper/Blackwell and flashinfer installed."""
124
+ """Enable if TP > 1, PP == 1, Hopper/Blackwell, and flashinfer installed.
125
+
126
+ Gated off for PP > 1: the fused op's GPU-side peer-signal spin-wait
127
+ assumes byte-identical kernel launches across TP peers, but concurrent
128
+ independent warmup of multiple TP subgroups lets ranks pick divergent
129
+ FlashInfer launch configs and deadlock.
130
+ """
131
from vllm.platforms import current_platform
132
from vllm.utils.flashinfer import has_flashinfer
133
@@ -134,6 +140,7 @@ def enable_allreduce_rms_fusion(cfg: "VllmConfig") -> bool:
140
141
return (
142
cfg.parallel_config.tensor_parallel_size > 1
143
+ and cfg.parallel_config.pipeline_parallel_size == 1
144
and current_platform.is_cuda()
145
and has_flashinfer()
146
and (