From f72b20976c49f5cc522281b59df4863cabed8df2 Mon Sep 17 00:00:00 2001 From: Tyler Michael Smith Date: Mon, 13 Apr 2026 15:13:51 -0400 Subject: [PATCH] [Bugfix] Reject non-nvfp4 dtypes when using the flashinfer_nvlink_one_sided all2all backend (#39717) Signed-off-by: Tyler Michael Smith Co-authored-by: Claude Opus 4.6 (1M context) --- vllm/model_executor/layers/fused_moe/all2all_utils.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vllm/model_executor/layers/fused_moe/all2all_utils.py b/vllm/model_executor/layers/fused_moe/all2all_utils.py index 534004e112f..62b2602928f 100644 --- a/vllm/model_executor/layers/fused_moe/all2all_utils.py +++ b/vllm/model_executor/layers/fused_moe/all2all_utils.py @@ -225,6 +225,14 @@ def maybe_make_prepare_finalize( elif moe.use_fi_nvl_one_sided_kernels: assert quant_config is not None + if quant_config.quant_dtype != "nvfp4": + raise ValueError( + "The 'flashinfer_nvlink_one_sided' all2all backend only " + "supports nvfp4 activation quantization, but got " + f"quant_dtype={quant_config.quant_dtype!r}. Use a different " + "all2all backend (e.g. 'flashinfer_nvlink_two_sided' or " + "'allgather_reducescatter') for non-nvfp4 models." + ) max_num_tokens = ( get_current_vllm_config().scheduler_config.max_num_batched_tokens )