在进行模型分布式训练时遇到报错“RuntimeError: Gloo connectFullMesh failed ...”
问题描述
- 报错文本
…… [E ProcessGroupGloo.cpp:138] Gloo connectFullMesh failed with [...] no error …… RuntimeError: Gloo connectFullMesh failed with [...] no error
问题分析
- 模型进行分布式训练时,gloo是torch原生cpu协议,当有多个网口时,可能会报“RuntimeError: Gloo connectFullMesh failed ...”。
- 由于gloo协议的限制,当bond4网口超过60个时,可能会报“RuntimeError: Gloo connectFullMesh failed ...”。
处理方法
- 当有多个网口时,建议设置以下环境变量,命令如下:
export GLOO_SOCKET_IFNAME=网口名称
通过ifconfig命令可以找到与机器IP相同的网口名称。
- 当bond4网口超过60个时,考虑用其他网口代替,比如用GE网口进行替换,执行如下命令:
export GLOO_SOCKET_IFNAME=enp189s0f0
“enp189s0f0”为GE网口的名称,需根据实际情况进行替换。
父主题: 模型分布式训练常见问题