aclnnSwiGluQuantV2
产品支持情况
功能说明
接口功能:在SwiGlu激活函数后添加quant操作,实现输入x的SwiGluQuant计算,支持int8或int4量化输出。
接口功能差异点说明:相比于aclnnSwiGluQuant接口,aclnnSwiGluQuantV2新增支持groupIndexOptional传入cumsum模式和count模式,通过groupListType控制不同的模式;新增支持非MoE(groupIndexOptional传空)的场景;新增支持int8或int4量化输出yOut,通过dstType控制不同的量化输出数据类型。
算子支持范围:当前SwiGluQuant支持MoE场景(传入groupIndexOptional)和非MoE场景(groupIndexOptional传空),SwiGluQuant的输入x和group_index来自于GroupedMatMul算子和MoeInitRouting的输出,通过group_index入参实现MoE分组动态量化、静态per_tensor量化、静态per_channel量化功能。
MoE场景动态量化计算公式:
其中,A表示输入x的前半部分,B表示输入x的后半部分,g表示group_index,G为group_index的分组数量。int8量化时,(127是int8的最大值);int4量化时,(7是int4的最大值)。
MoE场景静态量化计算公式:
其中,A表示输入x的前半部分,B表示输入x的后半部分,g表示group_index,G为group_index的分组数量。
非MoE场景(groupIndexOptional传空)动态量化计算公式:
其中,A表示输入x的前半部分,B表示输入x的后半部分。int8量化时,(127是int8的最大值);int4量化时,(7是int4的最大值)。
非MoE场景(groupIndexOptional传空)静态量化计算公式:
其中,A表示输入x的前半部分,B表示输入x的后半部分。
函数原型
每个算子分为,必须先调用“aclnnSwiGluQuantV2GetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnSwiGluQuantV2”接口执行计算。
aclnnSwiGluQuantV2GetWorkspaceSize
aclnnSwiGluQuantV2
约束说明
- 确定性计算:
- aclnnSwiGluQuantV2默认确定性实现。