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

HcclRankGraphGetRanksByLayer

产品支持情况

产品

是否支持

Atlas A3 训练系列产品 / Atlas A3 推理系列产品

Atlas A2 训练系列产品 / Atlas A2 推理系列产品

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

Atlas 训练系列产品

针对 Atlas A2 训练系列产品 / Atlas A2 推理系列产品 ,仅支持Atlas 800T A2 训练服务器、Atlas 900 A2 PoD 集群基础单元、Atlas 200T A2 Box16 异构子框。

功能说明

给定通信域和拓扑层级编号,返回该层级下本rank所在拓扑实例的所有rank编号列表以及rank数量。

以上述拓扑模型为例:
  • Layer 0中包含两个拓扑实例,为方便理解,定义拓扑实例ID分别为0和1。
  • Layer1中包含1个拓扑实例。

假设在rank 0上调用此接口,如果指定layer层级为0,则此接口返回的rank编号列表为[0,1,2],rank数量为3;如果指定layer层级为1,则此接口返回的rank编号列表为[0,1,2,3,4,5],rank数量为6。

函数原型

1
HcclResult HcclRankGraphGetRanksByLayer(HcclComm comm, uint32_t netLayer, uint32_t **ranks, uint32_t *rankNum)

参数说明

参数名

输入/输出

描述

comm

输入

通信域。

HcclComm类型的定义如下:

1
typedef void *HcclComm;

netLayer

输入

拓扑层级编号。

ranks

输出

rank编号列表。

rankNum

输出

rank数量。

返回值

HcclResult:接口成功返回HCCL_SUCCESS,其他失败。

约束说明

调用示例

功能说明的拓扑模型为例。

对于rank0:

1
2
3
4
5
6
7
HcclComm commTp;
vector<uint32_t> ranks;
uint32_t rankNum;
HcclRankGraphGetRanksByLayer(commTp, netLayer=0, &ranks, &rankNum);
// 对于0级拓扑,ranks=[0,1,2], rankNum=3
HcclRankGraphGetRanksByLayer(commTp, netLayer=1, &ranks, &rankNum);
// 对于1级拓扑,ranks=[0,1,2,3,4,5], rankNum=6

对于rank3:

1
2
3
4
5
6
7
HcclComm commTp;
vector<uint32_t> ranks;
uint32_t rankNum;
HcclRankGraphGetRanksByLayer(commTp, netLayer=0, &ranks, &rankNum);
// 对于0级拓扑,ranks=[3,4,5], rankNum=3
HcclRankGraphGetRanksByLayer(commTp, netLayer=1, &ranks, &rankNum);
// 对于1级拓扑,ranks=[0,1,2,3,4,5], rankNum=6