---
title: rank table配置资源信息（Atlas 350 加速卡）
description: "对Atlas 350 加速卡，rank table文件需要配合拓扑文件初始化HCCL通信域。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/hcclug/hcclug_000065.html
sourcePath: /source/zh/canncommercial/900/API/hcclug/hcclug_000065.html
indexId: 1d75a25b39b7678aa41b39527612a6e6014e20f079b0ea266efec4cf84154f2b59
---
# rank table配置资源信息（Atlas 350 加速卡）

对Atlas 350 加速卡，rank table文件需要配合拓扑文件初始化HCCL通信域。

- rank table文件大小最大支持1GB。
- rank table文件为JSON格式，本节所示JSON文件示例中的注释仅为方便理解，实际使用时，请删除JSON文件中的注释。


#### 拓扑文件配置

拓扑文件配置了物理拓扑信息和路由信息，存储路径为“/usr/local/Ascend/driver/topo/”，无需用户手工配置，产品出厂时自动配置，用户仅需了解其格式及字段含义。以2个AI Server，每个AI Server中两个NPU为例，组网如下所示：图1 通信连接示例


拓扑文件为JSON格式，配置示例如下：
```
{
"version": "2.0",
"peer_count": 2,
"peer_list":[
{ "local_id": 0},
{ "local_id": 1}
],
"edge_count": 3,
"edge_list": [
{
"net_layer": 0,           // Server内连接
"link_type": "PEER2PEER",
"protocols": ["UB_CTP"],
"local_a": 0,              // 上图所示的NPU0
"local_a_ports": ["1/0"],  // Server内连接端口为Die1的0号端口
"local_b": 1,              // 上图所示的NPU1
"local_b_ports": ["1/0"],  // Server内连接端口为Die1的0号端口
"topo_instance_id": 0,
"topo_type": "1DMESH",
"position": "DEVICE"
},{
"net_layer": 1,           // Server间连接
"link_type": "PEER2NET",
"protocols": ["UB_CTP"],
"local_a": 0,             // 上图所示的NPU0
"local_a_ports": ["0/4","0/5","0/6","0/7","1/5","1/6"],  // Server间连接端口为Die0的4、5、6、7号端口，Die1的5、6号端口
"topo_instance_id": 0,
"topo_type": "CLOS",
"position": "DEVICE"
},{
"net_layer": 1,
"link_type": "PEER2NET",
"protocols": ["UB_CTP"],
"local_a": 1,             // Server间连接
"local_a_ports": ["0/4","0/5","0/6","0/7","1/5","1/6"],  // Server间连接端口为Die0的4、5、6、7号端口，Die1的5、6号端口
"topo_instance_id": 0,
"topo_type": "CLOS",
"position": "DEVICE"
}
]
}
```


**表1 网络拓扑文件配置说明**

| 一级配置项 | 二级配置项 | 配置说明 |
| --- | --- | --- |
| version |  | 必选。 拓扑文件模板版本信息。 固定配置为：2.0。 |
| peer\_count |  | 必选。 当前AI Server包含的NPU个数，取值范围：[1,65]。 |
| peer\_list |  | 必选。 当前AI Server包含的NPU列表。 |
|  | local\_id | 必选。 NPU的物理ID，取值范围：[0,64]。 |
| edge\_count |  | 必选。 物理连接边数，取值范围：[0, UINT32\_MAX]。 |
| edge\_list |  | 必选。 物理连接边列表。 |
|  | net\_layer | 必选。 当前物理链路所属的网络层次，取值范围：[0,7]。 |
|  | link\_type | 必选。 当前物理链路的连接类型，支持以下取值： PEER2PEER PEER2NET |
|  | protocols | 必选。 当前链路支持的协议列表，支持以下取值： UB\_CTP UB\_TP ROCE HCCS TCP UB\_MEM |
|  | local\_a | 必选。 通信链路一端NPU的物理ID。 该ID须存在于“peer\_list”中。 |
|  | local\_a\_ports | 必选。 当前层次的通信链路在“local\_a”对应的NPU中使用的端口列表，字符串类型，长度为1~32，列表中每个值的格式为：Die ID/端口ID。 例如："local\_a\_ports": ["1/0"]，代表Die1的0号端口。 |
|  | local\_b | 必选。 通信链路另一端NPU的物理ID。 该ID须存在于“peer\_list”中。 |
|  | local\_b\_ports | 必选。 当前层次的通信链路在“local\_b”对应的NPU中使用的端口列表，字符串类型，长度为1~32，每个端口的配置格式为：Die ID/端口ID，多个端口之间用“,”分隔。 例如："local\_a\_ports": ["1/0"]，代表Die1的0号端口。 |
|  | topo\_instance\_id | 可选。 拓扑实例ID，取值范围：[0, UINT32\_MAX]。 |
|  | topo\_type | 可选。 拓扑实例的拓扑类型，支持以下取值： CLOS（默认值）：所有节点均可通，例如通过交换机连接的胖树结构。 1DMESH：Device和Device之间直连，全互联拓扑。 |
|  | position | 可选。 通信链路使用的网卡所属位置，支持以下取值： HOST DEVICE（默认值） |


#### rank table文件配置

以两个AI Server，每个AI Server中两个NPU为例，配置示例如下：

```
{
"status": "completed",         // rank table可用标识，completed为可用
"version": "2.0",
"rank_count": 4,
"rank_list": [
{
"rank_id": 0,
"local_id": 0,
"device_id": 0,
"device_port": 16666,
"level_list":  [
{
"net_layer": 0,                 // Server内连接
"net_instance_id": "az0-rack0-pod0",
"net_type": "TOPO_FILE_DESC",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.0.10",
"ports": ["1/0"]        // 连接端口为Die1的0号端口
}
]
},{
"net_layer": 1,                // Server间连接
"net_instance_id": "az0",
"net_type": "CLOS",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.0.15",
"ports": ["0/4","0/5","0/6","0/7"],  // 连接端口为Die0的4、5、6、7号端口
"plane_id": "plane0"
},{
"addr_type": "IPV4",
"addr": "172.16.0.5",
"ports": ["1/5","1/6"],  // 连接端口为Die1的5、6号端口
"plane_id": "plane1"
}
]
}
]
},
{
"rank_id": 1,
"local_id": 1,
"device_id": 1,
"device_port": 16667,
"level_list": [
{
"net_layer": 0,
"net_instance_id" : "az0-rack0-pod0",
"net_type": "TOPO_FILE_DESC",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.0.28",
"ports": ["1/0"]
}
]
},{
"net_layer": 1,
"net_instance_id": "az0",
"net_type": "CLOS",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.0.33",
"ports": ["0/4","0/5","0/6","0/7"],
"plane_id": "plane2"
},{
"addr_type": "IPV4",
"addr": "172.16.0.23",
"ports": ["1/5","1/6"],
"plane_id": "plane3"
}
]
}
]
},{
"rank_id": 2,
"local_id": 0,
"device_id": 0,
"device_port": 16668,
"level_list": [
{
"net_layer": 0,
"net_instance_id": "az0-rack0-pod1",
"net_type": "TOPO_FILE_DESC",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.1.10",
"ports": ["1/0"]
}
]
},{
"net_layer": 1,
"net_instance_id": "az0",
"net_type": "CLOS",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.1.15",
"ports": ["0/4","0/5","0/6","0/7"],
"plane_id": "plane0"
},{
"addr_type": "IPV4",
"addr": "172.16.1.5",
"ports": ["1/5","1/6"],
"plane_id": "plane1"
}
]
}
]
},
{
"rank_id": 3,
"local_id": 1,
"device_id": 1,
"device_port": 16669,
"level_list": [
{
"net_layer": 0,
"net_instance_id": "az0-rack0-pod1",
"net_type": "TOPO_FILE_DESC",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.1.28",
"ports": ["1/0"]
}
]
},{
"net_layer": 1,
"net_instance_id": "az0",
"net_type": "CLOS",
"net_attr": "",
"rank_addr_list": [
{
"addr_type": "IPV4",
"addr": "172.16.1.33",
"ports": ["0/4","0/5","0/6","0/7"],
"plane_id": "plane2"
},{
"addr_type": "IPV4",
"addr": "172.16.1.23",
"ports": ["1/5","1/6"],
"plane_id": "plane3"
}
]
}
]
}
]
}
```


**表2 rank table文件配置说明**

| 一级配置项 | 二级配置项 | 三级配置项 | 四级配置项 | 配置说明 |
| --- | --- | --- | --- | --- |
| status |  |  |  | 必选，rank table可用标识。 completed：表示rank table可用。 initializing：表示rank table不可用。 |
| version |  |  |  | 必选。 rank table模板版本信息。 固定配置为：2.0。 |
| rank\_count |  |  |  | 必选。 参与集合通信的rank数量，即NPU数量，取值范围：[1, 65536]。 |
| rank\_list |  |  |  | 必选。 参与集合通信的rank列表。 |
|  | rank\_id |  |  | 必选。 rank唯一标识，请配置为整数，从0开始配置，且全局唯一，取值范围：[0, NPU总数\-1]。 为方便管理，建议rank\_id按照NPU物理连接顺序进行排序，即将物理连接上较近的NPU编排在一起。 |
|  | local\_id |  |  | 必选。 NPU在当前AI Server中的唯一标识。请从0开始配置，取值范围：[0,64]。 |
|  | device\_id |  |  | 必选。 NPU的物理ID，取值范围：[0,64]。 |
|  | device\_port |  |  | 可选。 Device网卡的通信端口，取值范围为[1,65535]，需要确保指定的端口未被其他进程占用。需要注意，[1,1023]为系统保留端口，应避免使用这些端口。 单卡多进程的业务场景下，建议配置此字段，并且不同的业务进程需要设置不同的端口号，否则业务可能会因为端口冲突运行失败。 |
|  | level\_list |  |  | 必选。 rank在每个网络层次的资源信息。 此列表下数组长度不能超过8。 |
|  |  | net\_layer |  | 必选。 网络层次，取值范围：[0,7]。 net\_layer需要从0开始编号，以升序的形式排列。 |
|  |  | net\_instance\_id |  | 必选。 该网络层次下的实例ID，用户自定义，同一个net\_layer下保持唯一，长度不超过1024。 |
|  |  | net\_type |  | 必选。 该网络层次的网络类型。 当“net\_layer”取值为“0”时，该参数仅支持配置为“TOPO\_FILE\_DESC”，表示通过拓扑文件描述。 当“net\_layer”取值为非0时，该参数支持以下两种配置： CLOS：代表所有节点均可互通，例如通过交换机连接的胖树结构。 TOPO\_FILE\_DESC：代表网络类型通过拓扑文件描述。 |
|  |  | net\_attr |  | 可选。 预留字段，表示该网络层次的其他额外信息。 |
|  |  | rank\_addr\_list |  | 必选。 当前rank在该网络层次使用的网络地址信息。 此列表下数组长度不能超过24，每个Die需要单独配置。 |
|  |  |  | addr\_type | 必选。 当前rank的地址类型，支持以下取值： EID IPv4 IPv6 |
|  |  |  | addr | 必选。 当前rank的IP地址，字符串类型，长度范围1~256，地址需要符合“addr\_type”指定的地址格式。 |
|  |  |  | ports | 必选。 “addr”绑定的端口列表，一个地址可以绑定到多个端口，每个端口的配置格式为：Die ID/端口ID，多个端口之间用“,”分隔。 注意：一个端口在同一个网络层次下，只能映射到一个地址。最多支持配置16个端口，单个端口支持的最大字符串长度为32。 |
|  |  |  | plane\_id | 可选。 网络平面ID，默认值为“0”。 |
