开发者
资源
[object Object]

[object Object][object Object]undefined
[object Object]
  • 接口功能:进行AlltoAllV通信,将数据写入对端GM。

  • 计算公式

    ataOut=AllToAllV(expandX)ataOut = AllToAllV(expandX)\\

    按MoeDistributeDispatchSetup和MoeDistributeDispatchTeardown算子收集数据的路径原路返还,本算子只做通信状态和通信数据的发送,数据发送后即刻退出,无需等待通信完成,通信状态确认和数据后处理由aclnnMoeDistributeCombineTeardown完成。

  • 注意:该接口必须与aclnnMoeDistributeDispatchSetup、aclnnMoeDistributeDispatchTeardown及aclnnMoeDistributeCombineTeardown配套使用。

[object Object]

该算子分为两段式接口,必须先调用 “[object Object]”接口获取入参并根据计算流程计算所需workspace大小获取计算所需workspace大小以及包含了算子计算流程的执行器,再调用“[object Object]”接口执行计算。

[object Object]
[object Object]
[object Object]
[object Object]
  • 参数说明

    [object Object]
    • Ascend 950PR/Ascend 950DT:

      • 不支持共享专家场景。
      • epWorldSize当前取值仅支持2、4、8。
      • expertShardType当前仅支持传0,表示共享专家卡排在MoE专家卡前面。
      • sharedExpertNum表示共享专家数量,当前不支持共享专家,仅能传入0。
      • commQuantMode当前仅支持传入0,表示不进行量化。
      • commType取值范围[0, 2],当前仅支持2,表示URMA通路。
      • commAlg 当前版本不支持,传空指针即可。
    • Atlas A3 训练系列产品/Atlas A3 推理系列产品:

      • 不支持共享专家场景。
      • epWorldSize当前取值仅支持2、4、8。
      • expertShardType当前仅支持传0,表示共享专家卡排在MoE专家卡前面。
      • sharedExpertNum表示共享专家数量,当前不支持共享专家,仅能传入0。
      • commQuantMode当前仅支持传入0,表示不进行量化。
      • commType取值范围[0, 2],当前仅支持2,表示URMA通路。
      • commAlg 当前版本不支持,传空指针即可。
  • 返回值

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

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

    [object Object]
[object Object]
  • 参数说明:

    [object Object]
  • 返回值:

    返回aclnnStatus状态码,具体参见

[object Object]
  • 功能说明

    计算aclnnMoeDistributeCombineSetup部分输出的size大小。

  • 参数说明

    [object Object]
  • 返回值

    返回aclnnStatus状态码,具体参见

[object Object]
  • 确定性计算:
    • aclnnMoeDistributeCombineSetup默认确定性实现。
  • aclnnMoeDistributeDispatchSetup接口,aclnnMoeDistributeDispatchTeardown接口,aclnnMoeDistributeCombineSetup接口,aclnnMoeDistributeCombineTeardown接口必须配套使用。
  • 调用接口过程中使用的[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]参数取值所有卡需保持一致,[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]参数取值在网络中不同层中也需保持一致,且和aclnnMoeDistributeDispatchSetup接口、aclnnMoeDistributeDispatchTeardown接口、aclnnMoeDistributeCombineTeardown接口对应参数也保持一致。
  • 参数说明里shape格式说明:
    • A:表示本卡需要分发的最大token数量,取值范围如下:
      • 对于共享专家,当globalBs为0时,要满足A = BS * epWorldSize * sharedExpertNum / sharedExpertRankNum;当globalBs非0时,要满足A = globalBs* sharedExpertNum / sharedExpertRankNum。
      • 对于MoE专家,当globalBs为0时,要满足A >= BS * epWorldSize * min(localExpertNum, K);当globalBs非0时,要满足A >= globalBs * min(localExpertNum, K)。
    • H:表示hidden size隐藏层大小。取值为[1024, 8192]。当前仅支持4096。
    • BS:表示batch sequence size,即本卡最终输出的token数量。取值范围为0 < BS ≤ 512。当前仅支持16。
    • K:表示选取topK个专家,取值范围为0 < K ≤ 16同时满足0 < K ≤ moeExpertNum。当前仅支持6。
    • localExpertNum:表示本卡专家数量。
      • 对于共享专家卡,localExpertNum = 1
      • 对于MoE专家卡,localExpertNum = moeExpertNum / (epWorldSize - sharedExpertRankNum)。当前仅支持每卡16个专家。
    • 当前不支持共享专家。
  • HCCL_BUFFSIZE: 调用本接口前需检查HCCL_BUFFSIZE环境变量取值是否合理,该环境变量表示单个通信域占用内存大小,单位MB,不配置时默认为200MB。
    • Ascend 950PR/Ascend 950DT:
      • 要求 >= 2且满足>= 2 * (localExpertNum * maxBs * epWorldSize * Align512(Align32(2 * H) + 44) + (K + sharedExpertNum) * maxBs * Align512(2 * H)),localExpertNum需使用MoE专家卡的本卡专家数,其中Align512(x) = ((x + 512 - 1) / 512) * 512,Align32(x) = ((x + 32 - 1) / 32) * 32。
    • Atlas A3 训练系列产品/Atlas A3 推理系列产品:
      • 要求 >= 2且满足>= 2 * (localExpertNum * maxBs * epWorldSize * Align512(Align32(2 * H) + 44) + (K + sharedExpertNum) * maxBs * Align512(2 * H)),localExpertNum需使用MoE专家卡的本卡专家数,其中Align512(x) = ((x + 512 - 1) / 512) * 512,Align32(x) = ((x + 32 - 1) / 32) * 32。
  • 通信域使用约束:
    • 一个模型中的aclnnMoeDistributeDispatchSetup、aclnnMoeDistributeDispatchTeardown、aclnnMoeDistributeCombineSetup、aclnnMoeDistributeCombineTeardown仅支持相同EP通信域,且该通信域中不允许有其他算子。