昇腾社区首页
中文
注册

CreateHcclCrossMulitComm

功能说明

backend为HCCL时,使用ranktable的方式创建多机多卡子通信域功能

定义

1
HcclComm CreateHcclCrossMulitComm(const char *rankTableFile, uint32_t subCommRankId, std::vector<uint32_t> &rankIds, uint64_t subCommId, uint32_t hcclBufferSize, char *commName);

参数列表

成员名称

输入/输出

类型

默认值

描述

rankTableFile

输入

char *

-

ranktable的文件路径。作为字符串最大长度为4096字节,含结束符。

ranktable配置请参考《TensorFlow 1.15模型迁移指南》的“模型训练>执行分布式训练>准备ranktable资源配置文件”章节。

subCommRankId

输入

uint32_t

-

本rank在子通信域中的rank id。

rankIds

输入

vector<uint32_t>

-

子通信域中rank在全局通信域中的rank id组成的数组。

注意:该数组应当是有序的,数组中每个rank的下标将映射为其在子通信域的rank id。

subCommId

输入

uint64_t

-

当前子通信域标识。

hcclBufferSize

输入

uint32_t

-

子通信域共享数据的缓存区大小。单位M

commName

输出

char *

-

子通信域创建成功后获取到的通信域名称。最大返回长度支持128。

约束说明

  • 当前rank不支持在多个子通信域中并行创建,如:当前rank是1,两个子通信域分别是[0,1]和[1,2],此时不支持并行创建,可以串行创建;如果当前rank是0或2,两个子通信域分别是[0,1]和[1,2],此时支持并行创建。
  • subCommRankId < rankIds.size()。
  • 不支持跨芯片类型多机通信。
  • 对于同一个全局通信域,不可使用重复的subCommId创建子通信域。
  • 只支持Atlas A2 训练系列产品/Atlas 800I A2 推理产品Atlas A3 推理系列产品/Atlas A3 训练系列产品