NVIDIA HPC SDK 安装指南

1. Linux 上的安装

本节介绍如何在配备 NVIDIA GPU 的 Linux x86_64 或 Arm 服务器系统上从 tar 文件安装程序安装 HPC SDK。它涵盖本地和网络安装。

对于软件包管理器安装(例如,apt、dnf/yum、zypper),请参阅 HPC SDK 下载页面上的说明。

有关支持的处理器、Linux 发行版和 CUDA 版本的完整描述,请参阅 HPC SDK 发行说明

1.1. 准备在 Linux 上安装

Linux 安装需要在安装 HPC SDK 软件之前安装某些版本的 GNU 编译器集合(包括 gcc、g++ 和 gfortran 编译器)并在您的 $PATH 中。要确定您的系统上是否安装了此类编译器,请执行以下操作

  1. 创建一个 hello.c 程序。

    #include <stdio.h>
    int main() {
      printf("hello, world!\n");
      return 0;
    }
    
  2. 编译以创建可执行文件。

    $ gcc -o hello_c hello.c
    

    在生成的可执行文件上运行 file 命令。输出应类似于以下内容

    $ file ./hello_c
    hello_64_c: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for
    GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux
    2.6.9, not stripped
    
  3. 为了支持 C++ 编译,最低要求 g++ 版本为 4.4。更新的版本也可以。创建一个 hello.cpp 程序并调用 g++。在继续之前,请确保您能够首先编译、链接和运行简单的 hello.cpp 程序。

    #include <iostream>
    int main() {
      std::cout << "hello, world!\n";
      return 0;
    }
    
    $ g++ -o hello_cpp hello.cpp
    

    hello_cpp 二进制文件上运行 file 命令应产生与 C 示例类似的结果。

    注意

    对您的 gcc 编译器的任何更改都需要您重新安装 HPC SDK。

    在典型的本地安装中,默认安装基本目录是 /opt/nvidia/hpc_sdk

    如果您选择执行网络安装,则安装位置必须位于所有节点都可访问的共享文件系统上。

安装准备

  • 下载 HPC SDK 安装包后,在您的系统上打开一个 shell 命令窗口。

    安装说明假定您正在使用 csh、sh、ksh、bash 或某些兼容的 shell。如果您使用的 shell 与这些 shell 中的任何一个都不兼容,则在设置环境变量时需要进行适当的修改。

  • 验证您是否有足够的可用磁盘空间用于 HPC SDK 安装。

    • 未压缩的安装包需要 9.5 GB 的总可用磁盘空间用于 HPC SDK slim 包,以及 20 GB 用于 HPC SDK multi 包。

1.2. Linux 的安装步骤

请按照以下说明安装软件

  1. 解压缩 HPC SDK 软件。在以下说明中,将 <tarfile> 替换为您下载的文件名。在安装之前,使用以下命令序列解压缩 tar 文件。

    % tar xpfz <tarfile>.tar.gz
    

    tar 文件将解压缩 install 脚本和一个 install_components 文件夹到与 tar 文件同名的目录中。

  2. 运行安装脚本。通过从 <tarfile> 目录运行 [sudo] ./install 来安装编译器。

    重要提示

    安装脚本必须运行完成才能正确安装软件。

    为了成功运行此脚本完成,请准备好执行以下操作

    • 确定要执行的安装类型。

    • 定义安装目录的位置。默认值为 /opt/nvidia/hpc_sdk

    注意

    Linux 用户可以选择自动安装 HPC 编译器套件,而无需与通常的提示进行交互。这在大型机构环境中可能很有用,例如,在许多系统上使用脚本可以高效地完成 HPC 编译器的自动安装。

    要启用静默安装功能,请在运行安装脚本之前设置适当的环境变量。这些变量如下

    NVHPC_SILENT

    (必需)将此变量设置为“true”以启用静默安装。

    NVHPC_INSTALL_DIR

    (必需)将此变量设置为包含所需安装位置的字符串,例如 /opt/nvidia/hpc_sdk

    NVHPC_INSTALL_TYPE

    (必需)设置此变量以选择安装类型。接受的值为“single”(单系统安装)、“network”(网络安装)或“auto”(适用于两者的安装)。

    NVHPC_DEFAULT_CUDA

    (可选)以 XX.Y 的形式将此变量设置为所需的 CUDA 版本,例如 10.1 或 11.0。

    NVHPC_STDPAR_CUDACC

    (可选)设置此变量以强制 C++ stdpar GPU 编译默认情况下以特定的计算能力为目标,例如 60、70、75 等。

    HPC SDK 安装脚本将 HPC SDK 的所有二进制文件、工具和库安装在指定安装目录中的相应子目录中。如果选择“auto”安装类型,则首次在系统上使用 HPC SDK 时,还将在 $HOME/.config/NVIDIA 中创建一些配置文件。如果您的主目录在某些节点上不可访问或不可写,请不要选择“auto”安装类型。

  3. 查看文档。

    NVIDIA HPC 编译器文档在线提供 HTML 和 PDF 格式。

  4. 完成网络安装任务。

    注意

    如果您未安装网络安装,请跳过此步骤。

    对于网络安装,您必须在网络上每个将提供编译器和工具使用的系统上运行本地安装脚本。

    如果您的安装基本目录是 /opt/nvidia/hpc_sdk,则在网络上的每个系统上运行以下命令。

    /opt/nvidia/hpc_sdk/$NVARCH/25.1/compilers/bin/add_network_host

    此命令在 /opt/nvidia/hpc_sdk/$NVARCH/25.1/compilers/bin 目录中创建一个系统相关的文件 localrc.machinename

    Linux 的 HPC SDK 安装现已完成。如需安装相关困难方面的帮助,请在 NVIDIA 开发者论坛上联系我们。

    以下部分包含详细说明 HPC SDK 安装目录结构的信息,以及供最终用户初始化环境和路径设置以使用编译器和工具的说明。

1.3. 最终用户环境设置

软件安装完成后,必须初始化每个用户的 shell 环境才能使用 HPC SDK。

注意

每个用户必须发出以下命令序列以在使用 HPC SDK 之前初始化 shell 环境。

HPC SDK 将版本号保存在架构类型目录(例如 Linux_x86_64/25.1)下。架构名称的格式为 `uname -s`_`uname -m`。对于 Arm 服务器平台,预期的架构名称为“Linux_aarch64”。以下指南将必要的 uname 命令的值设置为“NVARCH”,但您可以根据需要显式指定架构名称。

为了使 HPC SDK 可用

在 csh 中,使用以下命令

% setenv NVARCH `uname -s`_`uname -m`
% setenv NVCOMPILERS /opt/nvidia/hpc_sdk
% setenv MANPATH "$MANPATH":$NVCOMPILERS/$NVARCH/25.1/compilers/man
% set path = ($NVCOMPILERS/$NVARCH/25.1/compilers/bin $path)

在 bash、sh 或 ksh 中,使用以下命令

$ NVARCH=`uname -s`_`uname -m`; export NVARCH
$ NVCOMPILERS=/opt/nvidia/hpc_sdk; export NVCOMPILERS
$ MANPATH=$MANPATH:$NVCOMPILERS/$NVARCH/25.1/compilers/man; export MANPATH
$ PATH=$NVCOMPILERS/$NVARCH/25.1/compilers/bin:$PATH; export PATH

一旦编译器可用,您可以使用以下命令使 OpenMPI 命令和 man 手册可访问。

% set path = ($NVCOMPILERS/$NVARCH/25.1/comm_libs/mpi/bin $path)
% setenv MANPATH "$MANPATH":$NVCOMPILERS/$NVARCH/25.1/comm_libs/mpi/man

以及 bash、sh 和 ksh 中的等效命令

$ export PATH=$NVCOMPILERS/$NVARCH/25.1/comm_libs/mpi/bin:$PATH
$ export MANPATH=$MANPATH:$NVCOMPILERS/$NVARCH/25.1/comm_libs/mpi/man

或者,HPC SDK 还提供环境模块来配置 shell 环境。在 csh 中,使用以下命令

% setenv MODULEPATH $NVCOMPILERS/modulefiles:"$MODULEPATH"
% module load nvhpc

以及 bash、sh 和 ksh 中的等效命令

$ export MODULEPATH=$NVCOMPILERS/modulefiles:$MODULEPATH
$ module load nvhpc

声明

注意

所有 NVIDIA 设计规范、参考板、文件、图纸、诊断程序、列表和其他文档(统称为“资料”)均按“原样”提供。NVIDIA 不对这些资料作任何明示、暗示、法定或其他方面的保证,并且明确声明不承担所有关于不侵权、适销性和针对特定用途适用性的暗示保证。

所提供的信息据信是准确可靠的。但是,NVIDIA 公司对使用此类信息造成的后果或因其使用而可能导致的侵犯第三方专利或其他权利的行为不承担任何责任。未通过暗示或其他方式授予 NVIDIA 公司专利权项下的任何许可。本出版物中提及的规格如有更改,恕不另行通知。本出版物取代并替换以前提供的所有其他信息。未经 NVIDIA 公司明确书面批准,NVIDIA 公司产品不得用作生命维持设备或系统中的关键组件。

商标

NVIDIA、NVIDIA 徽标、CUDA、CUDA-X、GPUDirect、HPC SDK、NGC、NVIDIA Volta、NVIDIA DGX、NVIDIA Nsight、NVLink、NVSwitch 和 Tesla 是 NVIDIA Corporation 在美国和其他国家/地区的商标和/或注册商标。其他公司和产品名称可能是与其关联的各自公司的商标。