[Distributed] Enable FlashInfer all-reduce by default (#52998)
Signed-off-by: Woosuk Kwon <woosuk@inferact.ai> Co-authored-by: OpenAI Codex <codex@openai.com>
Woosuk Kwon committed
Aug 19, 2026 at 18:17 UTC
6a962071bdad41c2d739bb2e879e72bbe9df9e63
2 files changed
+6
-3
vllm/distributed/device_communicators/cuda_communicator.py
+4
-1
@@ -58,7 +58,10 @@ class CudaCommunicator(DeviceCommunicatorBase):
58
59
use_custom_allreduce = _ENABLE_CUSTOM_ALL_REDUCE
60
use_torch_symm_mem = envs.VLLM_ALLREDUCE_USE_SYMM_MEM
61
- use_flashinfer_allreduce = envs.VLLM_ALLREDUCE_USE_FLASHINFER
61
+ # FlashInfer all-reduce does not provide a fixed reduction order.
62
+ use_flashinfer_allreduce = (
63
+ envs.VLLM_ALLREDUCE_USE_FLASHINFER and not envs.VLLM_BATCH_INVARIANT
64
+ )
65
use_aiter_allreduce = use_custom_allreduce and bool(
66
rocm_aiter_ops.is_custom_all_reduce_enabled()
67
)
vllm/envs.py
+2
-2
@@ -260,7 +260,7 @@ if TYPE_CHECKING:
260
VLLM_HAS_FLASHINFER_CUBIN: bool = False
261
VLLM_ROCM_FP8_MFMA_PAGE_ATTN: bool = False
262
VLLM_ALLREDUCE_USE_SYMM_MEM: bool = True
263
- VLLM_ALLREDUCE_USE_FLASHINFER: bool = False
263
+ VLLM_ALLREDUCE_USE_FLASHINFER: bool = True
264
VLLM_TUNED_CONFIG_FOLDER: str | None = None
265
VLLM_ENABLE_STARTUP_PLAN: bool = False
266
VLLM_GPT_OSS_SYSTEM_TOOL_MCP_LABELS: set[str] = set()
@@ -1857,7 +1857,7 @@ environment_variables: dict[str, Callable[[], Any]] = {
1857
),
1858
# Whether to use FlashInfer allreduce
1859
"VLLM_ALLREDUCE_USE_FLASHINFER": lambda: bool(
1860
- int(os.getenv("VLLM_ALLREDUCE_USE_FLASHINFER", "0"))
1860
+ int(os.getenv("VLLM_ALLREDUCE_USE_FLASHINFER", "1"))
1861
),
1862
# Experimental: use this to enable MCP tool calling for non harmony models
1863
"VLLM_USE_EXPERIMENTAL_PARSER_CONTEXT": lambda: bool(