diff --git a/vllm/models/deepseek_v4/amd/model.py b/vllm/models/deepseek_v4/amd/model.py index f933cffcda..d1a8ca1d9d 100644 --- a/vllm/models/deepseek_v4/amd/model.py +++ b/vllm/models/deepseek_v4/amd/model.py @@ -578,6 +578,9 @@ def _validate_aiter_mega_moe_config(vllm_config: VllmConfig) -> None: class DeepseekV4MoE(nn.Module): + # None: use the padding vLLM added. + experts_intermediate_pad: int | None = None + def __init__( self, vllm_config: VllmConfig, @@ -726,6 +729,7 @@ class DeepseekV4MoE(nn.Module): top_k=config.num_experts_per_tok, hidden_size=config.hidden_size, intermediate_size=config.moe_intermediate_size, + intermediate_pad=self.experts_intermediate_pad, renormalize=config.norm_topk_prob, quant_config=quant_config, prefix=f"{prefix}.experts", diff --git a/vllm/models/deepseek_v41/amd/model.py b/vllm/models/deepseek_v41/amd/model.py index 57366f2453..9b8a00388a 100644 --- a/vllm/models/deepseek_v41/amd/model.py +++ b/vllm/models/deepseek_v41/amd/model.py @@ -77,6 +77,10 @@ logger = init_logger(__name__) class DeepseekV4MoE(DeepseekV4MoEBase): + # TODO: revert once https://github.com/ROCm/aiter/pull/6598 is in the + # pinned AITER; with the padding set, its FlyDSL MoE can output NaN. + experts_intermediate_pad = 0 + def __init__( self, vllm_config: VllmConfig,