ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HCCL 集群信息校验失败(EI0001/EI0014/EI0016)定位指南

HCCL 集群信息校验失败(EI0001/EI0014/EI0016)定位指南 HCCL 集群信息校验失败EI0001/EI0014/EI0016定位指南【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hcclHCCLHuawei Collective Communication Library在创建通信域时会从 rank table 文件或集群协商结果中获取全量集群信息并对这些信息做一致性校验一旦校验失败通信域创建会直接报错退出。本文以开源仓库 docs/zh/user_guide/fault_diagnosis 下的定位文档为主体系统梳理校验失败的总体定位思路、校验发生的时机并逐一讲解 IP Family 不一致EI0001、TLS 配置不一致EI0016、superDeviceId 重复EI0014三类高频案例的现象、根因与解决方法帮助读者在真实集群上快速定位并修复此类故障。一、校验失败的总体定位思路HCCL 会对 rank table 文件或协商收集到的 rank table 信息进行校验若校验失败HCCL 会直接报错退出。由于该阶段发生在通信域创建过程InitGroupStage中一旦失败后续所有集合通信算子均无法执行因此定位时要基于实际报错内容逐项排查。可能的原因主要有以下几类rank table 文件校验失败文件本身格式错误、字段缺失或不符合集群信息配置规范内容与硬件配置不符合例如文件中的 IP 地址、Device ID 等信息与实际硬件环境不一致TLS 配置不一致通信域内各 rank 的 TLSTransport Layer Security开关状态或证书信息不统一superDeviceId 重复同一超节点SuperPod内出现两个相同物理 Device ID 的设备。后续内容将展开介绍上述几类常见报错案例若实际报错未命中以下任一案例可根据报错日志中[RanktableCheck]关键字后的具体描述定位排查。二、校验在通信域初始化流程中的位置理解校验失败的定位思路首先需要知道校验发生在通信域初始化的哪个环节。通信域初始化阶段的总体流程参见 通信域初始化阶段流程文档其流程图如下通信域初始化阶段流程HCCL 在通信域初始化阶段会依次经历环境变量初始化、资源初始化然后获取整个通信域的集群信息。获取集群信息的方式有两种基于 rank table 文件创建通信域通过其他途径生成 rank table集群信息配置文件调用 HCCL 创建通信域的接口读取对应文件。此时要保证文件路径、权限正确并保证文件在集群中各 rank 保持一致——HCCL 会在后续算子的参数面建链过程中进行 rank table 一致性校验不满足要求会终止业务。文件格式要求参见 集群信息配置。基于 root 节点信息创建通信域集群协商方式通过 HCCL 的通信域创建接口基于 Host 侧网卡向 root 节点建立 socket 连接汇聚、分发信息以生成集群信息。此方式要求配置的网卡、端口正确若部分 rank 因故障未及时把信息传给 root 节点也会导致此阶段失败。详细流程见 集群信息协商业务流程及定位思路。无论采用哪种方式创建通信域HCCL 最终都会对生成的集群信息进行校验校验内容包括集群硬件配置是否异常、IP 是否重复、IPv4/IPv6 是否混用、TLS 配置是否一致等。这就是本文讨论的集群信息校验环节报错日志统一带有[RanktableCheck]标记例如[ERROR] HCCL(144905,python):2025-04-20-00:26:54.435.048 [config.cc:413] [145735][InitGroupStage][RanktableCheck]rank[0] device ip family[2] is not same as others[10].日志中的[InitGroupStage][RanktableCheck]表明该报错正是集群信息校验阶段产生后续字段即为具体的校验失败描述。三、案例一IP Family 校验不一致EI0001问题现象CANN 日志中出现关键字rank[*] device ip family[*] is not same as others[*]典型报错如下[ERROR] HCCL(144905,python):2025-04-20-00:26:54.435.048 [config.cc:413] [145735][InitGroupStage][RanktableCheck]rank[0] device ip family[2] is not same as others[10].可能原因通信域内两个 rank 获取到的IP FamilyIP 协议族不同例如一边是 IPv4而另一边是 IPv6。HCCL 要求同一次作业的所有 rank 的 IP Family 保持一致否则校验失败。注意报错中打印的 family 为枚举值枚举值及对应关系如下IP Family 枚举值IP 协议2IPv410IPv6解决方法查询 Device 侧是否配置了 IPv4 地址hccn_tool -i {deviceId} -ip -g查询 Device 侧是否配置了 IPv6 地址hccn_tool -i {deviceId} -ip -inet6 -g确认同一次作业的所有 rank 的 IP Family 保持一致。默认行为说明HCCL 默认优先使用 IPv4 协议若 Device 侧没有配置 IPv4 协议的 IP则会使用 IPv6 协议对应的 IP因此容易出现部分 rank 用 IPv4、部分 rank 用 IPv6 的混用情况。如需强制指定协议可使用 HCCL_SOCKET_FAMILY 环境变量指定通信网卡使用的 IP 协议取值如下AF_INET使用 IPv4 协议缺省值AF_INET6使用 IPv6 协议。配置示例export HCCL_SOCKET_FAMILYAF_INET # IPv4 export HCCL_SOCKET_FAMILYAF_INET6 # IPv6注意两点使用约束配置 HCCL 初始化时 Host 侧通信网卡的 IP 协议版本时该变量需与 HCCL_SOCKET_IFNAME 同时使用配置 Device 侧通信网卡 IP 协议版本时若该变量指定的 IP 协议与实际获取到的网卡信息不匹配以实际环境上的网卡信息为准。例如指定 IPv6但 Device 侧只存在 IPv4 网卡则实际使用 IPv4。对于 Ascend 950PR/Ascend 950DT 机型该环境变量不支持配置 Device 侧网卡 IP 协议UB 协议通信只支持 IPv6 建链UBoE 协议通信只支持 IPv4 建链。四、案例二TLS 信息配置不一致EI0016问题现象CANN 日志中出现关键字All ranks are consistent.典型报错如下[ERROR] HCCL(94774,all_reduce_test):2025-10-27-11:51:32.570.490 [topoinfo_exchange_agent.cc:831] [94774][InitGroupStage][RanktableCheck] Value Disable for config tls is invalid. Expected Value:All ranks are consistent. Current status : rankList for enabled tls:[10.78.106.107/0]; rankList for disabled tls:[10.78.106.107/0]; rankList for query failure tls:.可能原因通信域创建过程中server 节点收到通信域内所有 rank 的信息后会校验通信域内所有 rank 的tls 配置是否一致若存在不一致则直接校验失败退出。报错信息中会打印出enabled开启 TLS和disabled关闭 TLS的节点列表未打印的节点列表即为相反的 tls 配置可据此定位到配置异常的节点。功能约束此校验功能仅支持Ascend HDK 25.2.0 以上版本且仅在基于 root 节点信息协商初始化通信域的场景中使用Ascend 950PR/Ascend 950DT不支持此功能。解决方法步骤 1查询集合通信各服务器的 TLS 状态开关。在服务器中执行如下命令获取 TLS 开关状态hccn_tool -i device_id -tls -g其中device_id为 Device 设备的逻辑 ID。也可通过 for 语句一次性查询所有 Device 的 TLS 信息for i in seq 0 7; do hccn_tool -i $i -tls -g; done # 0、7 分别为需要查询的 Device ID 起始与结束值打印信息示例如下dev_id:0, tls switch0, tls alarm time threshold[60]days dev_id:0, [pub cert] info: issuer[/CCN/STGD/OHUAWEI/OU2012/CN2_1thCA] start_time[Wed Feb 19 03:19:21 2020 GMT] end_time[Sat Feb 16 03:19:21 2030 GMT] dev_id:0, [ca1 cert] info: issuer[/CCN/STGD/LSZ/OHUAWEI/CN1thCA] start_time[Wed Feb 19 03:19:07 2020 GMT] end_time[Sat Feb 16 03:19:07 2030 GMT] dev_id:0, [ca2 cert] info: issuer[/CCN/STGD/LSZ/OHUAWEI/CN1thCA] start_time[Wed Feb 19 03:19:10 2020 GMT] end_time[Sat Feb 16 03:19:10 2030 GMT] dev_id:1, tls switch0, tls alarm time threshold[60]days ... ...其中tls switch[0]代表 TLS 状态为关闭tls switch[1]代表 TLS 状态为开启。步骤 2判断各服务器中所有 Device 的 TLS 状态开关是否一致。若不一致建议统一将 TLS 状态修改为开启。因为 TLS 开关关闭时集合通信会存在信息被窃听、篡改、仿冒的风险。修改 TLS 状态开关的命令如下hccn_tool -i device_id -tls -s enable 1其中enable为状态开关配置为1代表开启配置为0代表关闭。若状态一致且为开启则继续执行步骤 3判断各节点的 TLS 证书信息是否一致。步骤 3查看所有服务器中各 Device 的 TLS 证书信息是否一致。通过步骤 1 的打印信息可判断各 Device 的 TLS 证书信息是否一致。若不一致可通过如下命令替换证书套件hccn_tool -i 0 -tls -s path /root pri pri.pem pub pub.pem ca1 ca1.pem ca2 ca2.pem crl xxx.crl参数说明-i为 Device ID-s path指定证书/私钥/吊销列表存放路径pri为私钥文件名pub为设备证书文件名ca1、ca2、crl分别为根证书、二级根证书、吊销列表文件名。五、案例三superDeviceId 重复EI0014问题现象CANN 日志中出现关键字superDeviceId[***] in superPod[***]is already exist典型报错如下[ERROR] HCCL(169030,alltoall_test):2025-10-23-16:28:59.392.635 [topoinfo_exchange_agent.cc:695] [169030][InitGroupStage][RanktableCheck]devices have same superDeviceId[0x3000000] in superPod[super_pod_id_0]. Current device info: serverId[127.10.0.1], rankId[0], group[hccl_world_group]. Another device info: rankId[1].可能原因superDeviceId 是Atlas A3 训练系列产品/Atlas A3 推理系列产品内 Device 在超节点系统中的物理 ID是超节点系统中 Device 的唯一标识。HCCL 在一致性校验时发现一个超节点内存在相同的 superDeviceId因此校验失败。可通过 npu-smi 命令查询 superDeviceIdnpu-smi info -t spod-info -i id -c chip_idid设备 id通过npu-smi info -l命令查出的 NPU ID 即为设备 idchip_id芯片 id通过npu-smi info -m命令查出的 Chip ID 即为芯片 id。回显中的SDID即为 superDeviceId。出现此问题的常见原因有两种硬件配置异常导致超节点内 Device 的物理 ID 重复通过 HCCL_LOGIC_SUPERPOD_ID 环境变量将不同的物理超节点配置在了同一个逻辑超节点内导致逻辑超节点内 superDeviceId 重复。解决方法修改硬件配置避免同一个超节点内出现 superDeviceId 相同的设备或正确配置 HCCL_LOGIC_SUPERPOD_ID 环境变量。关于HCCL_LOGIC_SUPERPOD_ID的使用要点该变量用于在超节点模式组网下、不使用 rank table 文件配置集群资源信息时指定当前节点运行进程所属的超节点 ID从而将一个物理超节点划分为多个逻辑超节点。其取值为 string 类型长度需小于 128 个字符默认值为空字符串。若不配置则获取环境中 Super Pod ID 的值作为超节点 ID可通过npu-smi info -t spod-info -i id -c chip_id命令查看。重要使用约束该环境变量仅适用于超节点模式组网下未使用 rank table 文件配置集群信息的场景若使用了 rank table 文件则优先使用 rank table 文件中的配置该变量的作用是将一个物理超节点划分为多个逻辑超节点不支持将归属于不同物理超节点的 rank 配置到同一个逻辑超节点内——违反此约束即可能触发本文所述的 superDeviceId 重复校验失败。配置示例export HCCL_LOGIC_SUPERPOD_IDsuper_pod_id_1产品支持情况仅 Atlas A3 训练系列产品/Atlas A3 推理系列产品支持Ascend 950PR/Ascend 950DT、Atlas A2 训练/推理系列产品、Atlas 训练系列产品、Atlas 推理系列产品均不支持。六、通用排查方法当报错不属于上述三个典型案例时可按照以下通用思路继续定位读取报错关键字所有集群信息校验失败日志均带[InitGroupStage][RanktableCheck]标记其后的字段即为校验失败的具体描述例如 IP 重复、字段缺失、数值越界等据此判断校验失败的维度。核对 rank table 文件若使用 rank table 文件方式创建通信域检查文件路径、权限是否正常文件内容是否与硬件实际配置一致格式是否符合 集群信息配置 的要求并确保集群中各 rank 的文件保持一致。核对硬件配置使用hccn_tool、npu-smi等工具核对实际 IP、TLS、物理 ID 等硬件信息确认与 rank table 或协商结果一致。核对环境变量确认HCCL_SOCKET_FAMILY、HCCL_LOGIC_SUPERPOD_ID等影响集群信息的环境变量配置是否符合组网规划。七、进一步参考本文内容属于通信域初始化阶段故障诊断体系的一部分相关文档在仓库中的位置如下故障诊断入口与文档体系故障诊断 README集群信息校验失败问题目录集群信息校验失败问题通信域初始化总体流程通信域初始化阶段rank table 加载失败定位rank table 文件加载失败定位思路通信域初始化阶段日志定位方法故障诊断定位思路【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表