From 3f7e538b2ffabb6ed7cfa39d9c97095e50b23e40 Mon Sep 17 00:00:00 2001 From: Cheng Wan <54331508+ch-wan@users.noreply.github.com> Date: Fri, 15 May 2026 05:21:53 -0700 Subject: [PATCH] Add NPU condition for cosine and sine caching (#25399) --- python/sglang/srt/layers/rotary_embedding/rope_variant.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/python/sglang/srt/layers/rotary_embedding/rope_variant.py b/python/sglang/srt/layers/rotary_embedding/rope_variant.py index 2fe9d5da2..7b0cb87e3 100644 --- a/python/sglang/srt/layers/rotary_embedding/rope_variant.py +++ b/python/sglang/srt/layers/rotary_embedding/rope_variant.py @@ -413,9 +413,10 @@ class DeepseekScalingRotaryEmbedding(RotaryEmbedding): cos = freqs.cos() * self.mscale sin = freqs.sin() * self.mscale cache = torch.cat((cos, sin), dim=-1) - emb = torch.cat((freqs, freqs), dim=-1) - self.cos_cached_total = torch.cos(emb) * self.mscale - self.sin_cached_total = torch.sin(emb) * self.mscale + if _is_npu: + emb = torch.cat((freqs, freqs), dim=-1) + self.cos_cached_total = torch.cos(emb) * self.mscale + self.sin_cached_total = torch.sin(emb) * self.mscale return cache def get_cos_cached_total(self):