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, 17:45 UTC
[Bugfix] Fix no attribute error of SharedFusedMoE (DeepSeek-V3.1 as test model) (#33993)
Signed-off-by: xuebwang-amd <xuebwang@amd.com>
xuebwang-amd committed
Feb 7, 2026 at 03:11 UTC
9e9acce577cc8d6daf6db7aacc24a939c08391ca
2 files changed
+6
-1
vllm/model_executor/layers/fused_moe/layer.py
+2
-1
@@ -335,6 +335,7 @@ class FusedMoE(CustomOp):
335
expert_mapping: list[tuple[str, str, int, str]] | None = None,
336
n_shared_experts: int | None = None,
337
router_logits_dtype: torch.dtype | None = None,
338
+ has_shared_experts: bool = False,
339
):
340
super().__init__()
341
@@ -564,7 +565,7 @@ class FusedMoE(CustomOp):
565
device=vllm_config.device_config.device,
566
routing_method=self.routing_method_type,
567
# TODO: in_dtype == out_dtype?
567
- disable_inplace=disable_inplace() or self.shared_experts is not None,
568
+ disable_inplace=disable_inplace() or has_shared_experts,
569
)
570
if self.use_mori_kernels:
571
assert self.rocm_aiter_fmoe_enabled, (
vllm/model_executor/layers/fused_moe/shared_fused_moe.py
+4
@@ -26,6 +26,10 @@ class SharedFusedMoE(FusedMoE):
26
routed_input_transform: torch.nn.Module | None = None,
27
**kwargs,
28
):
29
+ # Pass has_shared_experts so FusedMoE.__init__ can set disable_inplace
30
+ # without accessing self.shared_experts (submodules cannot be set before
31
+ # Module.__init__()).
32
+ kwargs["has_shared_experts"] = shared_experts is not None
33
super().__init__(**kwargs)
34
self._shared_experts = shared_experts
35
self._routed_input_transform = routed_input_transform