From 394b0dd13ae5e6f00b8c94c4911b999c6e664147 Mon Sep 17 00:00:00 2001 From: Jinyan Yi Date: Wed, 22 Jul 2026 10:41:48 +0800 Subject: [PATCH] [NPU] Update non-vit vision part for cumulative seqlen (#31867) --- python/sglang/srt/layers/attention/vision.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/sglang/srt/layers/attention/vision.py b/python/sglang/srt/layers/attention/vision.py index f11ed2722..1b94d92a0 100644 --- a/python/sglang/srt/layers/attention/vision.py +++ b/python/sglang/srt/layers/attention/vision.py @@ -803,11 +803,11 @@ class VisionAscendAttention(nn.Module): [b * s, h, head_size] """ if forward_metadata is not None: - seq_lens = forward_metadata.seq_lens - if seq_lens.is_npu: - seq_lens = seq_lens.to("cpu") + # TND fused attention expects cumulative seqlens (cu_seqlens[1:]), + # not per-sequence lengths in forward_metadata.seq_lens. + cu = forward_metadata.cu_seqlens.to("cpu") output = torch.empty_like(q) - seq_len_arg = seq_lens.to(torch.int32) + seq_len_arg = cu[1:].to(torch.int32) elif envs.SGLANG_VIT_ENABLE_CUDA_GRAPH.get(): if "output_ws" not in kwargs: raise RuntimeError("output_ws should be prepared for npu-graph mode")