建链接超时(EI0006)
原因分析
HCCL会在指定集群的每个Device上运行,并在集群间建立socket链接,若任一个rank或者通信链路在建链前/中发生异常,则会导致集群建链失败。常见的原因包括:
- 部分rank未执行到正确的建链阶段。
- 部分卡被某些耗时较长的任务阻塞,在超过socket建链超时等待时间(可通过HCCL_CONNECT_TIMEOUT配置,默认值为120秒)后才执行到对应阶段。
- 脚本等原因导致某些rank间的通信算子数量或者排序不一致。
- 节点间通信链路不通或者不稳定。
解决方法
收集所有卡的plog日志后,按以下步骤排查:
- 检查所有卡的报错情况,若有卡未报建链超时错误,请通过训练或者plog日志检查此卡是否存在业务卡死情况,若存在请定位根因。
- 若所有卡均上报建链超时错误,则检查错误日志中最早和最晚时间差异是否超过超时阈值,若超过阈值请定位最晚报错的卡执行较慢的原因或通过增大建链超时时间尝试解决(例如通过配置export HCCL_CONNECT_TIMEOUT=3600,请根据需要调整超时阈值)。
- 若时间差异未超过阈值,请检查各rank执行的集合通信算子数量是否一致,算子加载的顺序是否一致。HCCL要求一个通信域内各个rank上算子加载顺序保持一致。
如需查询tag和计算图中node name的对应关系,需开启INFO日志,在Host日志中搜索:
关键字1:GenerateOpTag:graph
关键字2:GenerateTask:graph
关键字1可以看到node的hash值,关键字2可以看到nodHash对应的NodeName,协助计算图排查。
- 检查集群中是否存在Device网口通信链路不通的情况,比较常见的原因:
- IP不在同一网段或子网掩码配置存在问题。
- IP冲突,集群中存在IP相同的两个rank。
- 交换机配置不在同一个vlan。
- 链路不通。
- 各rank的TLS(安全增强)设置不一致时也会导致建链失败。
可通过hccn tool命令来确认TLS是否一致,如不一致请参考随产品发布的《HCCN Tool接口参考》进行TLS配置。
《HCCN Tool接口参考》的获取方式为:单击Link进入企业业务网站的“昇腾计算 文档中心”,然后在“中心训练硬件”栏选择对应的硬件型号,单击进入对应的文档页面,即可在其中找到配套版本的《HCCN Tool接口参考》。
查询TLS状态命令:
hccn_tool -i 0 -tls -g hccn_tool -i 1 -tls -g hccn_tool -i 2 -tls -g hccn_tool -i 3 -tls -g hccn_tool -i 4 -tls -g hccn_tool -i 5 -tls -g hccn_tool -i 6 -tls -g hccn_tool -i 7 -tls -g
TLS switch值为0表示关闭,1表示开启。如果提示no certificate found,也表示TLS功能关闭。如果各个rank的TLS情况不一致,可使用hccn_tool工具配置TLS,或者关闭所有rank的TLS功能。
关闭TLS功能命令:
hccn_tool -i 0 -tls -s enable 0 hccn_tool -i 1 -tls -s enable 0 hccn_tool -i 2 -tls -s enable 0 hccn_tool -i 3 -tls -s enable 0 hccn_tool -i 4 -tls -s enable 0 hccn_tool -i 5 -tls -s enable 0 hccn_tool -i 6 -tls -s enable 0 hccn_tool -i 7 -tls -s enable 0
父主题: HCCL常见问题总结