当前位置: 首页 > news >正文

Pytorch lightning多机多卡训练通讯问题(NCCL error)排查

一、问题

单机多卡可以正常训练模型,多机多卡数据加载完成后卡住不动,排查两台机器可以ping通,表明网络没有问题,查看bug信息是NCCL通信问题。报错信息大致如下:
torch.distributed.DistBackendError: NCCL error in: …/torch/csrc/distributed/c10d/ProcessGroupNCCL.cpp:1333, internal error - please report this issue to the NCCL developers, NCCL version 2.18.1 ainode01: ncclInternalError: Internal check failed. ainode01: Last error

NCCL是英伟达基于NCIDIA-GPU的一套开源的集合通信库,如其官网描述:NVIDIA集合通信库(NCCL)实现了针对NVIDIA GPU性能优化的多GPU和多节点集合通信原语。NCCL提供了诸如all-gather, all-reduce, broadcast, reduce, reduce-scatter等实现,这些实现优化后可以通过PCIe和NVLink等高速互联,从而实现高带宽和低延迟。因为NCCL则是NVIDIA基于自身硬件定制的,能做到更有针对性且更方便优化,故在英伟达硬件上,NCCL的效果往往比其它的通信库更好。

在大多数情况下,NCCL(https://developer.nvidia.com/nccl)作为底层的集合通信库为分布式深度学习框架提供了多机通讯能力、我们只要安装即可,在分布式深度学习相关的任务或代码中通常感知不到其存在。除深度学习框架以外、Horovod通常也依赖nccl作为底层的集合通信库。

根据报错提示猜测是两台机器的通信出了问题,需要给NCCL指定用于通信的网络接口名称,即网卡名。

二、解决

apt-get update && apt-get install -y net-tools

终端输入ifconfig查看自己的网卡名:
在这里插入图片描述

(可能存在多个网卡,请选择开通的实例独立IP及其对应的网卡,一般网卡名为eth1)

在.bashrc中加入

export NCCL_SOCKET_IFNAME=eth1

参考:

1、https://www.autodl.com/docs/distributed_training/
2、https://github.com/NVIDIA/nccl/issues/1141#issuecomment-1882357793
3、https://www.cnblogs.com/zl1991/p/15357532.html

http://www.lryc.cn/news/473151.html

相关文章:

  • React如何实现Vue的keepAlive功能
  • 在 Ubuntu 22.04 LTS 上安装 NVM (Node Version Manager) 管理和切换不同版本的 Node.js npm
  • 如何搭建题库管理小序❓
  • Spring Boot框架下校园社团信息管理的创新实践
  • vscode clangd for cuda 插件配置
  • 软件测试学习笔记丨SeleniumPO模式
  • 研发效能DevOps: Vite 使用 Vue Router
  • 记第一次本地编译seatunnel源码
  • 《云主机配置全攻略》
  • RHCE nginx架构和安装
  • Jmeter自动化实战
  • 构建高效的Java SOCKS5代理:从零开始的网络转发实现
  • spring-boot(绑定配置文件及应用)
  • Mac OS 搭建MySQL开发环境
  • windows下安装python库wordCloud报错
  • Spring IOC 自动装配(注入)
  • Go使用SIMD指令——以string转为整数为例
  • 分享资源合集
  • C#/WinForm 鼠标穿透自定义区域截图(后续实现录屏)
  • 基于SpringBoot的“社区维修平台”的设计与实现(源码+数据库+文档+PPT)
  • 图书管理系统汇报
  • 【发版通知】FormMaking 表单设计器新版发布,赋能企业实现低代码开发!
  • 计算机科学与技术-毕业设计选题推荐
  • 《C++音频频谱分析:开启声音世界的神秘之门》
  • GitHub 上传项目保姆级教程
  • 联想笔记本电脑睡眠后打开黑屏解决方法
  • 计算机网络:网络层 —— 路由选择与静态路由配置
  • [LeetCode-55]基于贪心算法的跳跃游戏的求解(C语言版)
  • C# 将批量图片转为PDF文件
  • 大模型面试题63题(1-11)