下载
中文
注册

在进行模型分布式训练时遇到报错“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网口的名称,需根据实际情况进行替换。