NVIDIA HPC SDK提供了使用标准的C/C++和Fortran的编译器以及OpenACC指令和CUDA实现HPC建模和模拟应用的GPU加速。此工具能够让代码人员对源代码进行快速移植、并行和优化GPU加速,可以更大限度地提高科学和工程吞吐量,更大限度地减少编码时间。NVIDIA HPC SDK是免费软件。(请注意免费软件、开源软件和自由软件的区别)
我自己需要NVIDIA HPC SDK中提供的工具包括:(以下工具在CUDA Toolkit中可能不提供)
(1) PGI Fortran编译器
(2) cuBLAS、cuSOLVER等GPU并行数学函数库
(3) Nsight 性能分析器
(4) OpenACC支持
(5) 多GPU并行支持
目前,PGI Fortran编译器已经并入NVIDIA HPC SDK,所以必须使用NVIDIA HPC SDK才能使用CUDA Fortran语言。NVIDIA HPC SDK不提供Windows版本,只能在Linux下安装和使用。最后一个Windows版本的PGI Fortran编译器是19.10,官网已经不再提供,但是如果购买商业使用的话应该还是可以下载到的。
如果需要下载安装文件进行本地安装,则进入NVIDIA HPC SDK下载地址:(可能会有更改)
https://developer.nvidia.com/nvidia-hpc-sdk-downloads
提醒注意:Nvidia CUDA HPCSDK中包含了CUDA Toolkit,因此如果需要安装HPC SDK,则不再需要单独安装CUDA Toolkit。CUDA Toolkit会在安装路径中的/opt/nvidia/hpc_sdk/Linux_x86_64/22.x/cuda (22.x是版本号)
在接受许可协议后,在处理器平台中选择Linux x86_64,可以选择是与最新版本的CUDA Toolkit合集,或者额外包含前两个版本的CUDA Toolkit合集。此处建议选择最新版本合集即可。
选择分发版本,如果选择Linux x86_64 Tarball,即下载后解压再本地安装。如果是Ubuntu系统,建议选择Linux x86_64 DEB,加入软件源后直接在线安装,经测试,在线安装的方式要更简单。
点击Linux x86_64 DEB后,按照网页指引,输入终端,等待安装完成。提醒注意:建议取消BIOS中的Security Boot选项。
安装完成后,终端输入”nvc -V“,会发现找不到命令,因为需要配置环境变量(Linux装软件几乎都需要配置环境变量)。配置环境变量的方法可以打开下载页面的Documentation,在Installation Guide中查看,或者
打开环境变量文件(vim用法略过):
vim ~/.bashrc
输入
NVARCH=`uname -s`_`uname -m`; export NVARCH NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS MANPATH=$MANPATH:$NVCOMPILERS/$NVARCH/22.5/compilers/man; export MANPATH PATH=$NVCOMPILERS/$NVARCH/22.5/compilers/bin:$PATH; export PATH
提醒注意:如果终端命令nvcc -V无反应,则CUDA及CUDA库仍然需要单独指定
使环境变量生效
source ~/.bashrc
其中,22.5为版本号,需要替换为安装时使用的版本号x.x。
完成环境变量配置后,在终端输入命令”nvc -V“会出现对应编译器的版本号。NVIDIA HPC SDK安装完成,已经可以开始使用了!
另外,以上步骤在WSL 2中同样适用,虽然第一次安装WSL2时可能已经安装了Nvidia显卡驱动,但是如果有硬件更改,可能需要提前安装对应的nvidia GPU driver。