| query |
输入 |
公式中的输入Q。 |
不支持空tensor。 |
FLOAT16、BFLOAT16 |
ND |
- layout_query为BSND时,shape为(B,S1,N1,D)。
- layout_query为TND时,shape为(T1,N1,D)。
|
x |
| key |
输入 |
公式中的输入K。 |
- 不支持空tensor。
- block_num为PageAttention时block总数,block_size为一个block的token数。
|
FLOAT16、BFLOAT16 |
ND |
- layout_key为PA_BSND时,shape为(block_num, block_size, N2, D)。
- layout_kv为BSND时,shape为(B, S2, N2, D)。
- layout_kv为TND时,shape为(T2, N2, D)。
|
x |
| weights |
输入 |
公式中的输入W。 |
不支持空tensor。 |
FLOAT16、BFLOAT16、FLOAT |
ND |
- layout_query为BSND时,shape为(B,S1,N1)。
- layout_query为TND时,shape为(T1,N1)。
|
x |
| actualSeqLengthsQueryOptional |
输入 |
每个Batch中,Query的有效token数。 |
- 不支持空tensor。
- 如果不指定seqlen可传入None,表示和`query`的shape的S长度相同。
- 该入参中每个Batch的有效token数不超过`query`中的维度S大小且不小于0,支持长度为B的一维tensor。
- 当`layout_query`为TND时,该入参必须传入,且以该入参元素的数量作为B值,该入参中每个元素的值表示当前batch与之前所有batch的token数总和,即前缀和,因此后一个元素的值必须大于等于前一个元素的值。
|
INT32 |
ND |
(B,) |
x |
| actualSeqLengthsKeyOptional |
输入 |
每个Batch中,Key的有效token数。 |
- 不支持空tensor。
- 如果不指定seqlen可传入None,表示和key的shape的S长度相同。
- 该参数中每个Batch的有效token数不超过`key/value`中的维度S大小且不小于0,支持长度为B的一维tensor。
- 当`layout_key`为TND或PA_BSND时,该入参必须传入,`layout_key`为TND,该参数中每个元素的值表示当前batch与之前所有batch的token数总和,即前缀和,因此后一个元素的值必须大于等于前一个元素的值。
|
INT32 |
ND |
(B,) |
x |
| blockTableOptional |
输入 |
表示PageAttention中KV存储使用的block映射表。 |
- 不支持空tensor。
- PageAttention场景下,block\_table必须为二维,第一维长度需要等于B,第二维长度不能小于maxBlockNumPerSeq(maxBlockNumPerSeq为每个batch中最大actual\_seq\_lengths\_key对应的block数量)
|
INT32 |
ND |
shape支持(B,S2/block_size) |
x |
| layoutQueryOptional |
输入 |
用于标识输入Query的数据排布格式。 |
- 用户不特意指定时可传入默认值"BSND"。
- 当前支持BSND、TND。
|
STRING |
- |
- |
- |
| layoutKeyOptional |
输入 |
用于标识输入Key的数据排布格式。 |
- 用户不特意指定时可传入默认值"BSND"。
- 当前支持PA_BSND、BSND、TND。
|
STRING |
- |
- |
- |
| sparseCount |
输入 |
topK阶段需要保留的block数量。 |
支持[1, 2048],以及3072、4096、5120、6144、7168、8192 |
INT32 |
- |
- |
- |
| sparseMode |
输入 |
表示sparse的模式。 |
- sparse_mode为0时,代表defaultMask模式。
- sparse_mode为3时,代表rightDownCausal模式的mask,对应以右顶点为划分的下三角场景。
|
INT32 |
- |
- |
- |
| preTokens |
输入 |
用于稀疏计算,表示attention需要和前几个Token计算关联。 |
仅支持默认值2^63-1。 |
INT64 |
- |
- |
- |
| nextTokens |
输入 |
用于稀疏计算,表示attention需要和后几个Token计算关联。 |
仅支持默认值2^63-1。 |
INT64 |
- |
- |
- |
| returnValues |
输入 |
表示是否输出sparseValuesOut。 |
- True表示输出,但图模式下不支持,False表示不输出;默认值为False
- 仅在训练且layout_key不为PA_BSND场景支持
|
BOOL |
- |
- |
- |
| sparseIndicesOut |
输出 |
公式中的Indices输出。 |
不支持空tensor。 |
INT32 |
- |
- layout_query为"BSND"时输出shape为[B, S1, N2, sparseCount]。
- layout_query为"TND"时输出shape为[T1, N2, sparseCount]。
|
x |
| sparseValuesOut |
输出 |
公式中的Indices输出对应的value值。 |
不支持空tensor。 |
FLOAT16、BFLOAT16 |
ND |
shape与sparseIndicesOut保持一致 |
x |
| workspaceSize |
输出 |
返回需要在Device侧申请的workspace大小。 |
- |
- |
- |
- |
- |
| executor |
输出 |
返回op执行器,包含了算子计算流程。 |
- |
- |
- |
- |
- |