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

aclnnAlltoAllvGroupedMatMul

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:完成路由专家AlltoAllv、Permute、GroupedMatMul融合并实现与共享专家MatMul并行融合,先通信后计算

  • 计算公式

    • 路由专家:
    ataOut=AlltoAllv(gmmX)permuteOut=Permute(ataOut)gmmY=permuteOut×gmmWeightataOut = AlltoAllv(gmmX) \\ permuteOut = Permute(ataOut) \\ gmmY = permuteOut \times gmmWeight
    • 共享专家:
    mmY=mmX×mmWeightmmY = mmX \times mmWeight

函数原型

每个算子分为,必须先调用“aclnnAlltoAllvGroupedMatMulGetWorkspaceSize”接口获取入参并根据计算流程计算所需workspace大小,再调用“aclnnAlltoAllvGroupedMatMul”接口执行计算。

[object Object]
[object Object]

aclnnAlltoAllvGroupedMatMulGetWorkspaceSize

  • 参数说明

    [object Object]
  • 返回值:

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

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

    [object Object]

aclnnAlltoAllvGroupedMatMul

  • 参数说明

    [object Object]
  • 返回值

    返回aclnnStatus状态码,具体参见

约束说明

  • 确定性计算:

    • aclnnAlltoAllvGroupedMatMul默认确定性实现。
  • 参数说明里shape使用的变量:

    • BSK:本卡发送的token数,是sendCounts参数累加之和,取值范围(0, 52428800)。
    • H1:表示路由专家hidden size隐藏层大小,取值范围(0, 65536)。
    • H2:表示共享专家hidden size隐藏层大小,取值范围(0, 12288]。
    • e:表示单卡上专家个数,e<=32,e * epWorldSize最大支持256。
    • N1:表示路由专家的head_num,取值范围(0, 65536)。
    • N2:表示共享专家的head_num,取值范围(0, 65536)。
    • BS:batch sequence size。
    • K:表示选取TopK个专家,K的范围[2, 8]。
    • A:本卡收到的token数,是recvCounts参数累加之和。
    • ep通信域内所有卡的 A 参数的累加和等于所有卡上的 BSK 参数的累加和。
  • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]: 单卡通信量取值需大于等于2MB。

调用示例

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

  • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
    [object Object]