@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 91be5f9be3
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 6, 09:30 UTC

[MoE Refactor] Rename "naive" all2all backend (#36294)

Signed-off-by: Bill Nell <bnell@redhat.com>

bnellnm committed Mar 19, 2026 at 15:50 UTC 91be5f9be3e5bf44fd00b696bf47f0e41edae3bf
6 files changed +15 -16
docs/design/moe_kernel_features.md
+1 -1
@@ -103,7 +103,7 @@ To be used with a particular `FusedMoEPrepareAndFinalizeModular` subclass, MoE k
103
104 ## Modular Kernel "families"
105
106 -The following table shows "families" of modular kernels that are intended to work together. There are some combinations which may work but have not yet been tested, e.g. flashinfer with other fp8 experts. Note that the "naive" backend will work with any non-modular experts.
106 +The following table shows "families" of modular kernels that are intended to work together. There are some combinations which may work but have not yet been tested, e.g. flashinfer with other fp8 experts.
107
108 | backend | `FusedMoEPrepareAndFinalizeModular` subclasses | `FusedMoEExpertsModular` subclasses |
109 | ------- | ---------------------------------------------- | ----------------------------------- |
docs/serving/expert_parallel_deployment.md
-1
@@ -23,7 +23,6 @@ vLLM provides multiple communication backends for EP. Use `--all2all-backend` to
23 | `deepep_low_latency` | Multi-node decode | CUDA graph support, masked layout, optimized for decode | Decode-dominated workloads, low-latency scenarios |
24 | `flashinfer_nvlink_one_sided` | MNNVL systems | FlashInfer's one-sided A2A strategy for multi-node NVLink | High-throughput workloads |
25 | `flashinfer_nvlink_two_sided` | MNNVL systems | FlashInfer's two-sided A2A strategy for multi-node NVLink | Systems with NVLink across nodes |
26 -| `naive` | Testing/debugging | Simple broadcast-based implementation | Debugging, not recommended for production |
26
27 ## Single Node Deployment
28
vllm/config/parallel.py
+5 -6
@@ -162,7 +162,6 @@ class ParallelConfig:
162 all2all_backend: All2AllBackend = "allgather_reducescatter"
163 """All2All backend for MoE expert parallel communication. Available options:
164
165 - - "naive": Naive all2all implementation using broadcasts\n
165 - "allgather_reducescatter": All2all based on allgather and reducescatter\n
166 - "deepep_high_throughput": Use deepep high-throughput kernels\n
167 - "deepep_low_latency": Use deepep low-latency kernels\n
@@ -344,10 +343,11 @@ class ParallelConfig:
343 f"but found: {self._api_process_rank}"
344 )
345
347 - if self.all2all_backend == "pplx":
346 + if self.all2all_backend in ["pplx", "naive"]:
347 logger.warning(
349 - "The 'pplx' all2all backend has been removed. "
350 - "Falling back to 'allgather_reducescatter'."
348 + "The '%s' all2all backend has been removed. "
349 + "Falling back to 'allgather_reducescatter'.",
350 + self.all2all_backend,
351 )
352 self.all2all_backend = "allgather_reducescatter"
353
@@ -534,7 +534,6 @@ class ParallelConfig:
534 self.all2all_backend
535 in (
536 "allgather_reducescatter",
537 - "naive",
537 "deepep_high_throughput",
538 "deepep_low_latency",
539 "mori",
@@ -764,7 +763,7 @@ class ParallelConfig:
763 )
764
765 if (
767 - self.all2all_backend in ("allgather_reducescatter", "naive")
766 + self.all2all_backend in ("allgather_reducescatter")
767 and self.eplb_config.use_async
768 ):
769 logger.warning(
vllm/model_executor/layers/fused_moe/all2all_utils.py
+1 -1
@@ -229,7 +229,7 @@ def maybe_make_prepare_finalize(
229 num_dispatchers=all2all_manager.world_size,
230 )
231
232 - elif moe.use_naive_all2all_kernels and allow_new_interface:
232 + elif moe.use_ag_rs_all2all_kernels and allow_new_interface:
233 prepare_finalize = make_moe_prepare_and_finalize_naive_dp_ep(
234 use_monolithic=use_monolithic,
235 is_sequence_parallel=moe.moe_parallel_config.is_sequence_parallel,
vllm/model_executor/layers/fused_moe/config.py
+7 -6
@@ -975,9 +975,10 @@ class FusedMoEParallelConfig:
975 return self.use_deepep_ll_kernels
976
977 @property
978 - def use_naive_all2all_kernels(self):
979 - return self.use_all2all_kernels and (
980 - self.all2all_backend in ["naive", "allgather_reducescatter"]
978 + def use_ag_rs_all2all_kernels(self):
979 + return (
980 + self.use_all2all_kernels
981 + and self.all2all_backend == "allgather_reducescatter"
982 )
983
984 @property
@@ -1143,7 +1144,7 @@ class FusedMoEParallelConfig:
1144 ep_rank=0,
1145 sp_size=1,
1146 use_ep=False,
1146 - all2all_backend="naive",
1147 + all2all_backend="allgather_reducescatter",
1148 enable_eplb=False,
1149 )
1150
@@ -1256,8 +1257,8 @@ class FusedMoEConfig:
1257 return self.moe_parallel_config.use_fi_nvl_one_sided_kernels
1258
1259 @property
1259 - def use_naive_all2all_kernels(self):
1260 - return self.moe_parallel_config.use_naive_all2all_kernels
1260 + def use_ag_rs_all2all_kernels(self):
1261 + return self.moe_parallel_config.use_ag_rs_all2all_kernels
1262
1263 @property
1264 def use_nixl_ep_kernels(self):
vllm/model_executor/layers/fused_moe/experts/trtllm_fp8_moe.py
+1 -1
@@ -79,7 +79,7 @@ class TrtLlmFp8ExpertsBase:
79 """Monolithic kernel so only use with naive DP/EP and TP."""
80 return (
81 not moe_parallel_config.use_all2all_kernels
82 - or moe_parallel_config.use_naive_all2all_kernels
82 + or moe_parallel_config.use_ag_rs_all2all_kernels
83 ) and not moe_parallel_config.enable_eplb
84
85 def supports_chunking(self) -> bool: