SparseAttnSharedkvMetadata

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT ×
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品 ×
Atlas 200I/500 A2 推理系列产品 ×
Atlas 推理系列产品 ×
Atlas 训练系列产品 ×

功能说明

  • API功能:SparseAttnSharedkvMetadata算子旨在生成一个任务列表,包含每个AIcore的Attention计算任务的起止点的Batch、Head、以及 Q 和 K 的分块的索引,供后续SparseAttnSharedkv算子使用。

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
num_heads_q 属性 Q的多头数,目前仅支持64。 INT32 -
num_heads_kv 属性 K和V的多头数,目前仅支持1。 INT32 -
head_dim 属性 注意力头的维度。 INT32 -
cu_seqlens_q 可选输入 当layout_query为TND时,表示不同Batch中q的有效token数,维度为B+1,大小为参数中每个元素的值表示当前batch与之前所有batch的token数总和,即前缀和。 INT32 ND
cu_seqlens_ori_kv 可选输入 当layout_kv为TND时,表示不同Batch中ori_kv的有效token数,维度为B+1,大小为参数中每个元素的值表示当前batch与之前所有batch的token数总和,即前缀和。目前layout_kv仅支持PA_ND,故设置此参数无效。 INT32 ND
cu_seqlens_cmp_kv 可选输入 当layout_kv为TND时,表示不同Batch中cmp_kv的有效token数,维度为B+1,大小为参数中每个元素的值表示当前batch与之前所有batch的token数总和,即前缀和。目前layout_kv仅支持PA_ND,故设置此参数无效。 INT32 ND
seqused_q 可选输入 表示不同Batch中q实际参与运算的token数,维度为B。目前暂不支持指定该参数。 INT32 ND
seqused_kv 可选输入 表示不同Batch中ori_kv实际参与运算的token数,维度为B。 INT32 ND
batch_size 可选属性 输入样本批量大小,默认值为None。 INT32 -
max_seqlen_q 可选属性 表示所有batch中`q`的最大有效token数。 INT32 -
max_seqlen_kv 可选属性 表示所有batch中`ori_kv`的最大有效token数。 INT32 -
ori_topk 可选属性 表示通过QLI算法从`ori_kv`中筛选出的关键稀疏token的个数。目前暂不支持指定该参数,默认值为None。 INT32 -
cmp_topk 可选属性 表示通过QLI算法从`cmp_kv`中筛选出的关键稀疏token的个数,目前仅支持512,默认值为None。 INT32 -
cmp_ratio 可选属性 表示对`ori_kv`的压缩率,数据范围支持4/128,默认值为None。 INT32 -
ori_mask_mode 可选属性 表示q和ori_kv计算的mask模式,仅支持输入默认值4,代表band模式的mask。 INT32 -
cmp_mask_mode 可选属性 表示q和cmp_kv计算的mask模式,仅支持输入默认值3,代表rightDownCausal模式的mask。 INT32 -
ori_win_left 可选属性 表示q和ori_kv计算中q对过去token计算的数量,仅支持默认值127。 INT32 -
ori_win_right 可选属性 表示q和ori_kv计算中q对未来token计算的数量,仅支持默认值0。 INT32 -
layout_q 可选属性 用于标识输入q的数据排布格式,默认值为BSND,目前支持传入BSND和TND。 STRING
layout_kv 可选属性 用于标识输入ori_kv和cmp_kv的数据排布格式,目前仅支持传入默认值PA_ND。 STRING -
has_ori_kv 可选属性 是否传入ori_kv,默认值为true。 BOOL -
has_cmp_kv 可选属性 是否传入cmp_kv,默认值为true。 BOOL -
device 可选属性 用于获取设备信息,默认值为None。 STRING -
metadata 输出 每个cube核上FlashAttention计算任务的Batch、Head、以及 Q 和 K 的分块的索引,以及每个vector核上FlashDecode的规约任务索引。 INT32 -

约束说明

  • 该接口支持推理场景下使用。
  • 该接口支持aclgraph模式。

Atlas A3 推理系列产品 调用说明

  • 支持单算子模式调用和aclgraph模式调用,作为SparseAttnSharedkv算子的前序算子,调用示例见SparseAttnSharedkv调用示例