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 设备端实现。

通信库

NCCL

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

NVSHMEM

NVSHMEM 是 OpenSHMEM 标准的实现,针对 NVIDIA 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 组件的特定许可条款和条件。 通过接受本协议,您同意遵守适用于此处包含的特定产品的所有条款和条件。