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字节,含结束符。 |
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 A2 推理系列产品 和Atlas A3 推理系列产品 /Atlas A3 训练系列产品 。
父主题: atb/comm.h