很多人在学习深度学习或配置 PyTorch 环境时都会遇到 CUDA。
但 CUDA 到底是什么?是驱动?是工具?还是某种加速库?
本文从架构层面系统讲清楚 CUDA 的本质。


一、CUDA 的一句话定义

CUDA 是 NVIDIA 推出的通用 GPU 并行计算平台和编程模型。

英文全称:

Compute Unified Device Architecture

它的核心作用是:

让 GPU 不再只负责图形渲染,而可以进行通用计算(GPGPU)。

CUDA 由 NVIDIA 于 2006 年推出,是 GPU 进入通用计算时代的标志。


二、GPU 原本是干什么的?

最初 GPU 的职责只有一个:

  • 图形渲染

  • 像素计算

  • 顶点变换

这些任务有一个共同特点:

大规模重复计算,数据并行度极高。

这恰好与:

  • 科学计算

  • 图像处理

  • 矩阵运算

  • 深度学习

高度匹配。


三、CUDA 的革命意义

在 CUDA 之前:

  • GPU 只能通过图形 API(如 OpenGL)间接计算

  • 编程复杂

  • 不适合通用算法

CUDA 出现后:

  • 可以直接用 C/C++ 编写 GPU 程序

  • 控制线程块

  • 管理显存

  • 执行大规模并行计算

这使 GPU 成为“通用并行计算设备”。


四、CUDA 的架构模型

https://stevengong.co/attachments/Screenshot-2023-11-06-at-11.30.06-PM.png

4

CUDA 的执行模型可以拆成三个核心概念。


1️⃣ Host 与 Device

  • CPU = Host

  • GPU = Device

基本流程:

  1. CPU 准备数据

  2. 拷贝到 GPU 显存

  3. 启动 GPU kernel

  4. GPU 并行计算

  5. 结果返回 CPU


2️⃣ Kernel

Kernel 是运行在 GPU 上的函数,例如:


__global__ void add(int *a, int *b, int *c) {
int i = threadIdx.x;
c[i] = a[i] + b[i];
}

这个函数会被数千个线程同时执行。


3️⃣ 并行层级模型

CUDA 的线程组织结构:

  • Grid(网格)

  • Block(线程块)

  • Thread(线程)

执行模型本质是:

大规模数据并行(SIMT 模型)

GPU 有成千上万个计算核心,可以同时执行同一段代码。


五、CUDA 的软件栈结构

很多人误以为 CUDA 等于驱动,这是不准确的。

完整栈结构是:

GPU 硬件

NVIDIA Driver

CUDA Runtime

CUDA Toolkit(nvcc + 数学库)

深度学习框架

CUDA 实际上是一整套体系,包括:

  • 驱动接口

  • Runtime API

  • 编译器 nvcc

  • 数学加速库(cuBLAS)

  • 深度学习加速库(cuDNN)


六、为什么 AI 离不开 CUDA?

深度学习的核心运算是:

  • 矩阵乘法

  • 张量计算

  • 卷积运算

这些都是:

大规模并行计算

CUDA 提供了:

  • cuBLAS(矩阵加速)

  • cuDNN(深度学习算子加速)

  • Tensor Core 支持

主流框架:

  • PyTorch

  • TensorFlow

底层都在调用 CUDA。

当你写:


model.cuda()

本质上是:

  • 把张量放到 GPU 显存

  • 调用 CUDA kernel

  • 执行 cuBLAS / cuDNN 加速计算


七、CUDA 与操作系统的关系

CUDA 同时支持:

  • Linux

  • Windows

但企业训练环境几乎清一色 Linux。

原因:

  • 超算历史传统是 Linux

  • 云服务器默认 Linux

  • AI 框架优先适配 Linux

全球 Top500 超算几乎全部运行 Linux,而这些系统大多依赖 CUDA 进行加速计算。


八、CUDA 和其他方案对比

虽然 CUDA 是主流,但并非唯一选择。

平台 提供方
CUDA NVIDIA
ROCm AMD
OpenCL 跨平台标准
Metal Apple

但在生态成熟度和库支持方面,CUDA 目前仍占主导地位。


九、本质总结

CUDA 不是:

  • 一个简单软件

  • 一个驱动

  • 一个深度学习框架

CUDA 是:

NVIDIA 为 GPU 构建的通用并行计算平台与编程体系。

它让 GPU 从“图形芯片”进化为:

AI 时代的核心计算引擎。


十、写在最后

如果你正在学习:

  • 深度学习

  • 分布式训练

  • 高性能计算

理解 CUDA 的架构模型非常关键。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐