NVIDIA HPC SDK 25.1 版本文档
HPC SDK
- HPC SDK 发行说明
这些发行说明描述了 NVIDIA HPC SDK 的新功能,包括与之前版本的更改。它们可能还包括其他产品文档中未包含的最新信息。
- HPC SDK 安装指南
本指南介绍了如何在 CPU 和 NVIDIA GPU 上使用 HPC Fortran、C 和 C++ 编译器和程序开发工具,包括有关并行化和优化的信息。
编译器
- HPC 编译器文档
HPC 编译器文档
- nvc
nvc 是适用于 NVIDIA GPU 以及 AMD、Intel 和 Arm CPU 的 C11 编译器。它调用 C 编译器、汇编器和链接器,并使用从其命令行参数派生的选项来处理目标处理器。 nvc 支持 ISO C11,支持使用 OpenACC 进行 GPU 编程,并支持使用 OpenACC 和 OpenMP 进行多核 CPU 编程。
- nvc++
nvc++ 是适用于 NVIDIA GPU 以及 AMD、Intel 和 Arm CPU 的 C++17 编译器。它调用 C++ 编译器、汇编器和链接器,并使用从其命令行参数派生的选项来处理目标处理器。 nvc++ 支持 ISO C++17,支持使用 C++17 并行算法、OpenACC 和 OpenMP 进行 GPU 和多核 CPU 编程。
- nvfortran
nvfortran 是适用于 NVIDIA GPU 以及 AMD、Intel 和 Arm CPU 的 Fortran 编译器。它调用 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 接受一系列常规编译器选项,例如用于定义宏和包含/库路径,以及用于引导编译过程。 nvcc 为 NVIDIA GPU 生成优化代码,并驱动受支持的 AMD、Intel 和 Arm CPU 主机编译器。
编程模型
- C++ 并行算法
C++ 17 并行算法通过执行策略引入并行和向量并发,并在 NVC++ 编译器中受支持。
- OpenACC 入门指南
本指南介绍了 NVIDIA OpenACC 的实现,包括如何使用 OpenACC 指令编写、构建和运行程序的示例。
- OpenMP
本节介绍了如何使用 OpenMP,它是一组编译器指令、应用程序编程接口 (API) 和一组环境变量,用于指定 Fortran、C++ 和 C 程序中的并行执行。
- CUDA C++ 编程指南
一份全面的指南,用于理解、开发和优化 CUDA C++ 编程环境中的代码。
- NVIDIA CUDA Fortran 编程指南
本指南介绍了如何使用 CUDA Fortran 进行编程,CUDA Fortran 是 Fortran 的一小组扩展,它支持 NVIDIA CUDA 编程模型并以此为基础构建。 CUDA Fortran 在各种 64 位操作系统上可用,适用于 x86 和 Arm 硬件平台。 CUDA Fortran 包括运行时 API 和编程示例。
数学库
- cuBLAS
cuBLAS 库提供了一个 GPU 加速的基本线性代数子程序 (BLAS) 实现。 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 为大规模求解 2D 和 3D FFT(快速傅里叶变换)提供分布式内存多节点和多 GPU 解决方案。
- cuRAND
cuRAND 库是随机数生成器的 GPU 设备端实现。
通信库
工具
- CUDA-GDB
用于调试 CUDA 应用程序的 NVIDIA 工具。
- Nsight Compute
NVIDIA Nsight Compute 是下一代交互式内核分析器,用于 CUDA 应用程序。 它通过用户界面和命令行工具提供详细的性能指标和 API 调试。
- Nsight Systems
NVIDIA Nsight Systems 是一款系统范围的性能分析工具,旨在可视化应用程序算法。 帮助识别优化和调优机会,以在 CPU 和 GPU 上高效扩展应用程序。
- Compute Sanitizer
Compute Sanitizer 是一套功能正确性检查工具。 它包含用于执行不同类型检查的工具,包括 memcheck 工具(用于检查越界和未对齐的内存访问错误)、racecheck 工具(用于检查共享内存中的数据竞争)、initcheck 工具(用于检查对全局内存的未初始化访问)和 synccheck 工具(用于检查同步原语的无效用法)。
- NVTX
用于注释应用程序事件、代码范围和资源的 API。 与 NVIDIA Nsight 一起使用以捕获和可视化。
容器化
- HPC SDK 容器指南
HPC Container Maker 是一款开源工具,可以更轻松地生成 Dockerfile 和 Singularity 容器规范文件。
- NGC
NGC 是 GPU 优化的 HPC 和深度学习软件的中心。 它负责处理所有底层工作,以便科学家、开发人员和研究人员可以专注于构建解决方案、收集见解和交付业务价值。
其他文档
- CUDA C 最佳实践指南
本指南介绍了已建立的并行化和优化技术,并解释了可以大大简化 CUDA 功能 GPU 架构编程的编码隐喻和习惯用法。 其目的是为使用 CUDA 工具包从 NVIDIA GPU 获得最佳性能提供指导方针。
- CUDA 运行时 API
CUDA 运行时 API
- NVIDIA Fortran CUDA 库接口
本文档介绍了 NVIDIA Fortran 到 cuBLAS、cuFFT、cuRAND 和 cuSPARSE CUDA 库的接口。
- 将 OpenACC 与 MPI 结合使用教程
本教程介绍了将 NVIDIA OpenACC 编译器与 MPI 结合使用。
- Hopper GPU 架构调优指南
NVIDIA Hopper GPU 架构是 NVIDIA 最新的 CUDA 计算应用程序架构。 NVIDIA Hopper GPU 架构保留并扩展了以前 NVIDIA GPU 架构提供的相同 CUDA 编程模型。 本指南总结了可以微调应用程序以利用 NVIDIA Hopper GPU 架构的功能获得额外加速的方法。
- Ampere GPU 架构调优指南
NVIDIA Ampere GPU 架构是 NVIDIA 第 7 代 CUDA 计算应用程序架构。 NVIDIA Ampere GPU 架构保留并扩展了以前 NVIDIA GPU 架构提供的相同 CUDA 编程模型。 本指南总结了可以微调应用程序以利用 NVIDIA Ampere GPU 架构的功能获得额外加速的方法。
- Volta 调优指南
Volta 是 NVIDIA 第 6 代 CUDA 计算应用程序架构。 遵循 Pascal 架构最佳实践的应用程序通常可以在 Volta 架构上看到加速,而无需任何代码更改。 本指南总结了可以微调应用程序以利用 Volta 架构功能获得额外加速的方法。
使用条款
- HPC 软件开发工具包的 NVIDIA 软件许可协议
本文档是 NVIDIA HPC SDK 的软件许可协议 (SLA)。 它包含所有 HPC SDK 组件的特定许可条款和条件。 通过接受本协议,您同意遵守适用于此处包含的特定产品的所有条款和条件。