接口功能:
[object Object]面向大语言模型推理中的PagedAttention KV Cache更新场景。接口从融合输入[object Object]中拆分Q、K、V分量,对Q/K执行RMSNorm、RoPE和共享[object Object]矩阵乘,随后将Q/K动态量化为FP8 E4M3FN;Q分支输出[object Object]和[object Object],K分支按[object Object]写入[object Object]和[object Object]。V分支按[object Object]缩放后量化为FP8 E4M3FN,并按[object Object]写入[object Object]。计算公式:
按
[object Object]从[object Object]拆分Q、K、V:Q/K分支分别使用
[object Object]和[object Object]做RMSNorm:第
[object Object]个batch中第[object Object]个token的RoPE位置由[object Object]和[object Object]确定:Q/K分支执行RoPE,
[object Object]为cos,[object Object]为sin;V分支不执行RoPE:Q/K共享
[object Object]矩阵:Q/K按每个token和head做动态量化,FP8 E4M3FN最大有限值使用
[object Object],该值为448:V分支按
[object Object]缩放后量化:Cache写回位置由
[object Object]决定:
每个算子分为,必须先调用“aclnnQkvRmsNormRopeCacheWithKScaleGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小,再调用“aclnnQkvRmsNormRopeCacheWithKScale”接口执行计算。
- 确定性说明:aclnnQkvRmsNormRopeCacheWithKScale默认确定性实现。
- 输入shape限制:
- 当前实现仅支持
[object Object]。 [object Object]控制[object Object]的N/T轴布局,默认值为[object Object];[object Object]控制[object Object]和[object Object]的N/T轴布局,默认值为[object Object]:[object Object],[object Object]:[object Object],[object Object],[object Object]。[object Object],[object Object]:[object Object],[object Object],[object Object]。[object Object],[object Object]:[object Object],[object Object],[object Object]。
[object Object]、[object Object]和[object Object]的[object Object]和[object Object]必须一致。[object Object]、[object Object]和[object Object]均为4维正stride,最后一维stride为1;[object Object]和[object Object]前三维stride必须一致。
- 当前实现仅支持
- 输入值域限制:
[object Object]必须满足[object Object]。若[object Object]小于该batch本次调用的token数,行为未定义。- 资源边界约束:
[object Object],[object Object],[object Object],[object Object]。
[object Object]Ascend 950PR/Ascend 950DT[object Object]:
[object Object]