GPU 架构基础
会员专享深入理解 GPU 的设计哲学、SIMT 编程模型以及硬件层级映射,建立并行计算的物理直觉。
在权益中心获取代码核心矛盾:延迟 vs 吞吐
在开始写第一行 CUDA 代码之前,我们需要先调整一下大脑的"计算模式"。
CPU 和 GPU 虽然都是为了计算而生,但它们解决的是完全不同的物理问题。这就好比法拉利与公交车的区别:
- CPU (Latency Oriented):为了低延迟而设计。它拥有巨大的缓存(Cache)和极其复杂的控制逻辑(分支预测、乱序执行)。它的目标是尽快完成一个必须串行执行的任务。
- 场景:操作系统调度、逻辑复杂的业务代码。
- GPU (Throughput Oriented):为了高吞吐量而设计。它砍掉了大部分控制逻辑和缓存,把晶体管全用来造计算单元 (ALU)。它的目标是同时处理海量的数据。
- 场景:图形渲染、矩阵乘法、深度学习训练。

异构计算 (Heterogeneous Computing)
GPU 并不是一个能独立运行的计算平台,而必须视为 CPU 的协处理器 (Coprocessor)。
当我们谈论"GPU 并行计算"时,实际上是指 CPU + GPU 的异构计算架构:
- Host (主机端):CPU 及其内存。负责复杂的逻辑控制、IO 读取和任务调度。
- Device (设备端):GPU 及其显存。负责密集型的并行计算任务。
- 通信桥梁:两者通过 PCIe 总线 连接。
瓶颈预警:PCIe 总线的带宽(通常几十 GB/s)远远低于 GPU 内部显存的带宽(通常几 TB/s)。因此,频繁地在 Host 和 Device 之间搬运数据是性能最大的杀手。编写高效内核的第一原则就是:让数据留在 GPU 上。
晶体管经济学
直观理解: 如果要把 100 块砖从 A 搬到 B:
- CPU 像是一辆法拉利,速度极快,一次搬 2 块,来回跑 50 趟。
- GPU 像是一群蚂蚁(或者一辆慢速大卡车),速度不快,但一次能搬 100 块,跑 1 趟就搞定。
晶体管经济学与任务分工
从硬件图上看,CPU 的芯片大部分面积是 Control 和 Cache,只有少部分是计算核心。而 GPU 几乎整个芯片都是绿色的计算单元 (ALU)。这种物理结构的差异决定了它们的分工:
| 特性 | CPU | GPU |
|---|---|---|
| 核心数量 | 较少 (几个到几十个) | 众多 (数千个) |
| 擅长任务 | 控制密集型 (逻辑复杂、分支多) | 计算密集型 (数据并行、矩阵运算) |
| 线程特性 | 重量级 (上下文切换开销大) | 轻量级 (极速切换,用于掩盖延迟) |
这意味着:GPU 不擅长做复杂的逻辑判断(if-else),但非常擅长做在大规模数据上重复同样的计算。
因此,CPU+GPU 的异构平台正好可以优势互补:
- CPU:负责处理逻辑复杂的串行程序,指挥整个流程。
- GPU:重点处理数据密集型的并行计算程序,发挥海量核心的算力。
从图形到 AI:算力的进化
为什么 GPU 会在今天统治 AI 领域?这不仅仅是因为核心多。
摩尔定律的终结与并行化
随着摩尔定律(Moore's Law)逼近物理极限,单纯靠增加晶体管密度来提升单核性能变得越来越难。图灵奖得主 Hennessy & Patterson 指出,未来的计算性能增长将主要依赖于 特定领域的架构(Domain Specific Architectures)。
GPU 正是这种理念的先行者:既然无法让一个工人跑得更快(延迟瓶颈),那就雇佣一万个工人一起搬砖(吞吐量胜利)。
CUDA:通用计算的钥匙
2007 年,NVIDIA 发布 CUDA,这是一个里程碑时刻。它允许工程师使用类似 C 语言的代码指挥 GPU,而不再需要伪装成图形渲染任务。这开启了 GPGPU (General-Purpose Computing on GPU) 的时代。
Tensor Core:为 AI 而生的"核"
在现代 NVIDIA GPU(Volta 架构之后)中,除了一般的计算核心(CUDA Core),还加入了一种专门为深度学习设计的 Tensor Core。
- CUDA Core:精通通用的标量运算(如
float32加减乘除)。 - Tensor Core:只做一件事,但做得快到极致——矩阵乘累加(Matrix Multiply-Accumulate, )。它通常使用混合精度(Mixed Precision),在一次时钟周期内完成巨大的计算量。
这也是为什么在 LLM 推理和训练中,我们总是强调要“用满 Tensor Core”。
登录以继续阅读
这是一篇付费内容,请登录您的账户以访问完整内容。
CookLLM文档