昇腾社区首页
中文
注册
开发者
下载

aclnnMoeTokenUnpermuteWithEp

产品支持情况

[object Object]undefined

功能说明

  • 接口功能: 根据sortedIndices存储的下标位置,去获取permutedTokens中的输入数据与probs相乘,并进行合并累加。

  • 计算公式:

sortedIndices=sortedIndices[rangeOptional[0]<=i<rangeOptional[1]]sortedIndices = sortedIndices[rangeOptional[0]<=i<rangeOptional[1]]

(1)probs非None计算公式如下,其中i0,1,2,...,num_tokens1i \in {0, 1, 2, ..., num\_tokens - 1}j0,1,2,...,topK_num1j \in {0, 1, 2, ..., topK\_num - 1}k0,1,2,...,num_tokenstopK_numk \in {0, 1, 2, ..., num\_tokens * topK\_num}

permutedTokens=permutedTokens.indexSelect(0,sortedIndices)permutedTokens = permutedTokens.indexSelect(0, sortedIndices) permutedTokensk=permutedTokenskprobsi,jpermutedTokens_{k} = permutedTokens_{k} * probs_{i,j} outi=k=itopK_num(i+1)topK_num1permutedTokenskout_{i} = \sum_{k=i*topK\_num}^{(i+1)*topK\_num - 1 } permutedTokens_{k}

(2)probs为None计算公式如下,其中i0,1,2,...,num_tokens1i \in {0, 1, 2, ..., num\_tokens - 1}j0,1,2,...,topK_num1j \in {0, 1, 2, ..., topK\_num - 1}

permutedTokens=permutedTokens.indexSelect(0,sortedIndices)permutedTokens = permutedTokens.indexSelect(0, sortedIndices) outi=k=itopK_num(i+1)topK_num1permutedTokenskout_{i} = \sum_{k=i*topK\_num}^{(i+1)*topK\_num - 1 } permutedTokens_{k}

函数原型

每个算子分为,必须先调用“aclnnMoeTokenUnpermuteWithEpGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“aclnnMoeTokenUnpermuteWithEp”接口执行计算。

[object Object]
[object Object]

aclnnMoeTokenUnpermuteWithEpGetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    第一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnMoeTokenUnpermuteWithEp

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 确定性计算:

    • aclnnMoeTokenUnpermuteWithEp默认确定性实现。
  • topK_num <= 512。

  • 不支持paddedMode为[object Object]

  • 当rangeOptional为空时,忽略numTopk,执行逻辑回退到

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]