Files
enginex-ascend-910-vllm/csrc/attention/sparse_attn_sharedkv_metadata/README.md
Sun Ruoxi 7f8a1b1f7a init v0.23.0
Signed-off-by: Sun Ruoxi <sunruoxi@4paradigm.com>
2026-08-27 15:11:51 +08:00

209 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SparseAttnSharedkvMetadata
## 产品支持情况
| 产品 | 是否支持 |
| ------------------------------------------------------------ | :------: |
|<term>Atlas A2 推理系列产品</term> | √ |
|<term>Atlas A3 推理系列产品</term> | √ |
## 功能说明
- API功能`SparseAttnSharedkvMetadata`算子旨在生成一个任务列表包含每个AIcore的Attention计算任务的起止点的Batch、Head、以及 Q 和 K 的分块的索引,供后续`SparseAttnSharedkv`算子使用。
## 参数说明
<table style="undefined;table-layout: fixed; width: 1576px">
<colgroup>
<col style="width: 170px">
<col style="width: 170px">
<col style="width: 310px">
<col style="width: 212px">
<col style="width: 100px">
</colgroup>
<thead>
<tr>
<th>参数名</th>
<th>输入/输出/属性</th>
<th>描述</th>
<th>数据类型</th>
<th>数据格式</th>
</tr>
</thead>
<tbody>
<tr>
<td>num_heads_q</td>
<td>属性</td>
<td>Q的多头数目前仅支持64。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>num_heads_kv</td>
<td>属性</td>
<td>K和V的多头数目前仅支持1。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>head_dim</td>
<td>属性</td>
<td>注意力头的维度目前仅支持512。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>cu_seqlens_q</td>
<td>可选输入</td>
<td>当layout_query为TND时表示不同Batch中q的有效token数维度为B+1大小为参数中每个元素的值表示当前batch与之前所有batch的token数总和即前缀和。</td>
<td>INT32</td>
<td>ND</td>
</tr>
<tr>
<td>cu_seqlens_ori_kv</td>
<td>可选输入</td>
<td>当layout_kv为TND时表示不同Batch中ori_kv的有效token数维度为B+1大小为参数中每个元素的值表示当前batch与之前所有batch的token数总和即前缀和。目前layout_kv仅支持PA_ND故设置此参数无效。</td>
<td>INT32</td>
<td>ND</td>
</tr>
<tr>
<td>cu_seqlens_cmp_kv</td>
<td>可选输入</td>
<td>当layout_kv为TND时表示不同Batch中cmp_kv的有效token数维度为B+1大小为参数中每个元素的值表示当前batch与之前所有batch的token数总和即前缀和。目前layout_kv仅支持PA_ND故设置此参数无效。</td>
<td>INT32</td>
<td>ND</td>
</tr>
<tr>
<td>seqused_q</td>
<td>可选输入</td>
<td>表示不同Batch中q实际参与运算的token数维度为B。目前暂不支持指定该参数。</td>
<td>INT32</td>
<td>ND</td>
</tr>
<tr>
<td>seqused_kv</td>
<td>可选输入</td>
<td>表示不同Batch中ori_kv实际参与运算的token数维度为B。</td>
<td>INT32</td>
<td>ND</td>
</tr>
<tr>
<td>batch_size</td>
<td>可选属性</td>
<td>输入样本批量大小。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>max_seqlen_q</td>
<td>可选属性</td>
<td>表示所有batch中`q`的最大有效token数。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>max_seqlen_kv</td>
<td>可选属性</td>
<td>表示所有batch中`ori_kv`的最大有效token数。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>ori_topk</td>
<td>可选属性</td>
<td>表示通过QLI算法从`ori_kv`中筛选出的关键稀疏token的个数。目前暂不支持指定该参数。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>cmp_topk</td>
<td>可选属性</td>
<td>表示通过QLI算法从`cmp_kv`中筛选出的关键稀疏token的个数目前仅支持512。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>cmp_ratio</td>
<td>可选属性</td>
<td>表示对`ori_kv`的压缩率数据范围支持4/128</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>ori_mask_mode</td>
<td>可选属性</td>
<td>表示q和ori_kv计算的mask模式仅支持输入默认值4代表band模式的mask。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>cmp_mask_mode</td>
<td>可选属性</td>
<td>表示q和cmp_kv计算的mask模式仅支持输入默认值3代表rightDownCausal模式的mask。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>ori_win_left</td>
<td>可选属性</td>
<td>表示q和ori_kv计算中q对过去token计算的数量仅支持默认值127。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>ori_win_right</td>
<td>可选属性</td>
<td>表示q和ori_kv计算中q对未来token计算的数量仅支持默认值0。</td>
<td>INT32</td>
<td>-</td>
</tr>
<tr>
<td>layout_q</td>
<td>可选属性</td>
<td>用于标识输入q的数据排布格式,默认值为BSND目前支持传入BSND和TND。</td>
<td>STRING</td>
</tr>
<tr>
<td>layout_kv</td>
<td>可选属性</td>
<td>用于标识输入ori_kv和cmp_kv的数据排布格式目前仅支持传入默认值PA_ND。</td>
<td>STRING</td>
<td>-</td>
</tr>
<tr>
<td>has_ori_kv</td>
<td>可选属性</td>
<td>是否传入ori_kv。</td>
<td>BOOL</td>
<td>-</td>
</tr>
<tr>
<td>has_cmp_kv</td>
<td>可选属性</td>
<td>是否传入cmp_kv。</td>
<td>BOOL</td>
<td>-</td>
</tr>
<tr>
<td>device</td>
<td>可选属性</td>
<td>用于获取设备信息。</td>
<td>STRING</td>
<td>-</td>
</tr>
<tr>
<td>metadata</td>
<td>输出</td>
<td>每个cube核上FlashAttention计算任务的Batch、Head、以及 Q 和 K 的分块的索引以及每个vector核上FlashDecode的规约任务索引。</td>
<td>INT32</td>
<td>-</td>
</tr>
</tbody>
</table>
## 约束说明
- 该接口支持推理场景下使用。
- 该接口支持aclgraph模式。
- Tensor不能全传None。