diff --git a/vllm/models/deepseek_v32/amd/rocm.py b/vllm/models/deepseek_v32/amd/rocm.py index b71fc9ddfc..e1abe93571 100644 --- a/vllm/models/deepseek_v32/amd/rocm.py +++ b/vllm/models/deepseek_v32/amd/rocm.py @@ -167,7 +167,7 @@ class DeepseekV32MLAAttention(DeepseekV32Attention): assert isinstance(slot_mapping, dict) mla_slot = slot_mapping.get(self.layer_name) - if self.indexer is not None: + if self.indexer is not None and not self.skip_topk: has_indexer = True indexer_k_norm_w = self.indexer.k_norm.weight indexer_k_norm_bias = self.indexer.k_norm.bias @@ -222,7 +222,7 @@ class DeepseekV32MLAAttention(DeepseekV32Attention): ql_nope, q_pe = self._compute_ql_nope(q_c) - if self.indexer is not None: + if self.indexer is not None and not self.skip_topk: index_q = self.indexer.wq_b(q_c)[0] index_q = index_q.view(-1, self.indexer.n_head, self.indexer.head_dim) else: @@ -244,7 +244,8 @@ class DeepseekV32MLAAttention(DeepseekV32Attention): quantize_mqa=self._fp8_kv, ) - self._run_indexer(q_c, index_q_fp8, index_weights_out) + if self.indexer is not None and not self.skip_topk: + self._run_indexer(q_c, index_q_fp8, index_weights_out) if attn_metadata is None: output.zero_() diff --git a/vllm/models/deepseek_v32/attention.py b/vllm/models/deepseek_v32/attention.py index 79d350b1bc..705db45f59 100644 --- a/vllm/models/deepseek_v32/attention.py +++ b/vllm/models/deepseek_v32/attention.py @@ -372,7 +372,7 @@ class DeepseekV32Attention(MLAAttention): assert isinstance(slot_mapping, dict) mla_slot = slot_mapping.get(self.layer_name) - if self.indexer is not None: + if self.indexer is not None and not self.skip_topk: has_indexer = True indexer_k_norm_w = self.indexer.k_norm.weight indexer_k_norm_bias = self.indexer.k_norm.bias @@ -430,7 +430,7 @@ class DeepseekV32Attention(MLAAttention): q_nope = q_nope.transpose(0, 1) ql_nope = torch.bmm(q_nope, self.W_UK_T).transpose(0, 1) - if self.indexer is not None: + if self.indexer is not None and not self.skip_topk: index_q = self.indexer.wq_b(q_c)[0] index_q = index_q.view(-1, self.indexer.n_head, self.indexer.head_dim) else: @@ -452,7 +452,7 @@ class DeepseekV32Attention(MLAAttention): quantize_mqa=self._fp8_query, ) - if self.indexer is not None: + if self.indexer is not None and not self.skip_topk: sparse_attn_indexer( q_c, self.indexer.k_cache.prefix,