Ubuntu20.04部署NCCL和InfiniBand网卡驱动
1.环境情况
带有NVLink和InfiniBand网卡的服务器
操作系统: Ubuntu 20.04.6 Server 64位版本
系统盘:1TB SSD *2 RAID1
最小化安装操作系统,细节就不讲述了,可以看我另一篇文章如何安装。
2.安装NVIDIA驱动、CUDA等
本文为方便环境安装,全部采用root账号。
先替换一下APT源到国内,以下是华为源替换方式,可去华为查看详细:
禁用nouveau:
vi /etc/modprobe.f  #追加如下两个参数到该文件
blacklist nouveau
options nouveau modeset=0
update-initramfs -u      #重新生成initramfs
reboot    #重启一次操作系统
lsmod | grep nouveau    #重启完成后检查一下nouveau是否禁用成功,否则重新检查禁用情况
安装NVIDIA驱动:
apt install nvidia-driver-525    #安装NVIDIA驱动,版本号525,安装完成后执行nvidia-smi验证是否正常
安装NVIDIA CUDA-toolkit:
网卡驱动装不上可以到NVIDIA参考安装方式,本文采用runfile(local)方式安装,如下图所示:(放不了链接,自行百度)
chmod +x cuda_12.0.0_525.60.13_linux.run      #授予安装包执行权限
sh cuda_12.0.0_525.60.13_linux.run            #运行安装包
vi ~./bashrc        #追加下面参数到该文件
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
nvcc --verison    #验证CUDA是否安装正常
输入appect回车,去掉驱动安装,上面已经安装好驱动:
安装nccl:
可以到NVIDIA参考安装方式,如下图所示:(放不了链接,咨询百度一下,需要注册)
apt install libnccl2=2.18.5-1+cuda12.0 libnccl-dev=2.18.5-1+cuda12.0  #安装对应cuda12.0的nccl,上面我们安装的CUDA12.0
apt install nvidia-fabricmanager-525  #如果是多卡机,并且有NVLink,需要安装nvidia-fab
ricmanager,和驱动保持版本一致
安装nv-peer-memory
#克隆nv-peer-memory代码
cd nv_peer_memory  #进入代码目录
./build_module.sh    #运行脚本,自动构建
cd /tmp    #进入tmp目录
tar xzvf nvidia-peer-memory_    #解压刚刚自动生成的压缩包
cd nvidia-peer-memory-1.3    #进入解压的目录
dpkg-buildpackage -us -uc    #制作deb包
dpkg -i ../nvidia-peer-memory-dkms_1.2-0_all.deb    #安装构建好的deb包
lsmod | grep peer    #检查nv-peer-memory安装是否正常
安装Mellanox网卡OFED驱动:
本文以“MLNX_OFED_LINUX-5.4-3.7.5.0-ubuntu20.”为例,可以到NVIDIA下载,如下图:
tar zxvf MLNX_OFED_LINUX-5.4-3.7.5.0-ubuntu20.    #解压压缩包
cd MLNX_OFED_LINUX-5.4-3.7.5.0-ubuntu20.04-x86_64    #进入解压好的目录
apt install python3 gcc build-essential dh-python dh-autoreconf python3-distutils debhelper make quilt pkg-config bzip2 -y  #安装相关依赖软件包
./mlnxofedinstall --add-kernel-support    #安装OFED,注意这里可能会引起网络短暂断开,建议使用screen丢进后台安装,避免断网后中断安装
安装nccl-test:
cd /home    #进入home目录
#克隆nccl-test代码
cd nccl-tests  #进入代码目录
make  MPI=1 MPI_HOME=/usr/mpi/gcc/openmpi-4.1.2a1 -j 16  #编译nccl-test,注意MPI=1是多机测试才需要的,根据自身情况添加,-j 16根据自身CPU核数修改线程数
cd /home/nccl-tests/build    #进入改目录
./all_reduce_perf -b 8 -e 128m -f 2 -g 1    #验证nccl,如下图就表示安装成功了