From 04e4fadff3108cd042b6a0cbce8e4c72cfdcc378 Mon Sep 17 00:00:00 2001 From: Mohammad Miadh Angkad <176301910+mmangkad@users.noreply.github.com> Date: Wed, 8 Jul 2026 23:43:45 +0800 Subject: [PATCH] Use FP32 logits in MoEGate fallbacks (#30323) --- python/sglang/srt/models/deepseek_v2.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/sglang/srt/models/deepseek_v2.py b/python/sglang/srt/models/deepseek_v2.py index ed7022727..aa33a4273 100644 --- a/python/sglang/srt/models/deepseek_v2.py +++ b/python/sglang/srt/models/deepseek_v2.py @@ -490,7 +490,11 @@ class MoEGate(nn.Module): or mla_use_prefill_cp(forward_batch, self.mla_enable_prefill_cp) ) ): - logits = F.linear(hidden_states, self.weight, None) + if _is_cuda: + from sglang.jit_kernel.dsv4 import linear_bf16_fp32 + + return linear_bf16_fp32(hidden_states, self.weight) + return F.linear(hidden_states, self.weight, None) else: # NOTE(b8zhong): this threshold has been empirically verified max_router_gemm_tokens = 4 if _device_sm in (100, 103) else 16