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

aclnnDistributeBarrierV2

产品支持情况

产品 是否支持
[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]
[object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object] ×
[object Object]Atlas 200I/500 A2 推理产品[object Object] ×
[object Object]Atlas 推理系列产品[object Object] ×
[object Object]Atlas 训练系列产品[object Object] ×

功能说明

算子功能:完成通信域内的全卡同步,xRef仅用于构建Tensor依赖,接口内不对xRef做任何操作。

相较于aclnnDistributeBarrier接口,该接口变更如下:

  • 支持动态缩容场景:支持在创建通信域后,剔除故障卡,算子可正常执行(无需重新编译),通过传入elasticInfoOptional参数使能该特性。
  • 支持超时检测场景:
    • timeOutOptional≠0:通过传入大于0的timeOutOptional参数(单位为us)使能本特性,最大支持传入INT32_MAX。当算子内部同步等待时间超过给定timeOutOptional时,则认为所在卡存在超时异常。

函数原型

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

[object Object]
[object Object]

aclnnDistributeBarrierV2GetWorkspaceSize

  • 参数说明

    [object Object]
    • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]:该产品下elasticInfoOptional仅支持传入空指针。
  • 返回值

    返回aclnnStatus状态码,具体参见

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

    [object Object]

aclnnDistributeBarrierV2

  • 参数说明

    [object Object]
  • 返回值

    返回aclnnStatus状态码,具体参见

约束说明

  • 通信域使用约束:

    • 一个模型中的aclnnDistributeBarrierV2需要使用单独通信域,该通信域中不允许有其他算子。
  • 使用场景说明:

    • 在需要进行全卡同步的网络模型中调用该算子,可以屏蔽快慢卡引入的性能波动问题,协助分析性能。
    • 可以连续调用,入图时,需将上个算子的输入、下个算子的输出作为入参传入接口。
    • 动态缩容功能不支持在TP并行场景下使能。
  • 参数一致性约束:

    • 使能elasticInfoOptional时,需确保DispatchV2、CombineV2系列算子也使能此参数,并且其取值与对应的elasticInfoOptional参数保持一致。

调用示例

  • 文件准备:
    1.新建barrierDemo目录,按照下方指导在barrierDemo下新建aclnnBarrierDemo.cpp,buildBarrier.sh文件并按照如下代码修改。

    2.安装cann包,并根据下方指导编译运行barrierDemo。

  • 编译脚本

    [object Object]
  • 编译与运行:

    [object Object]
  • 示例代码如下,仅供参考

    [object Object]