CUDA 工具包文档 12.8

开发、优化和部署 GPU 加速应用

NVIDIA® CUDA® 工具包提供了一个开发环境,用于创建高性能 GPU 加速应用程序。借助 CUDA 工具包,您可以在 GPU 加速的嵌入式系统、桌面工作站、企业数据中心、云平台和 HPC 超级计算机上开发、优化和部署应用程序。该工具包包括 GPU 加速库、调试和优化工具、C/C++ 编译器以及用于部署应用程序的运行时库。

利用内置的跨多 GPU 配置分配计算的功能,科学家和研究人员可以开发可从单 GPU 工作站扩展到包含数千个 GPU 的云端部署的应用程序。


发行说明

CUDA 工具包的发行说明。

CUDA 功能特性存档

按版本列出的 CUDA 功能特性列表。

EULA

CUDA 工具包最终用户许可协议适用于 NVIDIA CUDA 工具包、NVIDIA CUDA 示例、NVIDIA 显示驱动程序、NVIDIA Nsight 工具(Visual Studio 版本)以及关于 CUDA API、编程模型和开发工具的相关文档。如果您不同意许可协议的条款和条件,请勿下载或使用该软件。


安装指南

快速入门指南

本指南提供了在标准系统上安装和验证 CUDA 的最简化的初步步骤说明。

Windows 安装指南

本指南讨论了如何在 Microsoft Windows 系统上安装和检查 CUDA 开发工具的正确运行。

Linux 安装指南

本指南讨论了如何在 GNU/Linux 系统上安装和检查 CUDA 开发工具的正确运行。


编程指南

编程指南

本指南详细讨论了 CUDA 编程模型和编程接口。然后,它描述了硬件实现,并提供了关于如何实现最佳性能的指导。附录包括所有支持 CUDA 的设备的列表、C++ 语言所有扩展的详细描述、支持的数学函数列表、主机和设备代码中支持的 C++ 功能、纹理获取的详细信息、各种设备的技术规格,最后介绍了底层驱动程序 API。

最佳实践指南

本指南介绍了已建立的并行化和优化技术,并解释了可以大大简化 CUDA 兼容 GPU 架构编程的编码隐喻和惯用法。其目的是为使用 CUDA 工具包从 NVIDIA GPU 获得最佳性能提供指导。

Maxwell 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在基于 NVIDIA Maxwell 架构的 GPU 上正常运行。本文档提供了确保您的软件应用程序与 Maxwell 兼容的指南。

Pascal 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在基于 NVIDIA Pascal 架构的 GPU 上正常运行。本文档提供了确保您的软件应用程序与 Pascal 兼容的指南。

Volta 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在基于 NVIDIA Volta 架构的 GPU 上正常运行。本文档提供了确保您的软件应用程序与 Volta 兼容的指南。

Turing 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在基于 NVIDIA Turing 架构的 GPU 上正常运行。本文档提供了确保您的软件应用程序与 Turing 兼容的指南。

NVIDIA Ampere GPU 架构兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在基于 NVIDIA Ampere GPU 架构的 GPU 上正常运行。本文档提供了确保您的软件应用程序与 NVIDIA Ampere GPU 架构兼容的指南。

Hopper 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在 Hopper GPU 上正常运行。本文档提供了确保您的软件应用程序与 Hopper 架构兼容的指南。

Ada 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在 Ada GPU 上正常运行。本文档提供了确保您的软件应用程序与 Ada 架构兼容的指南。

Blackwell 兼容性指南

本应用笔记旨在帮助开发人员确保他们的 NVIDIA CUDA 应用程序可以在 Blackwell GPU 上正常运行。本文档提供了确保您的软件应用程序与 Blackwell 架构兼容的指南。

Maxwell 调优指南

Maxwell 是 NVIDIA 面向 CUDA 计算应用的第四代架构。遵循 Kepler 架构最佳实践的应用程序通常应该在 Maxwell 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 Maxwell 架构特性进行微调以获得额外加速的方法。

Pascal 调优指南

Pascal 是 NVIDIA 面向 CUDA 计算应用的第五代架构。遵循 Maxwell 架构最佳实践的应用程序通常应该在 Pascal 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 Pascal 架构特性进行微调以获得额外加速的方法。

Volta 调优指南

Volta 是 NVIDIA 面向 CUDA 计算应用的第六代架构。遵循 Pascal 架构最佳实践的应用程序通常应该在 Volta 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 Volta 架构特性进行微调以获得额外加速的方法。

Turing 调优指南

Turing 是 NVIDIA 面向 CUDA 计算应用的第七代架构。遵循 Pascal 架构最佳实践的应用程序通常应该在 Turing 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 Turing 架构特性进行微调以获得额外加速的方法。

NVIDIA Ampere GPU 架构调优指南

NVIDIA Ampere GPU 架构是 NVIDIA 面向 CUDA 计算应用的第八代架构。遵循 NVIDIA Volta 架构最佳实践的应用程序通常应该在 NVIDIA Ampere GPU 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 NVIDIA Ampere GPU 架构的特性进行微调以获得额外加速的方法。

Hopper 调优指南

Hopper GPU 架构是 NVIDIA 面向 CUDA 计算应用的第九代架构。遵循 NVIDIA Volta 架构最佳实践的应用程序通常应该在 Hopper GPU 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 Hopper GPU 架构的特性进行微调以获得额外加速的方法。

Ada 调优指南

NVIDIA® Ada GPU 架构是 NVIDIA 面向 CUDA® 计算应用的第十代架构。NVIDIA Ada GPU 架构保留并扩展了先前 NVIDIA GPU 架构(如 NVIDIA Ampere 和 Turing 架构)提供的相同 CUDA 编程模型,并且遵循这些架构最佳实践的应用程序通常应该在 NVIDIA Ada 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 NVIDIA Ada GPU 架构的特性进行微调以获得额外加速的方法。

Blackwell 调优指南

NVIDIA® Blackwell GPU 架构是 NVIDIA 最新的面向 CUDA® 计算应用的架构。NVIDIA Blackwell GPU 架构保留并扩展了先前 NVIDIA GPU 架构(如 NVIDIA Ampere 和 Turing 架构)提供的相同 CUDA 编程模型,并且遵循这些架构最佳实践的应用程序通常应该在 NVIDIA Blackwell 架构上看到加速,而无需任何代码更改。本指南总结了应用程序可以通过利用 NVIDIA Blackwell GPU 架构的特性进行微调以获得额外加速的方法。

PTX ISA

本指南提供了关于 PTX 使用的详细说明,PTX 是一种低级并行线程执行虚拟机和指令集架构 (ISA)。PTX 将 GPU 公开为数据并行计算设备。

视频解码器

NVIDIA 视频解码器 (NVCUVID) 已弃用。请改为使用 NVIDIA 视频编解码器 SDK (https://developer.nvidia.com/nvidia-video-codec-sdk)。

PTX 互操作性

本文档展示了如何编写与 ABI 兼容并可与其他 CUDA 代码互操作的 PTX。

内联 PTX 汇编

本文档展示了如何将 PTX(并行线程执行)汇编语言语句内联到 CUDA 代码中。它描述了可用的汇编器语句参数和约束,并且本文档还提供了一些您可能遇到的陷阱列表。


CUDA API 参考

CUDA 运行时 API

结构中的字段可能以与声明顺序不同的顺序出现。

CUDA 驱动程序 API

结构中的字段可能以与声明顺序不同的顺序出现。

CUDA 数学 API

CUDA 数学 API。

cuBLAS

cuBLAS 库是在 NVIDIA CUDA 运行时之上实现的 BLAS(基本线性代数子程序)库。它允许用户访问 NVIDIA 图形处理单元 (GPU) 的计算资源,但不会跨多个 GPU 自动并行化。

cuDLA API

cuDLA API。

NVBLAS

NVBLAS 库是一个多 GPU 加速的即插即用 BLAS(基本线性代数子程序)库,构建于 NVIDIA cuBLAS 库之上。

nvJPEG

nvJPEG 库为深度学习和超大规模多媒体应用中常用的图像格式提供高性能 GPU 加速 JPEG 解码功能。

cuFFT

cuFFT 库用户指南。

CUB

CUB 用户指南。

CUDA C++ 标准库

libcu++(CUDA C++ 标准库)的 API 参考。

cuFile API 参考指南

NVIDIA® GPUDirect® Storage cuFile API 参考指南提供了关于 cuFile API 参考指南初步版本的信息,该指南用于应用程序和框架中以利用 GDS 技术,并描述了作为 GDS 技术一部分的这些 API 的意图、上下文和操作。

cuRAND

cuRAND 库用户指南。

cuSPARSE

cuSPARSE 库用户指南。

NPP

NVIDIA NPP 是一个用于执行 CUDA 加速处理的函数库。该库中的初始功能集侧重于图像和视频处理,并且广泛适用于这些领域的开发人员。NPP 将随着时间的推移而发展,以涵盖各种问题领域中更多计算密集型任务。NPP 库的编写旨在最大化灵活性,同时保持高性能。

nvJitLink

nvJitLink 库的用户指南。

nvFatbin

nvFatbin 库的用户指南。

NVRTC (运行时编译)

NVRTC 是 CUDA C++ 的运行时编译库。它接受字符字符串形式的 CUDA C++ 源代码,并创建可用于获取 PTX 的句柄。NVRTC 生成的 PTX 字符串可以由 CUDA 驱动程序 API 的 cuModuleLoadData 和 cuModuleLoadDataEx 加载,并由 cuLinkAddData 与其他模块链接。此功能通常可以提供纯离线静态编译中无法实现的优化和性能。

Thrust

C++ 并行算法库。

cuSOLVER

cuSOLVER 库用户指南。


PTX 编译器 API 参考

PTX 编译器 API

本指南展示了如何使用静态 PTX 编译器库提供的 API 将 PTX 程序编译为 GPU 汇编代码。


杂项

CUDA 演示套件

本文档描述了 CUDA 演示套件附带的演示应用程序。

CUDA on WSL

本指南旨在帮助用户开始在 Linux 的 Windows 子系统 (WSL 2) 上使用 NVIDIA CUDA。本指南涵盖了在此环境中安装和运行 CUDA 应用程序和容器。

多实例 GPU (MIG)

本用户指南的此版本描述了 NVIDIA® A100 GPU 的多实例 GPU 功能。

CUDA 兼容性

本文档描述了 CUDA 兼容性,包括 CUDA 增强兼容性和 CUDA 向前兼容升级。

CUPTI

CUPTI-API。CUDA 性能分析工具接口 (CUPTI) 支持创建以 CUDA 应用程序为目标的性能分析和跟踪工具。

调试器 API

CUDA 调试器 API。

GPUDirect RDMA

Kepler 级 GPU 和 CUDA 5.0 中引入的一项技术,当设备使用 PCI Express 的标准功能共享相同的上游根联合体时,该技术实现了 GPU 和 PCI Express 总线上的第三方对等设备之间直接通信的路径。本文档介绍了该技术,并描述了在 Linux 设备驱动程序模型中启用与 NVIDIA GPU 的 GPUDirect RDMA 连接所需的步骤。

GPUDirect Storage

GPUDirect Storage 的文档。

vGPU

支持 CUDA 的 vGPU。


工具

NVCC

这是 nvcc(CUDA 编译器驱动程序)的参考文档。nvcc 接受一系列常规编译器选项,例如用于定义宏和包含/库路径,以及用于引导编译过程。

CUDA-GDB

NVIDIA 工具,用于调试在 Linux 和 QNX 上运行的 CUDA 应用程序,为开发人员提供了一种在实际硬件上调试 CUDA 应用程序的机制。CUDA-GDB 是 GDB(GNU 项目调试器)的 x86-64 端口的扩展。

Compute Sanitizer

Compute Sanitizer 用户指南。

Nsight Eclipse 插件安装指南

Nsight Eclipse 插件安装指南

Nsight Eclipse 插件版本

Nsight Eclipse 插件版本入门指南

Nsight Systems

Nsight Systems 的文档。

Nsight Compute

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

Nsight Visual Studio 版本

Nsight Visual Studio 版本的文档。

性能分析器

这是性能分析器指南。

CUDA 二进制实用程序

cuobjdump、nvdisasm 和 nvprune 的应用笔记。


白皮书

浮点和 IEEE 754

与浮点精度和合规性相关的许多问题是 CPU 和 GPU 上频繁引起混淆的根源。本白皮书的目的是讨论与 NVIDIA GPU 相关的最常见问题,并补充 CUDA C++ 编程指南中的文档。

不完全 LU 和 Cholesky 预处理迭代方法

在本白皮书中,我们展示了如何使用 cuSPARSE 和 cuBLAS 库在不完全 LU 和 Cholesky 预处理迭代方法中实现比 CPU 快 2 倍的加速。我们重点关注双共轭梯度稳定法和共轭梯度迭代法,它们可用于求解大型稀疏非对称和对称正定线性系统。此外,我们还评论了并行稀疏三角求解,它是这些算法中必不可少的构建块。


应用笔记

CUDA for Tegra

本应用笔记概述了 NVIDIA® Tegra® 内存架构以及将代码从连接到 x86 系统的独立 GPU (dGPU) 移植到 Tegra® 集成 GPU (iGPU) 的注意事项。它还讨论了 EGL 互操作性。


编译器 SDK

libNVVM API

libNVVM API。

libdevice 用户指南

libdevice 库是一个 LLVM bitcode 库,它实现了 GPU 内核的常用函数。

NVVM IR

NVVM IR 是基于 LLVM IR 的编译器 IR(中间表示)。NVVM IR 旨在表示 GPU 计算内核(例如,CUDA 内核)。高级语言前端(如 CUDA C 编译器前端)可以生成 NVVM IR。