aclnnAddRmsNormDynamicQuantV2
产品支持情况
功能说明
接口功能:RmsNorm算子是大模型常用的归一化操作,相比LayerNorm算子,其去掉了减去均值的部分。DynamicQuant算子则是为输入张量进行对称动态量化的算子。AddRmsNormDynamicQuant算子将RmsNorm前的Add算子和RmsNorm归一化输出给到的1个或2个DynamicQuant算子融合起来,减少搬入搬出操作。aclnnAddRmsNormDynamicQuantV2相较于aclnnAddRmsNormDynamicQuant在RmsNorm计算过程中增加了偏置项betaOptional参数,即计算公式中的beta,以及新增输出配置项outputMaskOptional参数,用于配置是否输出对应位置的量化结果 。
计算公式:
公式中的row_max代表每行求最大值。
函数原型
每个算子分为,必须先调用[object Object]接口获取入参并根据计算流程所需workspace大小,再调用`aclnnAddRmsNormDynamicQuantV2接口执行计算。
aclnnAddRmsNormDynamicQuantV2GetWorkspaceSize
aclnnAddRmsNormDynamicQuantV2
约束说明
数据格式说明:所有输入输出tensor的数据格式推荐使用ND格式,其他数据格式会由框架默认转换成ND格式进行处理。
当outputMaskOptional不为空时,参数smoothScale1Optional有值时,则outputMaskOptional[0]必须为True。参数smoothScale2Optional有值时,则outputMaskOptional[1]必须为True。
当outputMaskOptional不为空时,outputMaskOptional[0]与outputMaskOptional[1]不能同时为False。
当outputMaskOptional为空时,参数smoothScale2Optional有值时,参数smoothScale1Optional也必须有值。
各产品型号支持数据类型说明:
[object Object]undefined
确定性计算:
- aclnnAddRmsNormDynamicQuantV2默认确定性实现。