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 |
参考资料¶
Contributor:mzliu