华为云AI开发平台ModelArts训练作业运行失败,出现NCCL报错_云淘科技

问题现象

训练作业的状态“运行失败”,查看训练作业的“日志”,存在NCCL的报错,例如“NCCL timeout”、“NCCL WARN Bootstrap : no socket interface found”或“NCCL INFO Call to connect returned Connection refused, retrying”。

原因分析

NCCL是一个提供GPU间通信原语的库,实现集合通信和点对点发送/接收原语。当训练作业出现NCCL的报错时,可以通过调整NCCL的环境变量尝试解决问题。

处理步骤

进入状态“运行失败”的训练作业详情页,单击“日志”页签,查看NCCL报错。

若出现报错“NCCL timeout”,则表示InfiniBand Verbs超时。单击右侧“重建”,重新创建训练作业,设置环境变量“NCCL_IB_TIMEOUT=22”,提交训练作业后等待作业完成。
若出现报错“NCCL WARN Bootstrap : no socket interface found”或“NCCL INFO Call to connect returned Connection refused, retrying”,则表示NCCL无法找到通信网卡或者是无法正常访问IP地址。需要排查训练代码中是否有设置NCCL_SOCKET_IFNAME环境变量,该环境变量由系统自动注入,训练代码中无需设置。训练代码去除NCCL_SOCKET_IFNAME环境变量设置逻辑后,单击右侧“重建”,重新创建训练作业,提交训练作业后等待作业完成。

等待训练作业是否变成“已完成”状态。

是,故障处理完成。
否,则联系技术支持排查节点状态。

建议与总结

环境变量NCCL_SOCKET_IFNAME用于指定通信的网卡名称。“NCCL_SOCKET_IFNAME=eth0”表示仅使用eth0网卡通信。该环境变量由系统自动注入,由于通信网卡名称不固定,因此训练代码不应默认设置该环境变量。
环境变量NCCL_IB_TIMEOUT用于控制InfiniBand Verbs超时。NCCL使用的默认值为18,取值范围是1~22。

父主题: 训练作业运行失败

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家