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 8, 01:15 UTC
[UX] More descriptive reasons in is_supported_config for MoE (#34908)
Signed-off-by: mgoin <mgoin64@gmail.com>
Michael Goin committed
Feb 19, 2026 at 18:20 UTC
f72061a19ae7fbb7f193c31f0abea355fab41892
3 files changed
+29
-19
vllm/model_executor/layers/fused_moe/flashinfer_trtllm_moe.py
+13
-10
@@ -129,25 +129,28 @@ def is_supported_config_trtllm_fp8(
129
return f"kernel does not support {reason}"
130
131
if not _supports_current_device():
132
- return False, _make_reason("current device")
132
+ return False, _make_reason(f"current device {current_platform.device_name}")
133
elif not (moe_config.is_act_and_mul or _supports_no_act_and_mul()):
134
return False, _make_reason("no act_and_mul MLP layer")
135
elif not _supports_activation(moe_config.activation):
136
return False, _make_reason(f"{moe_config.activation} activation")
137
elif not _supports_quant_scheme(weight_key, activation_key):
138
- return False, _make_reason("quantization scheme")
138
+ return False, _make_reason(f"quantization scheme {weight_key}x{activation_key}")
139
elif not _supports_parallel_config(moe_config.moe_parallel_config):
140
- return False, _make_reason("parallel config")
140
+ return False, _make_reason(f"parallel config {moe_config.moe_parallel_config}")
141
elif not _supports_routing_method(
142
weight_key, activation_key, moe_config.routing_method
143
):
144
- return False, _make_reason("routing method")
144
+ return False, _make_reason(f"routing method {moe_config.routing_method}")
145
elif activation_format != mk.FusedMoEActivationFormat.Standard:
146
- return False, _make_reason("activation format")
146
+ return False, _make_reason(f"activation format {activation_format}")
147
elif not _supports_router_logits_dtype(
148
moe_config.router_logits_dtype, moe_config.routing_method
149
):
150
- return False, _make_reason("float32 router_logits with non-DeepSeekV3 routing")
150
+ return False, _make_reason(
151
+ "float32 router_logits with non-DeepSeekV3 routing "
152
+ f"{moe_config.router_logits_dtype}x{moe_config.routing_method}"
153
+ )
154
155
return True, None
156
@@ -165,17 +168,17 @@ def is_supported_config_trtllm_bf16(
168
return f"kernel does not support {reason}"
169
170
if not _supports_current_device():
168
- return False, _make_reason("current device")
171
+ return False, _make_reason(f"current device {current_platform.device_name}")
172
elif not (moe_config.is_act_and_mul or _supports_no_act_and_mul()):
173
return False, _make_reason("no act_and_mul MLP layer")
174
elif not _supports_activation(moe_config.activation):
175
return False, _make_reason(f"{moe_config.activation} activation")
176
elif not _supports_parallel_config(moe_config.moe_parallel_config):
174
- return False, _make_reason("parallel config")
177
+ return False, _make_reason(f"parallel config {moe_config.moe_parallel_config}")
178
elif not _supports_routing_method_bf16(moe_config.routing_method):
176
- return False, _make_reason("routing method")
179
+ return False, _make_reason(f"routing method {moe_config.routing_method}")
180
elif activation_format != mk.FusedMoEActivationFormat.Standard:
178
- return False, _make_reason("activation format")
181
+ return False, _make_reason(f"activation format {activation_format}")
182
183
return True, None
184
vllm/model_executor/layers/fused_moe/modular_kernel.py
+8
-3
@@ -29,6 +29,7 @@ from vllm.model_executor.layers.fused_moe.utils import (
29
from vllm.model_executor.layers.quantization.utils.quant_utils import (
30
QuantKey,
31
)
32
+from vllm.platforms import current_platform
33
from vllm.utils.math_utils import cdiv
34
from vllm.v1.worker.ubatching import (
35
dbo_enabled,
@@ -498,15 +499,19 @@ class FusedMoEPermuteExpertsUnpermute(ABC):
499
return f"kernel does not support {reason}"
500
501
if not cls._supports_current_device():
501
- return False, _make_reason("current device")
502
+ return False, _make_reason(f"current device {current_platform.device_name}")
503
elif not (moe_config.is_act_and_mul or cls._supports_no_act_and_mul()):
504
return False, _make_reason("no act_and_mul MLP layer")
505
elif not cls._supports_activation(moe_config.activation):
506
return False, _make_reason(f"{moe_config.activation} activation")
507
elif not cls._supports_quant_scheme(weight_key, activation_key):
507
- return False, _make_reason("quantization scheme")
508
+ return False, _make_reason(
509
+ f"quantization scheme {weight_key}x{activation_key}"
510
+ )
511
elif not cls._supports_parallel_config(moe_config.moe_parallel_config):
509
- return False, _make_reason("parallel config")
512
+ return False, _make_reason(
513
+ f"parallel config {moe_config.moe_parallel_config}"
514
+ )
515
elif activation_format != cls.activation_format():
516
return False, _make_reason(f"{activation_format.value} activation format")
517
return True, None
vllm/model_executor/layers/quantization/utils/flashinfer_fp4_moe.py
+8
-6
@@ -109,21 +109,23 @@ def is_supported_config_trtllm(
109
return f"kernel does not support {reason}"
110
111
if not _supports_current_device():
112
- return False, _make_reason("current device")
112
+ return False, _make_reason(f"current device {current_platform.device_name}")
113
elif not (moe_config.is_act_and_mul or _supports_no_act_and_mul()):
114
return False, _make_reason("no act_and_mul MLP layer")
115
elif not _supports_activation(moe_config.activation):
116
return False, _make_reason(f"{moe_config.activation} activation")
117
elif not _supports_quant_scheme(weight_key, activation_key):
118
- return False, _make_reason("quantization scheme")
118
+ return False, _make_reason(f"quantization scheme {weight_key}x{activation_key}")
119
elif not _supports_parallel_config(moe_config.moe_parallel_config):
120
- return False, _make_reason("parallel config")
120
+ return False, _make_reason(f"parallel config {moe_config.moe_parallel_config}")
121
elif not _supports_routing_method(moe_config.routing_method):
122
- return False, _make_reason("routing method")
122
+ return False, _make_reason(f"routing method {moe_config.routing_method}")
123
elif activation_format != mk.FusedMoEActivationFormat.Standard:
124
- return False, _make_reason("activation format")
124
+ return False, _make_reason(f"activation format {activation_format}")
125
elif moe_config.hidden_dim % 512 != 0:
126
- return False, _make_reason("hidden_dim must be divisible by 512")
126
+ return False, _make_reason(
127
+ f"hidden_dim must be divisible by 512, found {moe_config.hidden_dim}"
128
+ )
129
130
return True, None
131