开发者
资源
[object Object][object Object][object Object]undefined
[object Object]
  • 接口功能:完成AlltoAll通信、Permute(保证通信后地址连续)和Matmul计算的融合,先通信后计算
  • 计算公式:假设x1输入shape为(BS, H),rankSize为NPU卡数commOut=AlltoAll(x1.view(rankSize,BS/rankSize,H))permutedOut=commOut.permute(1,0,2).view(BS/rankSize,rankSizeH)output=permutedOut@x2+biascommOut = AlltoAll(x1.view(rankSize, BS/rankSize, H)) \\ permutedOut = commOut.permute(1, 0, 2).view(BS/rankSize, rankSize*H) \\ output = permutedOut @ x2 + bias \\
[object Object]

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

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

    [object Object]
  • 返回值

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

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

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

    [object Object]
  • 返回值:

    返回aclnnStatus状态码,具体参见

[object Object]
  • 默认支持确定性计算。
  • NPU卡数(rankSize),根据设备型号有不同限制:
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:支持2、4、8卡。
    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:支持2、4、8、16卡。
    • Atlas 350 加速卡:支持2、4、8、16卡。
  • 参数说明中shape使用的变量BS必须整除NPU卡数。
  • BS和N的值不得超过2147483647(INT32_MAX),BS的值不得小于0,N的值不得小于1。
  • H*rankSize范围,根据设备型号有不同限制:
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:支持[1, 35000]。
    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、Atlas 350 加速卡:支持[2, 65535]。
  • 空tensor的支持度根据不同设备型号有不同的限制:
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:不支持任何空tensor。
    • [object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]、Atlas 350 加速卡:仅支持输入x1的第一维度(BS)为0的空tensor,其它空tensor均不支持。
  • 非连续tensor的支持度根据不同设备型号有不同的限制:
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:不支持任何非连续tensor。
    • Atlas 350 加速卡:仅支持x2为非连续tensor,其它非连续tensor均不支持。
  • x1、x2计算输入的数据类型要和output、alltoAllOutOptional计算输出的数据类型一致,传入的x1、x2与output均不为空指针。
  • biasOptional的数据类型根据不同设备型号有不同的限制:
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:x1/x2计算输入的数据类型为FLOAT16时,biasOptional计算输入的数据类型支持FLOAT16;x1/x2计算输入的数据类型为BFLOAT16时,biasOptional计算输入的数据类型支持FLOAT32。
    • Atlas 350 加速卡:x1/x2计算输入的数据类型为FLOAT16时,biasOptional计算输入的数据类型支持FLOAT16和FLOAT32;x1/x2计算输入的数据类型为BFLOAT16时,biasOptional计算输入的数据类型支持BFLOAT16和FLOAT32。
  • 通算融合算子不支持并发调用,不同的通算融合算子也不支持并发调用。
  • 不支持跨超节点通信,只支持超节点内。
[object Object]

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

说明:本示例代码调用了部分HCCL集合通信库接口:HcclGetCommName、HcclCommInitAll、HcclCommDestroy, 请参考

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

    [object Object]
  • Atlas 350 加速卡:

    [object Object]