@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 4ff865c38e
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 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 (