+
+ | query |
+ 输入 |
+ 公式中量化后的 Query。 |
+ 不支持空tensor。 |
+ INT8、FLOAT8_e4m3fn、HIFLOAT8、FLOAT4_e2m1 |
+ ND |
+
+
+ - layout_query为BSND时,shape为(B,S1,N1,D)。
+ - layout_query为TND时,shape为(T1,N1,D)。
+
+ |
+ x |
+
+
+ | key |
+ 输入 |
+ 公式中量化后的 Key。 |
+
+
+ - 不支持空tensor。
+ - block_num为PageAttention时block总数,block_size为一个block的token数。
+ - layout_key为PA_BSND时,shape为(block_num, block_size, N2, D)。
+ - layout_key为BSND时,shape为(B, K_S, N2, D),layout_key为TND时,shape为(K_T, N2, D)。
+
+ |
+ INT8、FLOAT8_e4m3fn、HIFLOAT8、FLOAT4_e2m1 |
+ ND |
+
+
+ - layout_key为PA_BSND时,shape为(block_num, block_size, N2, D)。
+
+ |
+ 支持0轴非连续 |
+
+
+ | weights |
+ 输入 |
+ 公式中的权重系数 W。 |
+ 不支持空tensor。 |
+ FLOAT16、FLOAT32 |
+ ND |
+
+
+ - layout_query为BSND时,shape为(B,S1,N1)。
+ - layout_query为TND时,shape为(T1,N1)。
+
+ |
+ x |
+
+
+ | queryDequantScale |
+ 输入 |
+ 公式中 Query 的反量化系数。 |
+ 不支持空tensor。 |
+ FLOAT16、FLOAT32、FLOAT8_e8m0 |
+ ND |
+
+
+ - quantMode为3/5时,layout_query为BSND时shape为(B,S1,N1,D/64,2),layout_query为TND时shape为(T1,N1,D/64,2)。
+ - quantMode为4时,shape为(1,)。
+ - 其他场景shape与weights保持一致。
+
+ |
+ x |
+
+
+ | keyDequantScale |
+ 输入 |
+ 公式中 Key 的反量化系数。 |
+ 不支持空tensor。 |
+ FLOAT16、FLOAT32、FLOAT8_e8m0 |
+ ND |
+
+
+ - quantMode为3/5时,layout_key为PA_BSND、BSND、TND对应的shape分别为(block_num,block_size,N2,D/64,2)、(B,K_S,N2,D/64,2)、(K_T,N2,D/64,2)。
+ - quantMode为4时,shape为(1,)。
+ - 其他场景下,layout_key为PA_BSND、BSND、TND对应的shape分别为(block_num,block_size,N2)、(B,K_S,N2)、(K_T,N2)。
+
+ |
+ 支持0轴非连续 |
+
+
+ | cuSeqLensQOptional |
+ 输入 |
+ 每个Batch中,Query的有效token数(TND场景使用cu_seqlens格式)。 |
+
+
+ - 当layout_query为TND时,该入参必须传入,且以该入参元素的数量作为B值,该入参中每个元素的值表示当前batch与之前所有batch的token数总和,即前缀和。
+
+ |
+ INT32 |
+ ND |
+ (B+1,) |
+ x |
+
+
+ | cuSeqLensKOptional |
+ 输入 |
+ 每个Batch中,Key的有效token数(TND场景使用cu_seqlens格式)。 |
+
+
+ - 当layout_key为TND时,该入参必须传入。
+
+ |
+ INT32 |
+ ND |
+ (B+1,) |
+ x |
+
+
+ | sequsedQOptional |
+ 输入 |
+ 每个Batch中,Query的有效token数(BSND场景使用seqused格式)。 |
+ 该入参中每个Batch的有效token数不超过query中的维度S大小且不小于0。 |
+ INT32 |
+ ND |
+ (B,) |
+ x |
+
+
+ | sequsedKOptional |
+ 输入 |
+ 每个Batch中,Key的有效token数(BSND场景使用seqused格式)。 |
+
+
+ - 该入参中每个Batch的有效token数不超过key中的维度S大小且不小于0。
+ - 当layout_key为PA_BSND时,该入参必须传入。
+
+ |
+ INT32 |
+ ND |
+ (B,) |
+ x |
+
+
+ | cmpResidualKOptional |
+ 输入 |
+ 压缩场景下Key的残余长度。 |
+ 需满足0 <= cmpResidualKOptional[i] < cmpRatioOptional。 |
+ INT32 |
+ ND |
+ (B,) |
+ x |
+
+
+ | blockTableOptional |
+ 输入 |
+ 表示PageAttention中KV存储使用的block映射表。 |
+
+
+ - 不支持空tensor。
+ - PageAttention场景下,block_table必须为二维,第一维长度需要等于B,第二维长度不能小于maxBlockNumPerSeq。
+
+ |
+ INT32 |
+ ND |
+ (B, S2_MAX/block_size) |
+ x |
+
+
+ | outputIdxOffsetOptional |
+ 输入 |
+ 输出索引的偏移量。 |
+ - |
+ INT32 |
+ ND |
+ layout_query为BSND时shape为(B,S1,N2),layout_query为TND时shape为(T1,N2)。 |
+ x |
+
+
+ | metadataOptional |
+ 输入 |
+ QuantLightningIndexerV2Metadata算子传入的分核信息。 |
+
+
+ - 包含使用核数、分块大小以及每个核处理数据的起始点等内容。
+ - shape大小为[1024],当前不支持传空。
+
+ |
+ INT32 |
+ ND |
+ (1024,) |
+ x |
+
+
+ | topk |
+ 输入 |
+ topK阶段需要保留的Key token索引数量。 |
+ 支持[1, 8192]。 |
+ INT64 |
+ - |
+ - |
+ - |
+
+
+ | quantMode |
+ 输入 |
+ 量化模式。 |
+
+
+ - 支持传入 1(FLOAT8_e4m3fn量化)、2(Per-Token-Head量化)、3(MXFP8量化)、4(HIFLOAT8量化)、5(MXFP4量化)。
+
+ |
+ INT64 |
+ - |
+ - |
+ - |
+
+
+ | maxSeqlenQOptional |
+ 输入 |
+ Query的最大序列长度。 |
+ - |
+ INT64 |
+ - |
+ - |
+ - |
+
+
+ | layoutQOptional |
+ 输入 |
+ 用于标识输入Query的数据排布格式。 |
+
+
+ |
+ STRING |
+ - |
+ - |
+ - |
+
+
+ | layoutKOptional |
+ 输入 |
+ 用于标识输入Key的数据排布格式。 |
+
+
+ |
+ STRING |
+ - |
+ - |
+ - |
+
+
+ | maskModeOptional |
+ 输入 |
+ 表示sparse的模式。 |
+
+
+ - 0代表defaultMask模式。
+ - 3代表rightDownCausal模式的mask,对应以右顶点为划分的下三角场景。
+
+ |
+ INT64 |
+ - |
+ - |
+ - |
+
+
+ | cmpRatioOptional |
+ 输入 |
+ key的压缩倍数。 |
+
+
+ |
+ INT64 |
+ - |
+ - |
+ - |
+
+
+ | returnValueOptional |
+ 输入 |
+ 表示是否输出sparseValuesOut。 |
+
+
+ |
+ INT64 |
+ - |
+ - |
+ - |
+
+
+ | sparseIndicesOut |
+ 输出 |
+ 公式中的Indices输出。 |
+ 不支持空tensor。 |
+ INT32 |
+ ND |
+
+
+ - layout_query为"BSND"时输出shape为[B, S1, N2, topk]。
+ - layout_query为"TND"时输出shape为[T1, N2, topk]。
+
+ |
+ x |
+
+
+ | sparseValuesOut |
+ 输出 |
+ 公式中的Indices输出对应的value值。 |
+
+
+ - returnValue为1时输出有效值,无效部分填bf16负无穷;returnValue为0时输出shape为(0,)的空tensor。
+
+ |
+ BFLOAT16 |
+ ND |
+ returnValue为1时shape与sparseIndicesOut保持一致;returnValue为0时shape为(0,)。 |
+ x |
+
+
+ | workspaceSize |
+ 输出 |
+ 返回需要在Device侧申请的workspace大小。 |
+ - |
+ - |
+ - |
+ - |
+ - |
+
+
+ | executor |
+ 输出 |
+ 返回op执行器,包含了算子计算流程。 |
+ - |
+ - |
+ - |
+ - |
+ - |
+
+
+