CUDA 编程指南
CUDA 与 CUDA 编程指南
CUDA 是 NVIDIA 开发的并行计算平台和编程模型,可利用 GPU 的强大能力大幅提升计算性能。它使开发者能够加速计算密集型应用,并广泛应用于深度学习、科学计算和高性能计算(HPC)等领域。
本 CUDA 编程指南是介绍 CUDA 编程模型以及如何使用 CUDA 平台编写在 GPU 上执行的代码的官方综合性资料。本指南涵盖从 CUDA 编程模型、CUDA 平台到语言扩展细节的各方面内容,并介绍如何利用特定的硬件和软件特性。本指南为初学开发者提供了学习 CUDA 的途径,同时也为开发者使用 CUDA 构建应用提供了必不可少的参考资料。
本指南的组织结构
即使对于主要使用库、框架或领域专用语言(DSL)的开发者,了解 CUDA 编程模型以及 GPU 如何执行代码,也有助于理解各层抽象背后发生的事情。本指南首先用一章介绍独立于任何特定编程语言的CUDA 编程模型,适合任何有兴趣了解 CUDA 工作原理的人,甚至包括非开发者。
本指南分为五个主要部分:
第 1 部分:简介与编程模型概述
独立于具体语言的 CUDA 编程模型概述,以及对 CUDA 平台的简要介绍。
本部分面向任何希望了解 GPU 以及在 GPU 上执行代码的概念的人,即使他们不是开发者。
第 2 部分:使用 CUDA 进行 GPU 编程
使用 C++ 和 Python 进行 GPU 编程的基础知识。
本部分面向任何希望入门 GPU 编程的人。
本部分旨在提供教学指导,而非全面介绍,讲解 CUDA 编程中最重要且最常用的内容,包括一些常见的性能考量。
第 3 部分:高级 CUDA
介绍 CUDA 的一些更高级的特性,这些特性既支持细粒度控制,也提供了更多最大化性能的机会,包括在单个应用中使用多个 GPU。
本部分最后概览第 4 部分涵盖的特性,简要介绍每项特性的用途和功能,并按开发者可能在何时以及为何会发现各项特性有用来排序。
第 4 部分:CUDA 特性
本部分全面介绍特定的 CUDA 特性,例如 CUDA 图、动态并行、与图形 API 的互操作性,以及统一内存。
当需要全面了解某项特定的 CUDA 特性时,应查阅本部分。在可能的情况下,前面的部分已注意介绍本部分涵盖的特性,并说明其用途。
第 5 部分:技术附录
技术附录提供了一些参考文档,介绍 CUDA 对 C++ 高级语言的支持、特定硬件的规格以及其他技术规范。
本部分旨在作为技术参考,具体描述 CUDA 各要素的语法、语义和技术行为。
第 1 至第 3 部分为 CUDA 新手开发者提供循序引导的学习体验,同时也为具有任何经验水平的 CUDA 开发者提供有用的见解和最新信息。
第 4 部分和第 5 部分提供了有关特定特性和详细主题的大量信息,旨在为编写 CUDA 应用时需要了解更多细节的开发者提供经过精选、条理清晰的参考资料。