searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

NCCL多机环境部署(NCCL+CUDA+MPI)

2023-10-09 08:40:08
631
0

(一)、什么是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包

    各组件的作用:

  1. libnccl:NCCL的运行时库,包含了NCCL的共享库文件。

  2. libnccl-devel:NCCL的开发包,包含了头文件和其他开发工具,能够开发使用NCCL的应用程序。它

  3. 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执行文件的位置

注意:这里的可执行文件(mpicc和mpiexec)是32位,因为64位缺少相关文件,会导致无法运行

 

0条评论
0 / 1000
水是醒着的冰
1文章数
0粉丝数
水是醒着的冰
1 文章 | 0 粉丝
水是醒着的冰
1文章数
0粉丝数
水是醒着的冰
1 文章 | 0 粉丝
原创

NCCL多机环境部署(NCCL+CUDA+MPI)

2023-10-09 08:40:08
631
0

(一)、什么是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包

    各组件的作用:

  1. libnccl:NCCL的运行时库,包含了NCCL的共享库文件。

  2. libnccl-devel:NCCL的开发包,包含了头文件和其他开发工具,能够开发使用NCCL的应用程序。它

  3. 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执行文件的位置

注意:这里的可执行文件(mpicc和mpiexec)是32位,因为64位缺少相关文件,会导致无法运行

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0