昇腾社区首页
中文
注册

任务申请的总芯片数量为32,sp-block设置为32可以正常训练,sp-block设置为16无法完成训练,训练容器报错提示初始化连接失败

问题现象描述

在总线设备环境中,sp-block设置为32可以正常训练,sp-block设置为16无法完成训练,训练容器报错提示初始化连接失败,日志截图如下。

原因分析

当sp-block配置为32时,总线设备划分出来的逻辑超节点包含两个计算节点。由于任务申请的总芯片数量为32,因此本任务正好有一个逻辑超节点。

当sp-block配置为16时,总线设备划分出来的逻辑超节点包含一个计算节点。由于任务申请的总芯片数量为32,因此本任务正好有两个逻辑超节点。

总线设备中,不同逻辑超节点内部的计算节点之间使用RoCE网络通信,而在同一个逻辑超节点内部的计算节点之间采用HCCS网络通信。

经过上面的分析,可能的一个原因是由于sp-block配置为32时,任务只分配了一个逻辑超节点,逻辑超节点内部的计算节点采用HCCS网络通信。而sp-block配置为16时,任务分配了两个逻辑超节点,而位于不同逻辑超节点的计算节点之间采用RoCE网络通信。因此很有可能是因为底层的RoCE网络没有连通导致sp-block配置为16时任务初始化连接失败。

解决措施

可以通过hccn_tool工具测试两个计算节点之间的RoCE网络是否是连通的。方法如下:

  1. 执行如下命令获取ID为0的卡的IP地址。
    hccn_tool -i 0 -ip -g
  2. 执行如下命令ping其他逻辑超节点中的计算节点。
    hccn_tool -i 0 -ping -g address {其他逻辑超节点中任意计算节点的NPU卡的ip}
    • 如果能够ping通,说明RoCE网络没有问题。此时,需要根据具体的日志信息排查是否是其他问题。
    • 如果显示以下提示信息:3 packets transmitted, 0 received, 100.00% packet loss,说明RoCE网络是有问题的。此时需要解决计算节点之间RoCE网络连通性问题