CPU与GPU架构及工作原理

从晶体管分配、核心结构、缓存层次、执行模型、协同机制到应用场景,系统拆解CPU与GPU的本质区别与内在联系。

1. 定位与设计

CPU和GPU都是通用处理器,但诞生目标完全不同,这决定了它们在架构和工作原理上的根本区别

  • CPU = 延迟处理器(Latency Processor):用尽可能少的时钟周期完成单件复杂任务,擅长逻辑控制、分支跳转、串行计算;
  • GPU = 吞吐处理器(Throughput Processor):用尽可能多的核心同时完成海量简单任务,擅长数据并行、矩阵运算、图形渲染。

这种差异最直观的体现就是芯片面积的晶体管分配。下面这张图是经典的 CPU vs GPU 晶体管用途对比:

本质洞察:CPU 与 GPU 的区别不是"快与慢",而是"低延迟 vs 高吞吐"

  • CPU用深流水线 + 大缓存 + 复杂控制把一件事的延迟压到最低
  • GPU用海量简单核心 + 高带宽显存把同时能处理的数据量推到最大

两者是互补关系,而非替代关系。

2. 架构对比:核心结构差异

从微观到宏观,CPU 与 GPU 在核心、缓存、内存、控制单元、互联五个层面都有显著差异。

2.1 核心数量与复杂度

2.2 缓存层次

2.3 内存子系统

维度 CPU GPU
主存类型 系统内存 DDR5 / LPDDR5 显存 GDDR7 / HBM3e
带宽 50–80 GB/s(高端服务器 ~400 GB/s) GDDR7 约 1.0–1.8 TB/s;HBM3e 达 3–8 TB/s
容量 大(64GB–数 TB,易扩展) 受限(消费级 8–32GB;数据中心 H100 80GB,B200 192GB)
延迟 低(~100ns,优化后更低) 较高(HBM 数百 ns),靠并行掩盖
寻址 统一虚拟地址,硬件页表 独立地址空间(异构),或统一内存(UMA)
扩展性 插 DIMM 即可扩容 显存焊死在 PCB/封装上,不可扩展

关键区别:CPU的内存"大而慢",GPU的显存"小而快"。AI训练中,模型权重、激活值、梯度全部驻留显存——显存容量直接决定能训多大的模型,这也是 H100(80GB)→ B200(192GB) → B300(288GB)不断堆显存的根本原因。

2.4 控制单元与执行机制

2.5 互联与多芯片扩展

维度 CPU GPU
片间互联 UPI / Infinity Fabric / meshes NVLink(900GB/s)/ NVSwitch / Infinity Fabric
与主机互联 集成内存控制器直连 DRAM PCIe 5.0(64GB/s)或 NVLink 桥接
多芯片扩展 多socket(2–8 路常见) NVLink可连数百卡(NVL72 机架 = 72 GPU)
内存一致性 硬件保证多核缓存一致性 需软件管理或 NVLink C2C 一致性

3. 工作原理对比:执行模型

架构差异最终落在执行模型上。CPU 采用 SISD/MIMD,GPU 采用 SIMT——这是理解两者性能取向的关键。

CPU 让每个核干不同的活(MIMD);GPU 让所有线程干同一件活、处理不同数据(SIMT)。

3.1 四种并行模型对照

模型 含义 典型处理器 举例
SISD 单指令流单数据流 早期单核 CPU 一次处理一个数据
SIMD 单指令流多数据流 CPU 的 AVX-512 / GPU vector 一条指令同时算 8/16 个数据
MIMD 多指令流多数据流 多核 CPU 每个核跑不同程序
SIMT 单指令流多线程 GPU(NVIDIA 独创) 一条指令让 32 个线程并行执行

SIMT 是 SIMD 的演进:SIMD由编译器显式打包数据,程序员难感知;SIMT让每个线程看起来独立(有自己的PC、寄存器),硬件把同一时刻执行相同指令的线程自动打包成 warp 一起运行,既保留了 SIMD的效率,又降低了编程复杂度。这正是 CUDA 编程模型的基础。

3.2 延迟掩盖策略对比

4. 联系:异构协同工作机制

CPU与GPU不是对立的,而是互补的搭档。现代计算机是"CPU调度指挥 + GPU算力输出"的异构系统。这就是为什么你的电脑既有CPU又有GPU。

4.1 协同的三个关键机制

  • 编程模型:CUDA / OpenCL / SYCL。程序员编写一段“内核函数”(kernel),由 CPU 发起执行指令,GPU 将其映射到成千上万个线程上并行执行。CUDA 显著降低了 GPU 编程的门槛——开发者只需编写类似普通 C 语言的函数,硬件便能自动实现极致的并行计算。
  • 统一内存(Unified Memory):CPU 与 GPU 共享同一虚拟地址空间,运行时系统自动在系统内存与显存之间迁移数据页。这种方式简化了编程模型,但性能通常不如手动管理。像 Grace Hopper 这类“CPU+GPU 超级芯片”更是通过 NVLink-C2C 实现了硬件级内存一致性,延迟可降至个位数微秒级。
  • 互联带宽决定扩展上限:当单张显卡的显存无法容纳大型模型时,需要将模型切分到多张显卡上——此时卡间数据交换通过 NVLink(900 GB/s)而非 PCIe(64 GB/s)进行,这直接决定了大规模模型训练的集群扩展能力。NVL72 机架将 72 块 GPU 通过 NVSwitch 实现全互联,形成一个“虚拟超大 GPU”。

性能特征全景对比

维度 CPU GPU
设计目标 最小化单线程延迟 最大化数据并行吞吐
核心数 4–192 核 数千至上万核心
单核复杂度 高(乱序/推测/深流水) 低(顺序/简单)
主频 3–5+ GHz 1.5–2.5 GHz
执行模型 MIMD(每核独立指令流) SIMT(warp 同步执行)
缓存 深(3–4 级),单核容量大 浅(2–3 级),单核容量小
寄存器 每核少量(几十个) 每 SM 海量(64K–256K)
延迟掩盖 大缓存 + 乱序 + 预取 海量线程 + 零开销切换
内存带宽 50–400 GB/s 1–8 TB/s
内存容量 大(GB–TB,可扩展) 受限(8–288GB,焊死)
晶体管分配 控制+缓存 ~50–60% 计算单元 ~80%+
分支处理 强(硬件预测准确率高) 弱(分支发散致性能下降)
浮点峰值 低(单核数百 GFLOPS) 极高(单卡数十 TFLOPS–PFLOPS)
能效(FLOPS/W) 高(并行摊薄功耗)
编程复杂度 低(顺序编程,自动优化) 高(需手动管理并行/显存)
互联扩展 多 socket(2–8 路) NVLink(数十至数百卡)

6. 应用场景对比

判断准则:如果你的任务是"对大量数据做相同/相似的计算"(数据并行)用 GPU;如果是"一系列相互依赖、充满分支的逻辑"(控制流密集)用 CPU。AI 训练里前向/反向传播是海量矩阵乘 → GPU;数据预处理、采样、梯度同步协调 → CPU。

7. 发展趋势:边界正在模糊

近年来 CPU 与 GPU 的设计理念开始互相借鉴、边界模糊:

  • CPU 借鉴 GPU:x86 加入 AVX-512 向量扩展、AMX 矩阵扩展;ARM SVE 向量化;苹果 M 系列把 GPU 与 CPU 封装进同一 SoC共享统一内存——CPU 也在获得"并行吞吐"能力。
  • GPU 借鉴 CPU:GPU 增加 L2 缓存容量(Hopper 50MB、Blackwell 更大),提升对不规则访存的容忍;引入硬件级内存一致性(NVLink C2C);AMD CDNA 架构强化缓存层级。GPU 也在获得"低延迟"能力。
  • 融合形态:APU / 超级芯片,苹果 M 系列、AMD Ryzen AI、Intel Meteor Lake 把 CPU+GPU+NPU 封装进同一芯片共享统一内存池,数据零拷贝——传统"CPU 主机 + GPU 设备"的搬运开销被消除。
  • 专用加速器崛起:NPU/TPU/推理 ASIC 针对特定算子极致优化,CPU 与 GPU 之外出现第三极。

未来判断:CPU、GPU、专用加速器将长期共存于异构系统中。CPU 做控制与串行,GPU 做通用并行,ASIC 做极致专用。三者的分工不是谁替代谁,而是各司其职、协同加速。理解"延迟 vs 吞吐"这个根本分别,是把握所有处理器演进逻辑的钥匙。

posted @ 2026-07-31 13:27  冷水泡茶  阅读(16)  评论(0)    收藏  举报