NVIDIA® CUDA®工具包为创建高性能 GPU 加速应用提供了发展环境。使用 CUDA 工具包,您可以在 GPU 加速嵌入式系统、桌面工作站、企业数据中心、基于云的平台和 HPC 超级计算机上开发、优化和部署您的应用程序。工具包包括 GPU 加速库、调试和优化工具、C/C++编译器以及一个运行时库,以便在包括 x86、Arm 和 POWER 在内的主要架构上构建和部署您的应用程序。科学家和研究人员可以利用内置功能在多 GPU 配置中分配计算,开发从单个 GPU 工作站到拥有数千个 GPU 的云安装的应用程序。
简单介绍下我们就来进行cuda tookit的安装,我这里选择的是cuda11.8
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run chmod +x cuda_11.8.0_520.61.05_linux.run ./cuda_11.8.0_520.61.05_linux.run
安装的时候需要注意,不需要再勾选驱动了,我们已经进行了驱动的安装,直接输入accept,然后切换到install进行安装,安装完以后需要添加一些环境变量
echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> /etc/profile source /etc/profile nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Wed_Sep_21_10:33:58_PDT_2022 Cuda compilation tools, release 11.8, V11.8.89 Build cuda_11.8.r11.8/compiler.31833905_0
cuda tookit这样就安装好了,由于11.8 的cuda tookit不再包含cuda samples,所以我们还需要自行进行安装cuda samples进行测试,相关包可以在这里下载:https://github.com/NVIDIA/cuda-samples/releases,注意这个samples包也需要对应cuda版本。
我下载的也是cuda11.8这个版本的
tar -zxvf cuda-samples-11.8.tar.gz cd /tmp/cuda-samples-11.8/Samples/1_Utilities/deviceQuery make #编译,然后会生成deviceQuery文件 ./deviceQuery
还有其他的工具也可以进行测试,例如位宽测试工具
cd /tmp/cuda-samples-11.8/Samples/1_Utilities/bandwidthTest make #编译 ./bandwidthTest
接着我们安装nccl,也需要和cuda版本对应起来,如果需要其他版本可以去这里下载或者寻找对应版本的安装方法:https://developer.nvidia.com/nccl/nccl-legacy-downloads
yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo yum install libnccl-2.16.5-1+cuda11.8 libnccl-devel-2.16.5-1+cuda11.8 libnccl-static-2.16.5-1+cuda11.8
安装好以后可以使用下面命令进行验证
cat /usr/include/nccl.h | grep "#define NCCL_MAJOR" #define NCCL_MAJOR 2 ll /usr/lib64/ | grep -i nccl
可以看到安装版本的nccl库文件,nccl这里就是安装好了。
最后我们来安装openmpi
OpenMPI是一个开源的消息传递接口(Message Passing Interface,MPI)的实现,用于并行计算。它允许多个计算节点之间进行通信和数据交换,从而实现分布式计算。
这里我们选择的4.1的最新版4.1.6,可以去https://www.open-mpi.org/software/ompi/v4.1/下载
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.gz tar -zxvf openmpi-4.1.6.tar.gz mkdir -p /usr/local/openmpi cd openmpi-4.1.6 ./configure --prefix=/usr/local/openmpi make && make install vi /etc/profile export PATH=/usr/local/openmpi/bin:$PATH source /etc/profile
然后简单测试下mpi,在examples目录里面有一个hellow.c的c源文件,我们通过mpi接口对其进行编译,然后用来测试
mpicc hello_c.c -o hellow mpirun --allow-run-as-root -np 4 ./hellow
--allow-run-as-root: 这个选项允许mpirun以root用户身份运行。通常,出于安全考虑,mpirun不允许以root用户身份运行。
-np: 表示number of processors, 即进程数,根据自己需要进行修改,最后打印如下:
打印如上述结果说明mpi安装成功