Overview

CUDA 是 NVIDIA 提供的并行计算平台与编程模型,其目标是让开发者利用 GPU 的大规模并行计算能力加速计算密集型任务。学习 CUDA 的重点并不只是掌握 CUDA C++ 语法或记忆具体 API,而是理解计算任务如何被划分、组织并映射到 GPU 硬件上执行,例如 Kernel、Grid、Block、Warp、Thread,以及不同层级的存储和同步机制。即使平时主要通过 PyTorch、TensorFlow 或 CUDA Libraries 使用 GPU,理解 CUDA Programming Model 仍然十分重要,因为这些高级框架最终都建立在 CUDA 和 GPU 执行模型之上。

《CUDA Programming Guide》既是一份系统教程,也是一份长期使用的技术参考手册。整份文档大体可以分为以下五个部分:

因此,CUDA Programming Guide 推荐的主要学习路线可以概括为:

CUDA Programming Model → CUDA Programming → Advanced CUDA

也就是先理解 GPU 和 CUDA 的执行模型,再学习如何实际编写 CUDA 程序,最后进入高级编程和性能优化。Part 4 和 Part 5 则更适合作为长期参考手册,在实际开发过程中按需查阅。

从整个 CUDA 学习过程来看,最重要的不是单独记住某个 API,而是逐渐建立这样一条完整的认知链路:

Computation → Kernel → Grid → Block → Warp → Thread → GPU Hardware

只有理解计算任务如何沿着这条链路映射到 GPU 上,才能进一步理解 CUDA Kernel 的性能瓶颈,以及 memory access、warp execution、occupancy、Tensor Core、异步流水线等后续优化技术。