aclnnRopeWithSinCosCache
产品支持情况
功能说明
接口功能:推理网络为了提升性能,将sin和cos输入通过cache传入,执行旋转位置编码计算。
计算公式:
1、mrope模式:positions的shape输入是[3, numTokens]:
(1)rotate_half(GPT-NeoX style)计算模式:
(2)rotate_interleaved(GPT-J style)计算模式:
2、rope模式:positions的shape输入是[numTokens]:
(1)rotate_half(GPT-NeoX style)计算模式:
(2)rotate_interleaved(GPT-J style)计算模式:
函数原型
每个算子分为,必须先调用“aclnnRopeWithSinCosCacheGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnRopeWithSinCosCache”接口执行计算。
aclnnRopeWithSinCosCacheGetWorkspaceSize
aclnnRopeWithSinCosCache
约束说明
确定性计算:
- aclnnNormRopeConcatBackward默认确定性实现。
queryIn、keyIn、cosSinCache只支持2维shape输入。
queryIn、keyIn、cosSinCache输入的数据类型需要保持一致。
headSize:数据类型为BFLOAT16或FLOAT16时为32的倍数,数据类型为FLOAT32时为16的倍数。
rotaryDim:始终小于等于headSize;数据类型为BFLOAT16或FLOAT16时为32的倍数,数据类型为FLOAT32时为16的倍数;mrope模式下应满足rotaryDim = mropeSection[0] + mropeSection[1] + mropeSection[2]。
输入tensor positions的取值应小于cosSinCache的0维maxSeqLen。
mrope模式下,mropeSection:取值限制为[16, 24, 24],rotaryDim的取值为128。