接口功能:对经过aclnnMoeTokenPermuteWithRoutingMap处理的permutedTokens,累加回原unpermutedTokens。根据sortedIndices存储的下标,获取permutedTokens中存储的输入数据;如果存在probs数据,permutedTokens会与probs相乘,最后进行累加求和,并输出计算结果。
计算公式:
(1)probs不为None,paddedMode为true时:
(2)probs不为None,paddedMode为false时(T为转置操作):
(3)probs为None,paddedMode为true时:
(4)probs为None,paddedMode为false时:
每个算子分为,必须先调用“aclnnMoeTokenUnpermuteWithRoutingMapGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMoeTokenUnpermuteWithRoutingMap”接口执行计算。
[object Object]
[object Object]
确定性计算:
- aclnnMoeTokenUnpermuteWithRoutingMap默认确定性实现。
topK_num <= 512, paddedMode为false时routingMap中每行为1或true的个数固定且小于
[object Object]。以下场景后续版本会拦截,如果提示warning,建议整改:
- paddedMode为true,且topK_num > experts_num。
- paddedMode为true,且capacity > tokens_num。
- routingMap的数据类型或shape不符合要求。
- 输入tensor的数据格式不为ND。
[object Object]