aclnnDequantRopeQuantKvcache
产品支持情况
功能说明
算子功能:对输入张量(x)进行dequant(可选)后,按
[object Object](为切分的长度)对尾轴进行切分,划分为q、k、vOut,对q、k进行旋转位置编码,生成qOut和kOut,之后对kOut和vOut进行量化并按照[object Object]更新到kCacheRef和vCacheRef上。计算公式:
如果cacheModeOptional为contiguous则:
如果cacheModeOptional为page则:
函数原型
每个算子分为,必须先调用“aclnnDequantRopeQuantKvcacheGetWorkspaceSize”接口获取入参并根据流程计算所需workspace大小,再调用“aclnnDequantRopeQuantKvcache”接口执行计算。
aclnnDequantRopeQuantKvcacheGetWorkspaceSize
aclnnDequantRopeQuantKvcache
约束说明
确定性计算:
- aclnnDequantRopeQuantKvcache默认确定性实现。
cacheModeOptional为contiguous时:kCacheRef的第0维大于x的第0维,indices数据值大于等于0且小于等于vCacheRef的第1维([b,s,n,d]格式中的s)减x的第1维。
cacheModeOptional为page时:indices 数据值大于等于0,小于kCacheRef的第0维*第1维且不重复。
输入x不为INT32时,x、cos、sin与输出qOut、kOut、vOut的数据类型保持一致,此时activationScaleOptional,weightScaleOptional、biasOptional不生效。
输入x为INT32时,cos、sin与输出qOut、kOut、vOut的数据类型保持一致,此时weightScaleOptional必选,activationScaleOptional、biasOptional可选(biasOptional不需要与其他输入类型一致)。
x的尾轴小于等于4096,且按64对齐。