From 5e3103a7872c645012ce316bc87da41a7cbaae52 Mon Sep 17 00:00:00 2001 From: Michael <13900043+michaelzhang-ai@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:59:40 -0800 Subject: [PATCH] [AMD] Fix RotaryEmbedding crash on AMD/ROCm (regression from #17934) (#18903) Co-authored-by: michaelzhang-ai --- python/sglang/srt/layers/rotary_embedding.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/python/sglang/srt/layers/rotary_embedding.py b/python/sglang/srt/layers/rotary_embedding.py index 4a881200f..5baa93154 100644 --- a/python/sglang/srt/layers/rotary_embedding.py +++ b/python/sglang/srt/layers/rotary_embedding.py @@ -389,6 +389,19 @@ class RotaryEmbedding(MultiPlatformOp): ) return query, key + def forward_hip(self, *args, **kwargs): + """HIP/ROCm implementation. + + The JIT kernels (sglang.jit_kernel.pos_enc) used in forward_cuda's + fallback path depend on tvm_ffi which invokes nvidia-smi to detect + CUDA compute capability. This fails on AMD GPUs, so we use the + pure-PyTorch native implementation instead. + + Uses *args/**kwargs because subclasses (MRotaryEmbedding, etc.) + have different forward_native() signatures. + """ + return self.forward_native(*args, **kwargs) + def extra_repr(self) -> str: s = f"head_size={self.head_size}, rotary_dim={self.rotary_dim}" s += f", max_position_embeddings={self.max_position_embeddings}"