CUDA工具包文档v12.0
发行说明 CUDA工具包的发行说明。 CUDA功能存档 CUDA功能的发布列表。 EULA协议 CUDA工具包最终用户许可协议适用于NVIDIA CUDA工具包、NVIDIA CUDA示例、NVIDI显示驱动程序、NVIDA Nsight工具(Visual Studio Edition)以及有关CUDA API、编程模型和开发工具的相关文档。 如果您不同意许可协议的条款和条件,请不要下载或使用该软件。
安装指南
编程指南
编程指南 本指南详细讨论了CUDA编程模型和编程接口。 然后描述硬件实现,并提供如何实现最大性能的指导。 附录包括所有支持CUDA的设备的列表、对C++语言所有扩展的详细描述、支持的数学函数列表、主机和设备代码中支持的C++功能、纹理提取的详细信息、各种设备的技术规范,最后介绍了低层驱动程序API。 最佳实践指南 本指南介绍了已建立的并行化和优化技术,并解释了可以大大简化CUDA支持的GPU体系结构编程的编码隐喻和习惯用法。 目的是提供使用CUDA工具包从NVIDIA GPU获得最佳性能的指南。 麦克斯韦兼容性指南 本应用说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在基于NVIDIA-Maxwell体系结构的GPU上正常运行。 本文档提供了指导,以确保您的软件应用程序与Maxwell兼容。 Pascal兼容性指南 本应用说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在基于NVIDIA-Pascal架构的GPU上正常运行。 本文档提供了指导,以确保您的软件应用程序与Pascal兼容。 Volta兼容性指南 本应用说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在基于NVIDIA-Volta架构的GPU上正常运行。 本文档提供了确保您的软件应用程序与Volta兼容的指南。 图灵兼容性指南 本应用说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在基于NVIDIA-Turing架构的GPU上正常运行。 本文档提供了指导,以确保您的软件应用程序与图灵兼容。 NVIDIA Ampere GPU体系结构兼容性指南 本应用说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在基于NVIDIA-Ampere GPU架构的GPU上正常运行。 本文档提供指导,以确保您的软件应用程序与NVIDIA Ampere GPU体系结构兼容。 料斗兼容性指南 本应用说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在Hopper GPU上正常运行。 本文档提供了指导,以确保您的软件应用程序与Hopper体系结构兼容。 Ada兼容性指南 本应用程序说明旨在帮助开发人员确保其NVIDIA CUDA应用程序能够在Ada GPU上正常运行。 本文档提供了指导,以确保您的软件应用程序与Ada体系结构兼容。 麦克斯韦调谐指南 Maxwell是NVIDIA针对CUDA计算应用程序的第四代架构。 遵循开普勒体系结构最佳实践的应用程序通常会在不更改任何代码的情况下在Maxwell体系结构上看到加速。 本指南总结了通过利用Maxwell体系结构特性来微调应用程序以获得额外加速的方法。 Pascal调谐指南 Pascal是NVIDIA针对CUDA计算应用程序的第五代架构。 遵循Maxwell体系结构最佳实践的应用程序通常应该在没有任何代码更改的情况下看到Pascal体系结构的加速。 本指南总结了通过利用Pascal体系结构特性来微调应用程序以获得额外加速的方法。 Volta调谐指南 Volta是NVIDIA针对CUDA计算应用程序的第六代架构。 遵循Pascal体系结构最佳实践的应用程序通常会在Volta体系结构上看到加速,而无需任何代码更改。 本指南总结了通过利用Volta体系结构功能对应用程序进行微调以获得额外加速的方法。 图灵调谐指南 图灵是NVIDIA针对CUDA计算应用程序的第7代架构。 遵循Pascal体系结构最佳实践的应用程序通常会在无需任何代码更改的情况下在Turing体系结构上看到加速。 本指南总结了通过利用图灵体系结构特性来微调应用程序以获得额外加速的方法。 NVIDIA Ampere GPU体系结构调整指南 NVIDIA Ampere GPU架构是NVIDIA针对CUDA计算应用程序的第八代架构。 遵循NVIDIA Volta体系结构最佳实践的应用程序通常应在NVIDIA-Ampere GPU体系结构上看到加速,而无需任何代码更改。 本指南总结了如何通过利用NVIDIA Ampere GPU体系结构的功能对应用程序进行微调以获得额外的加速。 料斗调节指南 Hopper GPU架构是NVIDIA针对CUDA计算应用程序的第9代架构。 遵循NVIDIA Volta体系结构最佳实践的应用程序通常应在Hopper GPU体系结构上看到加速,而无需任何代码更改。 本指南总结了可以通过利用Hopper GPU Architecture的功能对应用程序进行微调以获得额外加速的方法。 Ada调整指南 NVIDIA®Ada GPU体系结构是NVIDIA针对CUDA®计算应用程序的最新体系结构。 NVIDIA Ada GPU体系结构保留并扩展了NVIDIA GPU以前体系结构(如NVIDIA-Ampere和Turing)提供的相同CUDA编程模型,遵循这些体系结构最佳实践的应用程序通常应在不更改任何代码的情况下在NVIDI亚Ada体系结构上看到加速。 本指南总结了如何通过利用NVIDIA Ada GPU体系结构的功能对应用程序进行微调以获得额外的加速。 PTX ISA公司 本指南提供了有关PTX(一种低级并行线程执行虚拟机和指令集体系结构(ISA))使用的详细说明。 PTX将GPU公开为数据并行计算设备。 Optimus开发者指南 本文档解释了如何使用CUDA API查询NVIDIA Optimus系统中的GPU功能。 视频解码器 NVIDIA视频解码器(NVCUVID)已弃用。 相反,请使用NVIDIA视频编解码器SDK( https://developer.nvidia.com/nvidia-video-codec-sdk ). PTX互操作性 本文档展示了如何编写符合ABI并可与其他CUDA代码互操作的PTX。 嵌入式PTX组件 本文档展示了如何将PTX(并行线程执行)汇编语言语句内嵌到CUDA代码中。 它描述了可用的汇编语句参数和约束,文档还提供了您可能遇到的一些陷阱的列表。 CUDA占用计算器 CUDA占用率计算器允许您计算给定CUDA内核对GPU的多处理器占用率。
CUDA API参考
CUDA运行时API 结构中的字段可能以不同于声明顺序的顺序出现。 CUDA驱动程序API 结构中的字段可能以不同于声明顺序的顺序出现。 CUDA数学API CUDA数学API。 cuBLAS公司 cuBLAS库是在NVIDIA CUDA运行时之上实现的BLAS(基本线性代数子程序)。 它允许用户访问NVIDIA图形处理单元(GPU)的计算资源,但不能跨多个GPU自动并行。 cuDLA API cuDLA API。 NVBLAS公司 NVIDIA cuBLAS库是一个多GPU加速的嵌入式BLAS(基本线性代数子程序),构建在NVIDIA-cuBLAS数据库之上。 nvJPEG格式 nvJPEG库为深度学习和超大规模多媒体应用中常用的图像格式提供了高性能GPU加速JPEG解码功能。 袖口 cuFFT库用户指南。 幼兽 CUB的用户指南。 CUDA C++标准库 libcu++(CUDA C++标准库)的API引用。 cuFile API参考指南 NVIDIA®GPUDirect®Storage cuFile API Reference Guide提供了有关cuFile API参考指南初版的信息,该参考指南在应用程序和框架中用于利用GDS技术,并描述了这些API的意图、上下文和操作,这些API是GDS技术的一部分。 cuRAND公司 cuRAND库用户指南。 cuSPARSE公司 cuSPARSE库用户指南。 核电站 NVIDIA NPP是用于执行CUDA加速处理的函数库。 库中的初始功能集中于图像和视频处理,广泛适用于这些领域的开发人员。 NPP将随着时间的推移而发展,以涵盖各种问题领域中的更多计算繁重的任务。 编写NPP库是为了在保持高性能的同时最大限度地提高灵活性。 nvJitLink(nvJit链接) nvJitLink库的用户指南。 NVRTC(运行时编译) NVRTC是CUDA C++的运行时编译库。 它接受字符串形式的CUDA C++源代码,并创建可用于获取PTX的句柄。 NVRTC生成的PTX字符串可以由cuModuleLoadData和cuModuleLoadDataEx加载,并通过CUDA驱动程序API的cuLinkAddData与其他模块链接。 此工具通常可以提供纯脱机静态编译所无法提供的优化和性能。 推力 推力入门指南。 cuSOLVER公司 cuSOLVER库用户指南。
PTX编译器API参考
PTX编译器API 本指南介绍如何使用静态PTX编译器库提供的API将PTX程序编译为GPU汇编代码。
CUDA样本 CUDA演示套件 本文档介绍了CUDA演示套件附带的演示应用程序。 WSL上的CUDA 本指南旨在帮助用户开始在Windows Subsystem for Linux(WSL 2)上使用NVIDIA CUDA。 本指南涵盖在此环境中安装和运行CUDA应用程序和容器。 多仪表GPU(MIG) 本版用户指南介绍了NVIDIA®A100 GPU的多实例GPU功能。 CUDA兼容性 本文档介绍CUDA兼容性,包括CUDA增强兼容性和CUDA正向兼容升级。 CUPTI公司 CUPTI-API。 CUDA分析工具界面(CUPTI)支持创建针对CUDA应用程序的分析和跟踪工具。 调试器API CUDA调试器API。 GPU直接RDMA 在开普勒级GPU和CUDA 5.0中引入的一种技术,使用PCI Express的标准功能,当设备共享相同的上游根复合体时,可以在GPU和PCI Express总线上的第三方对等设备之间建立直接通信路径。 本文档介绍了该技术,并描述了在Linux设备驱动程序模型中启用到NVIDIA GPU的GPUDirect RDMA连接所需的步骤。 GPU直接存储 GPUDirect Storage的文档。 vGPU 支持CUDA的vGPU。
其他
工具
NVCC公司 这是CUDA编译器驱动程序nvcc的参考文档。 nvcc接受一系列常规编译器选项,例如用于定义宏和include/library路径,以及用于指导编译过程。 CUDA-GDB公司 NVIDIA工具用于调试Linux和QNX上运行的CUDA应用程序,为开发人员提供了一种调试实际硬件上运行的CUDA应用程序的机制。 CUDA-GDB是GDB(GNU项目调试器)的x86-64端口的扩展。 电脑消毒剂 计算机消毒剂用户指南。 Nsight Eclipse插件安装指南 Nsight Eclipse插件安装指南 Nsight Eclipse插件版 Nsight Eclipse插件版入门指南 Nsight系统 Nsight Systems的文档。 Nsight计算 NVIDIA Nsight Compute是CUDA应用程序的下一代交互式内核分析器。 它通过用户界面和命令行工具提供详细的性能指标和API调试。 Nsight Visual Studio版 Nsight Visual Studio Edition的文档。 探查器 这是事件探查器的指南。 CUDA二进制实用程序 cuobjdump、nvdissm和nvprune的应用程序注释。
白皮书
浮点与IEEE 754 许多与浮点精度和一致性相关的问题经常导致CPU和GPU的混淆。 本白皮书旨在讨论与NVIDIA GPU相关的最常见问题,并补充CUDA C++编程指南中的文档。 不完全LU和Cholesky预条件迭代方法 在本白皮书中,我们展示了如何使用cuSPARSE和cuBLAS库在不完全LU和Cholesky预处理迭代方法中实现2倍于CPU的加速。 我们重点研究了双共轭梯度稳定迭代法和共轭梯度迭代法,它们分别可用于求解大型稀疏非对称线性系统和对称正定线性系统。 此外,我们还对并行稀疏三角求解进行了评论,这是这些算法中的一个基本组成部分。
应用程序注释
Tegra的CUDA 本应用说明概述了NVIDIA®Tegra®内存体系结构,以及将代码从连接到x86系统的离散GPU(dGPU)移植到Tegra™集成GPU(iGPU)时的注意事项。 它还讨论了EGL的互操作性。
编译器SDK
libNVVM API libNVVM API。 libdevice用户指南 libdevice库是一个LLVM位代码库,用于实现GPU内核的通用函数。 NVVM红外 NVVM-IR是一种基于LLVM-IR的编译器IR(中间表示)。NVVM-IR旨在表示GPU计算内核(例如CUDA内核)。 高级语言前端,如CUDA C编译器前端,可以生成NVVM IR。