rank table配置资源信息Atlas A3 训练系列产品/Atlas A3 推理系列产品【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl针对Atlas A3 训练系列产品/Atlas A3 推理系列产品集群训练支持超节点模式组网与典型组网。需要注意针对Atlas A3 训练系列产品/Atlas A3 推理系列产品每个NPU包含2个Device即两个Die每个Device为一个rank。[!NOTE]说明 rank table文件为JSON格式本节所示JSON文件示例中的注释仅为方便理解实际使用时请删除JSON文件中的注释。超节点模式组网以包含两个超节点每个超节点内包含两个AI Server每个AI Server内四个Device的资源配置文件为例配置示例如下{ status: completed, // rank table可用标识completed为可用 version: 1.2, // rank table模板版本信息针对超节点模式组网配置为1.2 server_count:4, // 参与训练的AI Server数目 server_list: [ { server_id: node_0, // AI Server标识string类型请确保全局唯一 host_ip:172.16.0.100, // AI Server的Host IP地址 device: [ {device_id: 0,super_device_id:0,device_ip: 192.168.1.6,device_port:16666,backup_device_ip:192.168.1.7,backup_device_port:16667,host_port:16665,rank_id: 0}, // device_id为处理器的物理IDsuper_device_id为处理器在超节点系统中的物理IDdevice_ip为处理器真实网卡IPdevice_port为处理器的网卡通信端口backup_device_ip为开启超节点间算子重执行特性时的备用IPhost_port为Host网卡的通信端口rank_id为rank标识从0开始配置 {device_id: 1,super_device_id:1,device_ip: 192.168.1.7,device_port:16666,backup_device_ip:192.168.1.6,backup_device_port:16667,host_port:16666,rank_id: 1}, {device_id: 2,super_device_id:2,device_ip: 192.168.1.8,device_port:16668,backup_device_ip:192.168.1.9,backup_device_port:16670,host_port:16667,rank_id: 2}, {device_id: 3,super_device_id:3,device_ip: 192.168.1.9,device_port:16669,backup_device_ip:192.168.1.8,backup_device_port:16667,host_port:16668,rank_id: 3}] }, { server_id: node_1, host_ip:172.16.0.101, device: [ {device_id: 0,super_device_id:4,device_ip: 192.168.2.6,device_port:16666,backup_device_ip:192.168.2.7,backup_device_port:16667,host_port:16665,rank_id: 4}, {device_id: 1,super_device_id:5,device_ip: 192.168.2.7,device_port:16666,backup_device_ip:192.168.2.6,backup_device_port:16667,host_port:16666,rank_id: 5}, {device_id: 2,super_device_id:6,device_ip: 192.168.2.8,device_port:16668,backup_device_ip:192.168.2.9,backup_device_port:16670,host_port:16667,rank_id: 6}, {device_id: 3,super_device_id:7,device_ip: 192.168.2.9,device_port:16669,backup_device_ip:192.168.2.8,backup_device_port:16667,host_port:16668,rank_id: 7}] }, { server_id: node_2, host_ip:172.16.0.102, device: [ {device_id:0,super_device_id:0,device_ip:192.168.3.6,device_port:16666,backup_device_ip:192.168.3.7,backup_device_port:16667,host_port:16665,rank_id:8}, {device_id:1,super_device_id:1,device_ip:192.168.3.7,device_port:16666,backup_device_ip:192.168.3.6,backup_device_port:16667,host_port:16666,rank_id:9}, {device_id:2,super_device_id:2,device_ip:192.168.3.8,device_port:16668,backup_device_ip:192.168.3.9,backup_device_port:16670,host_port:16667,rank_id:10}, {device_id:3,super_device_id:3,device_ip:192.168.3.9,device_port:16669,backup_device_ip:192.168.3.8,backup_device_port:16667,host_port:16668,rank_id:11}] }, { server_id: node_3, host_ip:172.16.0.103, device: [ {device_id:0,super_device_id:4,device_ip:192.168.4.6,device_port:16666,backup_device_ip:192.168.4.7,backup_device_port:16667,host_port:16665,rank_id:12}, {device_id:1,super_device_id:5,device_ip:192.168.4.7,device_port:16666,backup_device_ip:192.168.4.6,backup_device_port:16667,host_port:16666,rank_id:13}, {device_id:2,super_device_id:6,device_ip:192.168.4.8,device_port:16668,backup_device_ip:192.168.4.9,backup_device_port:16670,host_port:16667,rank_id:14}, {device_id:3,super_device_id:7,device_ip:192.168.4.9,device_port:16669,backup_device_ip:192.168.4.8,backup_device_port:16667,host_port:16668,rank_id:15}] } ], super_pod_list: [ { super_pod_id: 0, // 超节点唯一标识 server_list: [ // 超节点内的AI Server列表 {server_id: node_0}, // server_id为Server标识与server_list中的server_id对应 {server_id: node_1}] }, { super_pod_id: 1, server_list: [ {server_id:node_2}, {server_id:node_3}] } ] }rank table配置文件说明如下所示一级配置项二级配置项三级配置项配置说明status必选。rank table可用标识。- completed表示rank table可用。- initializing表示rank table不可用。version必选。rank table模板版本信息。针对超节点模式组网配置为1.2。server_count可选。参与集合通信的AI Server个数。server_list必选。参与集合通信的AI Server列表。server_id必选。AI Server标识字符串类型长度小于等于64请确保全局唯一。配置示例node_0。host_ip可选。AI Server的Host IP地址要求为常规IPv4格式。开启HCCL重执行特性的场景下此字段必须配置否则重执行失效走无重执行流程。重执行特性默认关闭可参见环境变量HCCL_OP_RETRY_ENABLE。device必选。Device列表。device_id必选。AI处理器的物理ID即Device在AI Server上的序列号。可通过执行“ls /dev/davinci*”命令获取AI处理器的物理ID。例如显示/dev/davinci0表示AI处理器的物理ID为0。取值范围[0实际Device数量-1]。注意“device_id”配置项的优先级高于环境变量“ASCEND_DEVICE_ID”。super_device_id可选若不配置该字段会采用“AI Server模式”。AI处理器在超节点系统中的物理ID为超节点系统中NPU唯一标识。开发者可通过npu-smi命令查询命令示例如下npu-smi info -t spod-info -i id -c chip_id- id设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。- chip_id芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。回显中的“SDID”即为超节点系统中的NPU唯一标识。device_ip可选。AI处理器集成网卡IP全局唯一要求为常规IPv4或IPv6格式。需要注意1. 当组网中包含多个超节点时device_ip必须配置。2. 若组网中仅包含一个超节点device_ip在以下场景必须配置其他场景可不配置。当超节点内使用RDMA通信时即将环境变量HCCL_INTER_HCCS_DISABLE配置为TRUE禁用了HCCS功能的场景device_ip必须配置。可以在当前AI Server执行命令cat /etc/hccn.conf获取网卡IP例如address_0xx.xx.xx.xxnetmask_0xx.xx.xx.xxnetdetect_0xx.xx.xx.xx查询到的address_xx即为网卡IPaddress后的序号为AI处理器的物理ID即device_id后面的ip地址即为需要用户填入的该device对应的网卡IP。device_port可选。Device网卡的通信端口取值范围为[1,65535]需要确保指定的端口未被其他进程占用。需要注意[1,1023]为系统保留端口应避免使用这些端口。单卡多进程的业务场景下建议配置此字段并且不同的业务进程需要设置不同的端口号否则业务可能会因为端口冲突运行失败。backup_device_ip可选。当超节点间通信开启了算子重执行特性时如果Device网卡故障RDMA链路故障可通过此参数将同一NPU中的另一个Die网卡指定为备用Device网卡提升算子重执行的成功率此种启用备用Device网卡的通信方式称之为借轨通信。“backup_device_ip”为常规IPv4或IPv6格式查询方法可参见“device_ip”的配置说明。需要注意1. “backup_device_ip”与“device_ip”对应的Device需要属于同一NPU即同一NPU下Die0与Die1对应的Device网卡才能互为备用。2. 仅通信算子展开模式为AI_CPU且开启了超节点间通信的算子重执行特性时此配置才生效即export HCCL_OP_EXPANSION_MODEAI_CPUexport HCCL_OP_RETRY_ENABLEL1:1,L2:1L2代表通信域物理范围为超节点间通信域取值为1代表开启通信算子重执行特性。3. 为了确保借轨功能正常执行需要满足如下条件- 备用网卡的通信链路正常。- 互为主备的Device都在业务可见范围内。例如NPU1中包含Device0与Device1两个Die互为主备假设通过环境变量ASCEND_RT_VISIBLE_DEVICES指定了业务可见Device为Device0Device1不对业务可见则借轨功能无法执行。4. 如果通信过程中发生了借轨假设某个NPU的Die0网卡故障启用了备用的Die1网卡原Die0的网卡流量也会通过Die1网卡收发导致Die1的流量增大总体性能会由于物理带宽减半、端口冲突导致下降。5. 开启借轨场景下若NPU0的Die0网卡故障会切换到其备用网卡Die1由于两个NPU之间的通信要求本端与对端同时切换为备用网卡因此NPU1也会从Die0切换为Die1即“图1”所示。但如果Die0与Die1之间本身就存在通信任务此时借轨功能无法执行。6. 开启借轨通信功能时建议一个NPU的两个Die分配给同一个训练或推理任务。如果同一个NPU的两个Die分给两个不同的训练或推理任务一个任务发生故障会借用另一个任务的网卡两个任务均会发生一定程度的性能下降。7. 同一NPU仅支持发生一次借轨且不支持回切。如图2所示“图示一”中NPU0 - NPU1间通信链路故障启用了备用链路发生借轨通信正常进行若再发生“图示二”所示故障则不再支持借轨会报错退出。backup_device_port可选。备用Device网卡的通信端口取值范围为[1,65535]需要确保指定的端口未被其他进程占用。需要注意[1,1023]为系统保留端口应避免使用这些端口。若启用了借轨通信功能且业务为单卡多进程的场景建议配置此字段并且不同的业务进程需要设置不同的端口号否则业务可能会因为端口冲突运行失败。注意同一个Device网卡作为主网卡与备网卡时配置的通信端口号不能相同。host_port可选。Host网卡的通信端口取值范围为[1,65535]同一AI Server内每个Device对应的host_port应各不相同且需要确保指定的端口未被其他进程占用。需要注意[1,1023]为系统保留端口应避免使用这些端口。若通过环境变量HCCL_OP_RETRY_ENABLE开启了HCCL重执行特性且业务为单卡多进程场景即多个业务进程同时共用一个NPU建议配置此字段并且不同的业务进程需要设置不同的端口号否则业务可能会因为端口冲突运行失败。rank_id必选。rank唯一标识请配置为整数从0开始配置且全局唯一取值范围[0, 总Device数量-1]。建议rank_id按照Device物理连接顺序进行排序即将物理连接上较近的Device编排在一起否则可能会对性能造成影响。例如若device_ip按照物理连接从小到大设置则rank_id也建议按照从小到大的顺序设置。super_pod_list可选若不配置该字段会采用“AI Server模式”。参与集合通信的超节点列表。super_pod_id若配置了“super_pod_list”该字段必选。超节点唯一标识全局唯一支持如下两种配置方式- 配置为超节点物理ID可通过npu-smi工具查询命令示例如下npu-smi info -t spod-info -i id -c chip_idid设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。chip_id芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。回显中的“Super Pod ID”即为超节点的物理ID。- id设备id。通过npu-smi info -l命令查出的NPU ID即为设备id。- chip_id芯片id。通过npu-smi info -m命令查出的Chip ID即为芯片id。- 用户自定义编号字符串格式需全局唯一。自定义配置ID的场景下用户可以把一个物理超节点划分为多个小的逻辑超节点使用比如一个物理超节点有8个AI Server节点用户可以把前4个AI Server节点作为一个小的超节点编号为super_pod_1后4个AI Server节点作为一个小的超节点编号为super_pod_2。server_list必选。超节点内的AI Server列表。server_id必选。Server标识字符串类型与server_list中的server_id对应。配置示例node_0。[!NOTE]说明 如果组网中存在多个超节点请将属于同一超节点内的AI Server信息配置在一起。假设有两个超节点标识分别为“0”和“1”请先配置“0”中的AI Server信息再配置“1”中的AI Server信息不支持“0”中的AI Server信息与“1”中的AI Server信息交叉配置。图 1借轨通信切换示例![](https://raw.gitcode.com/cann/hccl/raw/20ed5a0bc0d136005da3f0581544829bd02123b8/docs/user_guide/cluster_info_config/figures/borrow_comm_switch_example.png 借轨通信切换示例?utm_sourcegitcode_repo_files)图 2同一NPU仅支持一次借轨示例![](https://raw.gitcode.com/cann/hccl/raw/20ed5a0bc0d136005da3f0581544829bd02123b8/docs/user_guide/cluster_info_config/figures/npu_single_borrow_example.png 同一NPU仅支持一次借轨示例?utm_sourcegitcode_repo_files)典型集群组网即AI Server模式以包含两个AI Server每个AI Server内2个Device为例rank table文件配置示例如下{ status:completed, // rank table可用标识completed为可用 version:1.0, // rank table模板版本信息典型集群组网配置为1.0 server_count:2, //参与训练的AI Server数目此例中有两个AI Server server_list: [ { server_id:node_0, // AI Server标识String类型请确保全局唯一 host_ip:172.16.0.110, // AI Server的Host IP地址 device:[ // AI Server中的Device列表 { device_id:0, // 处理器的物理ID device_ip:192.168.1.8, // 处理器真实网卡IP device_port:16667, // 处理器的网卡通信端口 host_port:16666, // Host网卡的通信端口 rank_id:0 // rank的标识从0开始配置 }, { device_id:1, device_ip:192.168.1.9, device_port:16667, host_port:16667, rank_id:1 } ] }, { server_id:node_1, host_ip:172.16.0.111, device:[ { device_id:0, device_ip:192.168.2.8, device_port:16667, host_port:16666, rank_id:2 }, { device_id:1, device_ip:192.168.2.9, device_port:16667, host_port:16667, rank_id:3 } ] } ] }rank table配置文件说明如下表所示一级配置项二级配置项三级配置项配置说明status必选。rank table可用标识。- completed表示rank table可用。- initializing表示rank table不可用。version必选。rank table模板版本信息。针对典型集群组网配置为1.0。server_count必选。参与集合通信的AI Server个数。server_list必选。参与集合通信的AI Server列表。server_id必选。AI Server标识字符串类型长度小于等于64请确保全局唯一。配置示例node_0。host_ip可选。AI Server的Host IP地址要求为常规IPv4格式。开启HCCL重执行特性的场景下此字段必须配置否则重执行失效走无重执行流程。重执行特性默认关闭可参见环境变量HCCL_OP_RETRY_ENABLE。device必选。AI Server中的Device列表。device_id必选。AI处理器的物理ID即Device在AI Server上的序列号。可通过执行“ls /dev/davinci*”命令获取AI处理器的物理ID。例如显示/dev/davinci0表示AI处理器的物理ID为0。取值范围[0实际Device数量-1]。注意“device_id”配置项的优先级高于环境变量“ASCEND_DEVICE_ID”。device_ip可选。AI处理器集成网卡IP全局唯一要求为常规IPv4或IPv6格式。需要注意- 多机场景下device_ip必须配置。- 单机场景下device_ip可不配置。可以在当前AI Server执行指令cat /etc/hccn.conf获取网卡IP例如address_0xx.xx.xx.xxnetmask_0xx.xx.xx.xxnetdetect_0xx.xx.xx.xx查询到的address_xx即为网卡IPaddress后的序号为AI处理器的物理ID即device_id后面的ip地址即为需要用户填入的该device对应的网卡IP。device_port可选。Device网卡的通信端口取值范围为[1,65535]需要确保指定的端口未被其他进程占用。需要注意[1,1023]为系统保留端口应避免使用这些端口。单卡多进程的业务场景下建议配置此字段并且不同的业务进程需要设置不同的端口号否则业务可能会因为端口冲突运行失败。host_port可选。Host网卡的通信端口取值范围为[1,65535]同一AI Server内每个Device对应的host_port应各不相同且需要确保指定的端口未被其他进程占用。需要注意[1,1023]为系统保留端口应避免使用这些端口。若通过环境变量HCCL_OP_RETRY_ENABLE开启了HCCL重执行特性且业务为单卡多进程场景即多个业务进程同时共用一个NPU建议配置此字段并且不同的业务进程需要设置不同的端口号否则业务可能会因为端口冲突运行失败。rank_id必选。Rank唯一标识请配置为整数从0开始配置且全局唯一取值范围[0, 总Device数量-1]。建议rank_id按照Device物理连接顺序进行排序即将物理连接上较近的Device编排在一起否则可能会对性能造成影响。例如若device_ip按照物理连接从小到大设置则rank_id也建议按照从小到大的顺序设置。【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考