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

aclnnMoeFinalizeRoutingV2

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:MoE计算中,最后处理合并MoE FFN的输出结果。
  • 计算公式expertid=expertIdx[i,k]expertid=expertIdx[i,k] out(i,j)=x1i,j+x2i,j+k=0K(scalesi,k(expandedXexpandedRowIdxi+knum_rows,j+biasexpertid,j))out(i,j)=x1_{i,j}+x2_{i,j}+\sum_{k=0}^{K}(scales_{i,k}*(expandedX_{expandedRowIdx_{i+k*num\_rows},j}+bias_{expertid,j}))

函数原型

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

[object Object]
[object Object]

aclnnMoeFinalizeRoutingV2GetWorkspaceSize

  • 参数说明:

    [object Object]
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
      • expandedX要求是一个2D/3D的Tensor,支持的数据类型为FLOAT16、BFLOAT16、FLOAT32,支持drop less和drop pad场景。
      • scalesOptional:混合精度模式下,支持 expandedX 为 BFLOAT16 时 scalesOptional 为 FLOAT32;非混合精度模式下,数据类型要求与expandedX一致。
    • [object Object]Atlas 推理系列产品[object Object]:
      • expandedX要求是一个2D的Tensor,数据类型支持FLOAT16、FLOAT32,shape要求尾轴H为32对齐。
      • x1Optional、x2Optional、biasOptional、expertIdxOptional仅支持传入nullptr
      • 仅支持dropPadMode传入2。
      • scalesOptional数据类型支持FLOAT16、FLOAT32,且需要与expandedX一致。
  • 返回值:

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

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

    [object Object]

aclnnMoeFinalizeRoutingV2

  • 参数说明:

    [object Object]
  • 返回值

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

约束说明

  1. 确定性计算:

    • aclnnMoeFinalizeRoutingV2默认确定性实现。
  2. NUM_ROWS:表示行数;
    K:表示从总的专家E中选出K个专家;
    H:表示hidden size,即每个token序列长度,为列数;
    E:表示expert num,即专家数,E需要大于等于K;
    C:表示expert capacity,即专家处理token数量的能力阈值。

  3. expandedRowIdx:当dropPadMode参数值为0、2时,Tensor中的值取值范围是[0,NUM_ROWS * K-1];当dropPadMode参数值为1、3时,Tensor中的值取值范围是[-1, E*C - 1]。

  4. 在x1Optional参数未输入的情况下,x2Optional参数也不能输入。

  5. scalesOptional不存在时,K为1。

  6. biasOptional存在时,expertIdxOptional必须同时存在。

  7. dropPadMode的取值与含义对应如下:

    • 0:drop less 场景,expandedRowIdx按排列(与输出格式对应)。
    • 1:drop pad 场景,expandedRowIdx按排列(与输出格式对应)。
    • 2:drop less 场景,expandedRowIdx按排列(与输出格式对应)。
    • 3:drop pad 场景,expandedRowIdx按排列(与输出格式对应)。

调用示例

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

[object Object]