nvhpc

简介

NVIDIA HPC 软件开发套件 (SDK) 包含经过验证的编译器、库和软件工具,对于更大程度提高开发者的工作效率以及 HPC 应用的性能和可移植性至关重要。

NVIDIA HPC SDK C、C++ 和 Fortran 编译器支持使用标准 C++ 和 Fortran、OpenACC® 指令和 CUDA® 实现 HPC 建模和模拟应用的 GPU 加速。 GPU 加速的数学库可更大限度地提升常用 HPC 算法的性能,而经过优化的通信库支持基于标准的多 GPU 和可扩展的系统编程。 性能分析和调试工具可简化 HPC 应用的移植和优化流程,而容器化工具支持在本地或云端轻松部署。 HPC SDK 支持 NVIDIA GPU 和 Arm、OpenPOWER 或运行 Linux 的 x86-64 CPU,为您提供构建 NVIDIA GPU 加速的 HPC 应用所需的工具。

除了应用广泛的 HPC 应用(包括 VASP、Gaussian、ANSYS Fluent、GROMACS 和 NAMD),还可以使用 CUDA、OpenACC 和 GPU 加速的数学库,为用户提供突破性性能。 您可以使用这些相同的软件工具对应用进行 GPU 加速,还可以使用 NVIDIA GPU 实现速度和能效大幅提升。

编译器

nvc

nvc是适用于NVIDIA GPU和AMD、Intel、OpenPOWER和Arm CPU的C11编译器。它使用从命令行参数派生的选项为目标处理器调用C编译器、汇编程序和链接器。nvc支持ISO C11,支持OpenACC的GPU编程,并支持OpenACC和OpenMP的多核CPU编程。

nvc++

nvc++是一个适用于NVIDIA GPU和AMD、Intel、OpenPOWER和Arm CPU的C++17编译器。它使用从命令行参数派生的选项为目标处理器调用C++编译器、汇编程序和链接器。nvc++支持ISO C++17,支持GPU和多核CPU编程,使用C++17并行算法、OpenACC和OpenMP。

nvfortran

nvfortran是一个Fortran编译器,适用于NVIDIA GPU和AMD、Intel、OpenPOWER和Arm CPU。它使用从命令行参数派生的选项为目标处理器调用Fortran编译器、汇编程序和链接器。nvfortran支持ISO Fortran 2003和ISO Fortran 2008的许多功能,支持使用CUDA Fortran进行GPU编程,以及使用ISO Fortran并行语言功能OpenACC和OpenMP进行GPU和多核CPU编程。

nvcc

nvcc是用于NVIDIA GPU的CUDA C和CUDA C++编译器驱动程序。nvcc接受一系列常规编译器选项,例如用于定义宏和include/library路径,以及用于指导编译过程。nvcc为NVIDIA GPU生成优化代码,并为AMD、Intel、OpenPOWER和Arm CPU驱动受支持的主机编译器。

数学库

cuBLAS

cuBLAS库提供了基本线性代数子例程(BLAS)的GPU加速实现。cuBLAS通过引入针对NVIDIA GPU高度优化的行业标准BLAS API来加速AI和HPC应用程序。cuBLAS库包含用于批处理操作、跨多个GPU执行以及混合和低精度执行的扩展。

cuBLASMp

cuBLASMp库是一个用于分布式基础稠密线性代数的高性能、多进程、GPU加速库。

cuTENSOR

cuTENSOR库是第一个提供张量收缩、归约和元素运算的GPU加速张量线性代数库。cuTENSOR用于加速深度学习训练和推理、计算机视觉、量子化学和计算物理领域的应用。

cuSPARSE

cuSPARSE库为稀疏矩阵提供GPU加速的基本线性代数子程序,其功能可用于构建GPU加速的求解器。cuSPARSE被从事机器学习、计算流体动力学、地震勘探和计算科学等应用的工程师和科学家广泛使用。

cuSOLVER

cuSOLVER库提供针对NVIDIA GPU高度优化的密集和稀疏因子分解、线性解算器和本征解算器。cuSOLVER用于加速科学计算和数据科学等不同领域的应用,并扩展了多个GPU的混合精度张量加速和执行。

cuSOLVERMp

cuSOLVERMp为大规模求解线性方程组提供了一种分布式内存、多节点、多GPU的解决方案。

cuFFT

cuFFT库提供针对NVIDIA GPU高度优化的FFT实现。cuFFT用于构建跨学科的商业和研究应用,如深度学习、计算机视觉、计算物理、分子动力学、量子化学以及地震和医学成像,并可扩展到多个GPU上执行。

cuFFTMp

cuFFTMp提供了一种分布式内存多节点多GPU解决方案,用于大规模求解2D和3D FFT(快速傅立叶变换)。

cuRAND

cuRAND库是随机数生成器的GPU设备端实现。

通信库

NCCL

NCCL是NVIDIA集体通信库,包含针对NVIDIA GPU优化的多GPU和多节点集体通信原语。

NVSHMEM

NVSHMEM是针对NVIDIA GPU高度优化的OpenSHMEM标准的实现。

工具

CUDA-GDB

用于调试CUDA应用程序的NVIDIA工具。

Nsight Compute

NVIDIA Nsight Compute是CUDA应用程序的下一代交互式内核探查器。它通过用户界面和命令行工具提供了详细的性能指标和API调试。

Nsight System

NVIDIA Nsight Systems是一款全系统性能分析工具,旨在可视化应用程序算法。帮助确定优化和调优机会,以便跨CPU和GPU高效地扩展应用程序。

Compute Sanitizer

Compute Sanitizer是一个功能正确性检查工具套件。它包含执行不同类型检查的工具,包括用于检查越界和未对齐内存访问错误的memcheck工具、用于检查共享内存中的数据争用的racecheck工具、用于检测对全局内存的未初始化访问的initcheck工具,以及用于检查同步原语的无效使用的synccheck工具。

NVTX

API,用于注释应用程序事件、代码范围和资源。与NVIDIA Nsight一起使用可进行捕捉和可视化。

集群中的nvhpc

序号

集群

版本

模块

位置

1

hpckapok1

24.1

nvhpc/nvhpc/24.1

/share/software/compilers/nvhpc/24.1

2

hpckapok2

24.1

nvhpc/24.1

/public/software/apps/nvhpc

参考资料

  1. hpc-sdk

  2. NVIDIA HPC SDK Documentation

Contributor:mzliu


最后更新: 2025 年 06 月 30 日