aclnnMoeFusedTopk
产品支持情况
功能说明
接口功能:MoE计算中,对输入x做Sigmoid计算,对计算结果分组进行排序,最后根据分组排序的结果选取前k个专家。
计算公式:
对输入做sigmoid:
加上addNum:
对计算结果按照groupNum进行分组,每组按照topN的sum值对group进行排序,取前groupTopk个组:
根据上一步的groupId获取normOut中对应的元素,将数据再做TopK,得到indices的结果:
根据indices从sigmoidRes中选出y:
如果isNorm为true,对y按照输入的scale参数进行计算,得到y的结果:
如果enableExpertMapping为true,再将indices中的物理专家按照输入的mappingNum和mappingTable映射到逻辑专家,得到输出的indices。
函数原型
每个算子分为,必须先调用“aclnnMoeFusedTopkGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMoeFusedTopk”接口执行计算。
[object Object]
[object Object]
aclnnMoeFusedTopkGetWorkspaceSize
aclnnMoeFusedTopk
约束说明
确定性计算:
- aclnnMoeFusedTopk默认确定性实现。
expertNum必须为groupNum的整数倍。
groupTopk小于等于groupNum。
maxMappingNum小于等于128。
TopK小于等于expertNum。
TopN小于等于expertNum / groupNum。
expertNum小于等于1024。
groupNum小于等于256。
调用示例
[object Object]