From c1644f8b3827fbace396a92478fbe0410dc97715 Mon Sep 17 00:00:00 2001 From: Bill Nell Date: Wed, 11 Feb 2026 12:54:16 -0500 Subject: [PATCH 1/3] [Bugfix] Move ensure_moe_quant_config_init calls inside moe_forward ops Signed-off-by: Bill Nell --- vllm/model_executor/layers/fused_moe/layer.py | 1 - .../layers/fused_moe/runner/default_moe_runner.py | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/vllm/model_executor/layers/fused_moe/layer.py b/vllm/model_executor/layers/fused_moe/layer.py index 914dc68469ee..085958c0289b 100644 --- a/vllm/model_executor/layers/fused_moe/layer.py +++ b/vllm/model_executor/layers/fused_moe/layer.py @@ -1457,7 +1457,6 @@ def forward_native( hidden_states: torch.Tensor, router_logits: torch.Tensor, ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: - self.ensure_moe_quant_config_init() return self.runner.forward( hidden_states, router_logits, diff --git a/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py b/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py index 12b795f30e22..5a99b97320d3 100644 --- a/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py +++ b/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py @@ -63,6 +63,7 @@ def _moe_forward( layer_name: str, ) -> torch.Tensor: layer = get_layer_from_name(layer_name) + layer.ensure_moe_quant_config_init() return layer.runner.forward_impl( layer, hidden_states, router_logits, shared_experts_input ) @@ -84,6 +85,7 @@ def _moe_forward_shared( layer_name: str, ) -> tuple[torch.Tensor, torch.Tensor]: layer = get_layer_from_name(layer_name) + layer.ensure_moe_quant_config_init() return layer.runner.forward_impl( layer, hidden_states, router_logits, shared_experts_input ) From 1ddd73e54822cae9d25e0548ce4677534b6b5e2c Mon Sep 17 00:00:00 2001 From: Bill Nell Date: Wed, 11 Feb 2026 14:19:02 -0500 Subject: [PATCH 2/3] fix gate handling Signed-off-by: Bill Nell --- vllm/model_executor/layers/fused_moe/layer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vllm/model_executor/layers/fused_moe/layer.py b/vllm/model_executor/layers/fused_moe/layer.py index 085958c0289b..5a8f51de6462 100644 --- a/vllm/model_executor/layers/fused_moe/layer.py +++ b/vllm/model_executor/layers/fused_moe/layer.py @@ -700,7 +700,7 @@ def layer_id(self): @property def gate(self) -> torch.nn.Module | None: - return self._gate + return self._gate if self.use_overlapped else None @property def tp_size(self): @@ -725,7 +725,7 @@ def use_ep(self): @property def is_internal_router(self) -> bool: # By default, router/gate is called before FusedMoE forward pass - return self._gate is not None + return self.gate is not None def _maybe_init_expert_routing_tables( self, From 26605df69676461e0acbe906b078bbd7df1ff018 Mon Sep 17 00:00:00 2001 From: Bill Nell Date: Wed, 11 Feb 2026 15:17:53 -0500 Subject: [PATCH 3/3] add comments Signed-off-by: Bill Nell --- .../layers/fused_moe/runner/default_moe_runner.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py b/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py index 5a99b97320d3..b265cbb41211 100644 --- a/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py +++ b/vllm/model_executor/layers/fused_moe/runner/default_moe_runner.py @@ -63,6 +63,7 @@ def _moe_forward( layer_name: str, ) -> torch.Tensor: layer = get_layer_from_name(layer_name) + # TODO(bnell): this can be removed after MK migration is complete. layer.ensure_moe_quant_config_init() return layer.runner.forward_impl( layer, hidden_states, router_logits, shared_experts_input @@ -85,6 +86,7 @@ def _moe_forward_shared( layer_name: str, ) -> tuple[torch.Tensor, torch.Tensor]: layer = get_layer_from_name(layer_name) + # TODO(bnell): this can be removed after MK migration is complete. layer.ensure_moe_quant_config_init() return layer.runner.forward_impl( layer, hidden_states, router_logits, shared_experts_input