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

应知应会

在故障定位之前,请确保您已熟悉HCCL相关基本概念及故障定位辅助功能。

对于HCCL来说,故障码会涵盖大部分常见问题,如果报错中未包含故障码信息,或故障码信息为EI9999,可能为较为少见的故障场景或HCCL内部问题,请基于实际的CANN日志和代码进行分析,如果无法解决请联系技术支持。

对于没有清晰首报错的问题,大集群故障定位时,需要梳理每个rank的行为,通过rank之间的依赖关系找到根节点。面对这个难题,HCCL提供了建链根节点定位能力和集群心跳能力,并会在常见问题中给出诊断结果,相关原理请参见建链失败定位思路集群心跳机制

本文档适用场景如下:

  • 本文档对HCCL的实现机制的描述,仅用于解释各类故障模式机理,辅助分析故障现象和定位原因。如果在运行机制方面的内容和该机制相关介绍文档不符,请优先参考运行机制对应文档。
  • 本文档中的部分CANN日志示例随着版本更新,内容会有所调整,用户可重点关注日志中的关键信息,如有较大的差异,请以实际的日志信息为准。
  • 当业务发生HCCL异常时,在CANN日志中会有HCCL组件的报错日志信息,若在CANN日志中没有发现HCCL组件的报错日志,需排查是否有其他组件的报错信息,若无报错,请注意训练脚本本身有无异常、是否存在core dump或进程卡住等异常情况。

故障诊断相关环境变量

  • HCCL_CONNECT_TIMEOUTHCCL_EXEC_TIMEOUT

    HCCL在建链阶段和执行阶段的超时时间,建议HCCL_CONNECT_TIMEOUT配置的时间小于HCCL_EXEC_TIMEOUT配置的时间,以保证复杂场景下能够正确的上报首报错信息,以区分异常业务进程被阻塞的原因是本端还是远端。

  • HCCL_ENTRY_LOG_ENABLE

    HCCL算子级入参记录开关,如果集群行为一致性问题无法通过其他手段锁定异常原因时,可以使能此环境变量,记录不同rank上的集合通信行为,通过卡间横向比对辅助找到行为差异引入点。

  • HCCL_DEBUG_CONFIG

    HCCL模块级日志开关,进行算子开发调试时可以通过此配置分析算子内部的算法选择、任务编排等日志信息。

  • HCCL_DFS_CONFIG

    HCCL高级故障探测配置能力,详见环境变量说明,建议使用默认值。

HCCL相关日志说明

HCCL的日志信息会记录在CANN日志中,CANN的相关日志说明请参考日志参考

  • 当HCCL报错时会在CANN日志的debug目录下打印关键的故障信息;同时在使用部分训练框架的业务场景下,HCCL也会在业务的日志中打印关键的报错信息;
  • HCCL在CANN日志的run目录下会默认记录一些关键运行日志,如通信域的初始化与析构(默认打印)、通信算子的下发(需开启HCCL_ENTRY_LOG_ENABLE环境变量)等,关键日志示例如下:
  • 通信域初始化。
    Entry-HcclGetRootInfo:rootInfo[0x7fffcd65f130], deviceLogicId[0]
    Entry-HcclCommInitRootInfoConfigInner:ranks[16], rank[0], rootinfo: host ip[127.10.0.1] port[60000] nicDeploy[1] identifier[group_name_0], deviceLogicId[0]
    • ranks:通信域大小。
    • rank:当前rank在通信域内的rank编号。
    • rootinfo:root节点的信息。
    • identifier:通信域名。
  • 通信域析构。
    Entry-HcclCommDestroy: op_base comm destroy begin
  • 通信算子下发。
    Entry-HcclAllReduce: tag[AllReduce_127.10.0.1%eth1_30000_0_1736576907435382], sendBuf[0x12e7bf550000], recvBuf[0x12e7bf550000], count[531260224], dataType[float32], op[sum], localRank[0], streamId[5],comm[0x331c9c00], deviceLogicId[0]
    • tag:通信算子标识符。
    • sendBuf:输入数据地址指针。
    • recvBuf:输出数据地址指针。
    • count:数据量。
    • dataType:数据类型。
    • op:reduce计算类型。
    • localRank:本端rank号。
    • stream:通信算子执行流。
    • comm:通信域指正。
    • deviceLogicid:通信算子下发的设备逻辑Id。

同时如果想要查询已经配置成功的环境变量,其配置及实际生效值会被打印在CANN日志的run/plog目录下,可以通过检索"externalinput"的关键字查询每个进程的环境变量实际生效值,例如执行:grep -r "externalinput" run/plog/plog-xxx.log,得到以下信息:

[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.615 [externalinput.cc:372] [925892]HCCL_CONNECT_TIMEOUT set by default to [120]s
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.622 [externalinput.cc:333] [925892]HCCL_EXEC_TIMEOUT set by default to [1836]s
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.629 [externalinput.cc:437] [925892]HCCL_INTRA_PCIE_ENABLE set by default to [1], HCCL_INTRA_ROCE_ENABLE set by default to [0]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.636 [externalinput.cc:516] [925892]environmental variable PROFILING_MODE and GE profiling option is not set, default: false
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.641 [externalinput.cc:610] [925892]HCCL_WHITELIST_DISABLE set by default to [1]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.647 [externalinput.cc:654] [925892]HCCL_IF_IP is not set
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.656 [externalinput.cc:708] [925892]HCCL_SOCKET_IFNAME set by environment to [abc]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.661 [externalinput.cc:677] [925892]HCCL_SOCKET_FAMILY is not set and is used by default [AF_INET]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.665 [externalinput.cc:639] [925892]HCCL_IF_BASE_PORT set by default to [60000]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.731 [externalinput.cc:1143] [925892][Parse][CannVersion]success, CannVersion is 8.5.T5.0.B029
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.744 [externalinput.cc:904] [925892]HCCL_RDMA_TC set by default to [132]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.749 [externalinput.cc:939] [925892]HCCL_RDMA_SL set by default to [4]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.839 [externalinput.cc:984] [925892]HCCL_RDMA_TIMEOUT set by default to [20]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.850 [externalinput.cc:1018] [925892]HCCL_RDMA_RETRY_CNT set by default to [7]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.854 [externalinput.cc:1156] [925892]HCCL_BUFFSIZE set by default to [200]M
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.859 [externalinput.cc:395] [925892]HCCL_DETERMINISTIC set by default to [false]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.863 [externalinput.cc:1202] [925892]HCCL_DIAGNOSE_ENABLE set by default to [0]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.868 [externalinput.cc:1290] [925892]HCCL_ENTRY_LOG_ENABLE set by default to [0]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.873 [externalinput.cc:1311] [925892]HCCL_INTER_HCCS_DISABLE is not set, default value is FALSE.
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.883 [externalinput.cc:1378] [925892]environmental variable HCCL_OP_EXPANSION_MODE is [AIV], aicpuUnfold[0], aivMode[1], enableFfts[1]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.889 [externalinput.cc:1227] [925892]HCCL_RDMA_QPS_PER_CONNECTION is set to default value [1]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.893 [externalinput.cc:1260] [925892]HCCL_MULTI_QP_THRESHOLD is set to default value [512]KB
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.912 [externalinput.cc:1495] [925892][ParseRetryEnable] HCCL_OP_RETRY_ENABLE set by environment variable to [L0:0,L1:0,L2:0].
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.917 [externalinput.cc:1507] [925892]HCCL_OP_RETRY_PARAMS is not set, default value MaxCnt is [1], HoldTime is [5000]ms, IntervalTime is [1000]ms
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.923 [externalinput.cc:1538] [925892]HCCL_LOGIC_SUPERPOD_ID is not set, default value[]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.927 [externalinput.cc:311] [925892]HCCL_RDMA_PCIE_DIRECT_POST_NOSTRICT set by default to [EmptyString], rdmaFastPost is [0]
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.932 [externalinput.cc:565] [925892][Parse][MultiQpSrcPortConfigPath]environmental variable HCCL_RDMA_QP_PORT_CONFIG_PATH is empty
[INFO] HCCL(925892,alltoall_test):2025-10-28-16:34:59.627.937 [externalinput.cc:1571] [925892]HCCL_DEBUG_CONFIG is not set, debugConfig set by default to 0x0