@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 9e9acce577
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 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