(一)、什么是NCCL
NCCL(NVIDIA Collective Communications Library)是由 NVIDIA 开发的一种高性能的并行计算库,专门用于加速多 GPU 系统上的通信操作。它被广泛用于深度学习和高性能计算领域,特别是在训练深度神经网络时,以加速跨多个 GPU 设备的数据传输和通信。
(二)、安装NVIDIA显卡驱动
-
检查操作系统信息
uname -a
cat /etc/redhat-release
- 查看nvidia显卡相关信息
lspci -nn | grep -i nvidia
-
卸载原来的驱动
的驱动为430.46版本,版本太老,不支持NCCL和CUDA,因此需要卸载
找到原来的安装包文件,使用以下命令卸载,并重启机器:
NVIDIA-Linux-x86_64-430.46.01run --uninstall
reboot
- 确认安装包并下载
根据GPU型号、系统和CUDA版本选择合适的驱动,下载到本地并上传至服务
安装:
chmod +x NVIDIA-Linux-x86_64-515.105.01.run
./NVIDIA-Linux-x86_64-515.105.01.run -no-x-check
如果出现警告可以不用理会,直接继续,直到安装完成。
测试是否安装完成
nvidia-smi
可以看见系统版本,最高支持的cuda版本,以及GPU信息
(三)、安装CUDA
-
下载CUDA安装包,选择安装包时,需要关注驱动版本和cuda的对应关系
-
给安装权限,安装CUDA
chmod +x cuda_11.4.1_470.57.02_linux.run
./cuda_11.4.1_470.57.02_linux.run
安装过程注意:会问你是否需要下载驱动不要下载,即选择否,因为刚刚已经安装了驱动
-
配置环境变量
将以下内容添加到~/.bashrc文件中。打开文件
vim ~/.bashrc
在文件末尾添加如下两行,注意cuda的安装版本
export PATH=/usr/local/cuda-11.4/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
使用以下命令刷新~/.bashrc配置文件,使得配置生效。
source ~/.bashrc
验证cuda是否安装:
nvcc -V
(三)、安装NCCL
-
下载NCCL库的rpm包,注意需要下载对应cuda版本的NCCL
-
安装完成后,进入/var/nccl-local-repo-rhel7-2.11.4-cuda11.4,分别安装 libnccl libnccl-devel libnccl-static的rpm包
各组件的作用:
-
libnccl:NCCL的运行时库,包含了NCCL的共享库文件。
-
libnccl-devel:NCCL的开发包,包含了头文件和其他开发工具,能够开发使用NCCL的应用程序。它
-
libnccl-static:NCCL的静态库。
(四)、安装MPI
安装openmpi:
mpi目前有两种可以安装的版本:openmpi和mpich。这里安装openmpi
进入openmpi及其相关的依赖包的目录,执行
rpm -Uvh *.rpm --force --nodeps --replacepkgs
将执行文件和库文件路径加入环境变量中:
echo 'export PATH=$PATH:/usr/lib/openmpi/lib/' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/openmpi/lib/' >> ~/.bashrc
source ~/.bashrc
具体路径参看mpicc和mpiexec执行文件的位置