的定位与处理全指南)
HCCL 故障诊断ERROR CQE 报错EI0013的定位与处理全指南【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hcclERROR CQECompletion Queue Entry 错误在 HCCL 中代表 RoCE 报文重传超时一旦出现必然伴随集群卡死与算子执行超时。本文围绕 CANN 集合通信库 HCCL 的 ERROR CQE 报错错误码 EI0013完整讲解问题现象、日志关键字、根因原理、排查步骤与环境变量调优方法帮助开发者快速定位到故障节点本端/远端 device IP并恢复集群通信。一、ERROR CQE 是什么在基于 RoCERDMA over Converged Ethernet的集群通信场景中HCCL 依赖 RoCE 网卡完成跨节点数据传输。ERROR CQE 是 RoCE 驱动上报的一种错误完成队列元素在 HCCL 中代表 RoCE 报文的重传超时——即本端向对端发包后在指定的时间段内没有收到对端的确认ACK/NACK回复。该错误一旦出现必然会伴随集群卡死导致通信超时。从机制上看HCCL 会定期轮询 RoCE 驱动以获取其事件并将 ERROR CQE 事件纳入集群心跳检测体系。在故障诊断目录中ERROR CQE 报错EI0013归属于“任务下发执行阶段”见 docs/zh/user_guide/fault_diagnosis/README.md与集群心跳机制docs/zh/user_guide/fault_diagnosis/_dump_cluster_heartbeat_mechanism.md密切相关——心跳异常类型中的Error CQE Occurred网络丢包即对应本问题。用户可以通过接口HcclGetCommAsyncError查询是否有发生 ERROR CQE 报错。二、问题现象两类日志关键字发生 ERROR CQE 时可以从两类日志中观察到明确的报错特征。2.1 打屏日志关键字 Error ROCE CQE在打屏日志中会有 EI0013 的错误码打印关键字为 Error ROCE CQE日志会同时给出本端Local与对端Peer的 server、device ID、device IP 信息[PID: 3448331] 2025-12-04-21:59:08.232.310 Execution Error ROCE CQE(EI0013): An error CQE occurred during operator execution. Local information: server 127.0.0.1, device ID 0, device IP 127.10.0.1. Peer information: server 127.0.0.2, device ID 1, device IP 127.10.0.2. Possible Cause: 1. The network between two devices is abnormal. For example, the network port is intermittently disconnected.2. The peer process exits abnormally in advance. As a result, the local end cannot receive the response from the peer end. Solution: 1. Check whether the network devices between the two ends are abnormal.2. Check whether the peer process exits first. If yes, check the cause of the process exit.这段日志是故障定位的起点Local information与Peer information直接指明了通信双方的位置后续排查应围绕这两端展开。2.2 CANN 日志关键字 error cqe status在 CANN 日志中默认位于$HOME/ascend/log/run目录下存在关键字 error cqe status可以看到 RoCE 驱动hns_roce_lite上报的错误 CQE 原始信息以及 HCCL 心跳检测模块heartbeat.cc汇总的 ROCOE CQE ERROR 事件[ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.612 [hns_roce_lite.c:630]hns_roce_lite_handle_error_cqe(630) : error cqe status: 0x15 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.622 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000000): 0x00041580 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.627 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000001): 0x00000000 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.630 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000002): 0x00000000 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.634 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000003): 0x1500047c [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.637 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000004): 0x00000000 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.640 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000005): 0x00000000 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.644 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000006): 0x00000000 [ERROR] ROCE(2040034,alltoall_test):2025-09-15-08:38:12.776.647 [hns_roce_lite.c:747]dump_err_cqe(747) : CQ(0x10) CQE(0x5) INDEX(0x00000007): 0x00000000 [ERROR] HCCP(2040034,alltoall_test):2025-09-15-08:38:12.776.650 [ra_hdc_lite.c:794]tid:2040458,ra_hdc_lite_period_poll_cqe : [create][ra_hdc_period_poll]failed CQE status[12], wr[0] [ERROR] HCCL(2040034,alltoall_test):2025-09-15-08:38:13.607.432 [heartbeat.cc:1229] [2040666][TaskExecStage][HeartbeatAbnormal][ROCE CQE ERROR]cqe error status[12], time:[2025-09-15 08:38:12.776654],localInfo{server[127.10.0.1],deviceId[127.10.0.1],deviceIp[127.11.0.1]}, remoteIP{server[127.10.0.2],deviceId[127.10.0.2],deviceIp[127.11.0.2]}这段日志揭示了 ERROR CQE 的完整传递链路可帮助理解底层机制驱动层hns_roce_lite_handle_error_cqe检测到错误 CQE并调用dump_err_cqe打印 CQ/CQE 索引及 CQE 原始内容0x1500047c 等HCCP 层ra_hdc_lite_period_poll_cqe周期性轮询 CQE 失败得到failed CQE status[12]HCCL 层心跳检测模块heartbeat.cc汇总后上报[ROCE CQE ERROR] cqe error status[12]并携带本端/远端的位置信息localInfo/remoteIP。三、可能原因ERROR CQE 的根因在于本端给对端发包后在指定的时间段内没有收到对端的确认回复此时表明本端和对端之间的网络通道出现异常、对端已断开连接、或连接状态差导致无法响应。归纳起来主要有两类网络因素网络通道异常例如网口间歇性断链、链路质量差导致报文重传超时进程因素对端进程异常退出或已进入资源销毁流程导致本端收不到回复从而产生 ERROR CQE 报错。需要特别说明的是status[12]代表RoCE 报文重传超时这是 ERROR CQE 中最常见的状态码其他状态码极为少见遇到后请联系技术支持处理。四、解决方法三步定位法第 1 步根据报错信息确认 ERROR CQE 远端首先从 HCCL 心跳异常日志中提取本端与对端的 device IP[ERROR] HCCL(2040034,alltoall_test):2025-09-15-08:38:13.607.432 [heartbeat.cc:1229] [2040666][TaskExecStage][HeartbeatAbnormal][ROCE CQE ERROR]cqe error status[12], time:[2025-09-15 08:38:12.776654],localInfo{server[127.10.0.1],deviceId[127.10.0.1],deviceIp[127.11.0.1]}, remoteIP{server[127.10.0.2],deviceId[127.10.0.2],deviceIp[127.11.0.2]}其中localIP和remoteIP分别代表本端和远端的 device IP对应日志中的deviceIp字段。请基于硬件资源信息找到对应 rank 所在的计算节点或日志锁定故障双方后再进行下一步排查。第 2 步排查网络问题查询网口闪断记录使用hccn_tool工具查询是否有网口闪断记录$ hccn_tool -i 0 -link_stat -g [devid 0]current time : Tue Oct 28 21:46:46 2025 [devid 0]link up count : 2 [devid 0]link down count : 1 [devid 0]link change records : [devid 0] Sun Oct 5 10:13:51 2025 LINK UP [devid 0] Sun Oct 5 10:13:50 2025 LINK DOWN [devid 0] Sun Oct 5 10:13:35 2025 LINK UP以上结果表示网口在10:13:50 2025时发生了端口断链LINK DOWN随后在10:13:51恢复LINK UP。此时若有集合通信算子执行则会有 ERROR CQE 产生需要进一步排查网口闪断的原因如光纤/光模块接触不良、交换机端口异常、链路误码率过高等。第 3 步排查对端进程是否先异常退出排查对端的业务进程在本端发生 ERROR CQE 时是否已先异常退出或已进入资源销毁流程。可以通过观察对端的业务日志或者 plog 日志确认对端进程的异常退出时间是否在本端发生 ERROR CQE 之前。若对端确实提前退出应进一步定位对端进程退出的根因如显存不足、段错误、被 OOM Killer 终止等。补充措施调大 RDMA 重传超时与重传次数若环境变量配置的HCCL_RDMA_TIMEOUT重传超时时间及HCCL_RDMA_RETRY_CNT重传次数比较小在链路状态不佳时容易出现 ERROR CQE 错误将环境变量调大即可。五、相关环境变量调优详解在确认网络与进程均无异常、但链路状态持续不佳的情况下可通过调优以下两个 RDMA 相关环境变量来提升容错能力。两个变量的详细规格见 HCCL_RDMA_TIMEOUT 与 HCCL_RDMA_RETRY_CNT。5.1 HCCL_RDMA_TIMEOUT配置重传超时时间系数该环境变量用于配置 RDMA 网卡重传超时时间的系数 timeout。RDMA 网卡重传超时时间最小值的计算公式为4.096μs * 2^timeout其中 timeout 为该环境变量配置值且实际重传超时时间与用户网络状况有关。不同产品形态下的取值范围与默认值如下产品形态取值范围默认值Ascend 950PR / Ascend 950DTAtlas 350 加速卡定制 RDMA 网卡[0, 31]设为 0 或 32 表示永不超时20Atlas A3 训练/推理系列产品[5, 20]20Atlas A2 训练/推理系列产品[5, 20]20Atlas 训练系列产品910 系列[5, 24]20Atlas 推理系列产品310P 系列[5, 24]20说明对于 Ascend 950 系列定制 RDMA 网卡该值为 verbs 的 NACK 重传间隔指数值与 verbs 接口定义的算法一致由用户根据选用的 RDMA 网卡规格自行配置。配置示例重传超时时间系数配置为 6则重传超时时间最小值为4.096μs * 2^6export HCCL_RDMA_TIMEOUT65.2 HCCL_RDMA_RETRY_CNT配置重传次数该环境变量用于配置 RDMA 网卡的重传次数需配置为整数取值范围为[1, 7]默认值为7。重传次数越大链路丢包时的容错能力越强但也会相应延长故障感知时间。配置示例重传次数配置为 5export HCCL_RDMA_RETRY_CNT55.3 调优建议当链路状态不佳、频繁出现 ERROR CQE 时建议优先将HCCL_RDMA_RETRY_CNT调大至接近默认最大值7并适当调大HCCL_RDMA_TIMEOUT在其产品允许的取值范围 [5, 20] 或 [5, 24] 内上调以延长单次报文重传的等待窗口。但需注意环境变量调大只是缓解手段若网口存在真实的闪断或物理链路故障仍需按第 2 步排查网络设备本身的问题从根源上消除 ERROR CQE。六、与集群心跳机制的关联ERROR CQE 的定位思路与 HCCL 集群心跳机制紧密相关。在心跳异常日志中ExceptionType字段可区分异常类型其中Error CQE Occurred网络丢包即对应本文讨论的 ERROR CQE 场景参见 进程卡死或对端心跳丢失示例Cluster Exception Location异常所在的节点信息IP/IDArrival Time异常广播到本端的时间ExceptionType异常类型包括心跳丢失Heartbeat Lost Occurred、进程卡死Stuck Occurred、网络丢包Error CQE Occurred等Possible Reason异常可能的发生原因及排查思路其中 Error CQE Occurred 对应排查异常节点是否发生了 cqe error。因此当同时出现心跳异常与 ERROR CQE 日志时应结合两边的 IP/时间信息交叉比对确认异常传播路径。七、日志获取建议如需获取更详细的 HCCL 内部模块运行信息用于辅助定位可开启调试日志环境变量HCCL_DEBUG_CONFIG详见 HCCL_DEBUG_CONFIG例如同时记录算法编排、任务编排与资源管理模块的日志export HCCL_DEBUG_CONFIGALG,TASK,RESOURCE运行日志位于$HOME/ascend/log/run目录下。结合 ERROR CQE 的打屏日志、CANN 日志与心跳日志即可完整还原故障时刻的通信链路状态。八、总结ERROR CQE 报错EI0013是 RoCE 报文重传超时引发的集群通信故障处理路径可归纳为先定位远端localIP/remoteIP→ 再查网络hccn_tool 网口闪断记录→ 再查对端进程异常退出时间比对→ 最后通过 HCCL_RDMA_TIMEOUT / HCCL_RDMA_RETRY_CNT 调优缓解。其中status[12]是最常见的重传超时状态码其他状态码极为少见遇到后请联系技术支持处理。【免费下载链接】hccl集合通信库Huawei Collective Communication Library简称HCCL是基于昇腾AI处理器的高性能集合通信库为计算集群提供高性能、高可靠的通信方案项目地址: https://gitcode.com/cann/hccl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考