HelloAI
L7 第 1 篇 🐣 难度 🕒 12 分钟

GPU 速览:为什么 AI 离不开它

A100、H100、B200 是什么?为啥 AI 用 GPU 不用 CPU?这一篇打开硬件的黑盒。

阿莱
2026/7/14

L0/L1/L2/L3/L4/L5/L6 都在讲”AI 怎么工作”。L7 我们换个角度——AI 在物理世界上跑在什么硬件上、怎么部署、怎么省成本

第一站:GPU——AI 革命的物理基石。

第一站:CPU vs GPU

你的笔记本里有 CPU——为什么 AI 不用它?

CPU:少数”全能选手”

典型 CPU(如 M3 Pro):

  • 10-14 个核
  • 每个核功能极强(分支预测、缓存、复杂指令)
  • 适合串行多样化 任务(操作系统、浏览器、游戏 AI)
4 个核同时做 4 件不同的事:
核 1: 渲染网页
核 2: 播放音乐  
核 3: 后台 Slack 同步
核 4: 系统进程

GPU:海量”专科选手”

典型 GPU(如 H100):

  • 18432 个 CUDA 核心
  • 每个核功能简单(基本只能做并行算术)
  • 适合大规模并行重复任务
18432 个核同时做同一件事的不同部分:
核 1-512: 算矩阵的第 1-512 行
核 513-1024: 算第 513-1024 行
... 同时进行

神经网络为啥适合 GPU

神经网络计算几乎全是大矩阵运算——

y = W x + b    ← W 可能是 1000×1000 = 100 万个乘法

100 万次乘法:

  • CPU:14 核串行——慢
  • GPU:上万核并行——快几百倍

一个数据:训 GPT-3 用 CPU 估算要 350 年。用 GPU 集群是 34 天

第二站:NVIDIA 的统治地位

为什么 AI = NVIDIA?

CUDA 生态

NVIDIA 早在 2007 年就发布了 CUDA——专门为通用计算设计的 GPU 编程接口。

到 2026 年,几乎所有 AI 框架(PyTorch、TensorFlow、JAX、CUDA-X)都基于 CUDA。

AMD、Intel 也有 GPU,但生态远不如 CUDA 成熟——这是 NVIDIA 的护城河。

各代 NVIDIA GPU

型号年份显存TFlops(FP16)定位
V100201732GB125第一代深度学习卡
A100202040/80GB312训练 GPT-3 用的
H100202280GB989训练 GPT-4 用的
H2002024141GB989H100 升级版(显存大)
B100/B2002025192GB2000+当下最强
GB200 NVL722025集群数万整柜方案

每代涨 2-3 倍性能

消费级 vs 数据中心级

类别代表显存价格
消费级RTX 409024GB$2,000
消费级RTX 509032GB$3,000
数据中心A100 80GB80GB~$15,000
数据中心H10080GB~$30,000
数据中心B200192GB~$60,000

为什么数据中心卡这么贵

  • 显存巨大(训大模型必须)
  • NVLink 高速互联(多卡通信快)
  • 长时间稳定(24/7 训练几个月)
  • 严格 QA 和保修

一台 8 卡 H100 服务器约 30 万美元——这是为什么”训大模型贵”的物理来源。

第三站:GPU 的内部组成

学一点术语:

CUDA Cores

最基本的处理单元——干算术运算。

Tensor Cores

专门加速矩阵运算——2017 年 Volta 架构引入。 神经网络几乎全用它。同一张 H100,Tensor Cores 比 CUDA Cores 快 8 倍。

显存(VRAM)

存数据和模型参数。深度学习的瓶颈通常是显存,不是算力

训练 7B 模型需要约 80GB 显存(参数 + 优化器状态 + 激活)。 单张 A100 80GB 勉强够。 H100 + 模型并行能塞 70B 模型。

卡和卡之间的高速通信——比 PCIe 快 10 倍。 多卡训练时数据要在卡间同步,NVLink 决定上限。

第四站:内存层级(最重要的工程概念)

GPU 内有不同速度的内存:

速度

寄存器 (Registers)    几 KB/SM   超快      ←
共享内存 (Shared)      96 KB/SM   快        ←
L2 缓存                40-50 MB    较快
显存 (HBM/GDDR)        80-192 GB  慢
PCIe 到 CPU 内存        系统 RAM    超慢

↓ 越下面越大越慢

一个反直觉的事实:GPU 计算速度增长比内存速度增长快得多。 结果:今天的 GPU 经常”算得太快,等内存”——这叫 memory-bound

Flash Attention 的精髓

L3-05 我们学了 Attention 公式:

softmax(QKT/d)V\text{softmax}(QK^T / \sqrt{d}) V

传统实现:

  1. QKTQK^T,存到显存(n2n^2 大)
  2. 算 softmax
  3. 乘 V

显存读写 n2n^2 次——超慢。

Flash Attention(2022)的技巧让中间结果留在快速的”共享内存”里,不写到慢的显存—— 结果:同样的注意力计算,快 2-5 倍

这就是为什么”长上下文”在 2023-2024 年突然变得可行——Flash Attention 把内存瓶颈打开了。

第五站:怎么选 GPU

按场景:

入门学习

  • Google Colab 免费 T4:跑 demo 够用
  • RTX 3090 / 4090:本地开发,能训 LoRA 7B 模型

个人/小团队

  • 2-4 张 4090:自建实验室
  • 租 GPU 云(Vast.ai、Lambda Labs):按需付费,省 capex

公司中型 AI 项目

  • 8 张 A100/H100 服务器:自建一台 + 几台 cloud
  • AWS/GCP/Azure 云:动态扩缩

大型 LLM 训练

  • 1000+ 张 H100 集群:通常和 NVIDIA、超微等合作搭建
  • 专用云:OpenAI 和微软、Anthropic 和 AWS 都有专属算力承诺

第六站:训练 vs 推理

GPU 用于两种场景:

训练(Training)

  • 需要:大算力 + 大显存 + 高互联
  • 持续时间:几天到几个月
  • 优先级:吞吐量(每秒处理样本数)
  • 适合:H100、A100、B200 这种”训练卡”

推理(Inference)

  • 需要:低延迟 + 高吞吐 + 低成本
  • 持续时间:每次毫秒-秒级
  • 优先级:响应时间 + 每个查询的成本
  • 适合:A10、L40S、RTX 4090,甚至更小的卡

关键差别

  • 训练:1 张超贵的卡 8 小时
  • 推理:100 张便宜的卡每天 24 小时

成本结构完全不同。

第七站:替代方案

NVIDIA 不是唯一选择:

AMD GPU(MI300X)

  • 192GB 显存(比 H100 大)
  • 性能接近 H100
  • 价格便宜 20%
  • 缺点:CUDA 生态不通用——许多代码要改

近年 AMD 在 ROCm 上投入很大,但兼容性仍有差距。Meta 等大公司开始混用 AMD 和 NVIDIA。

Google TPU

Google 自研,专门为 TensorFlow / JAX 优化——

  • Google Cloud 独家
  • Gemini 等模型在 TPU 上训练
  • 单 TPU 性能不如 H100,但集群效率高

国产替代

2024-2026 由于出口限制:

  • 华为 Ascend 系列:910B / 910C,国内顶尖
  • 燧原摩尔线程寒武纪
  • AMD H20(特供版):性能低于 H100 但仍可用

国内大厂在加速适配——未来 5 年国产化是确定方向

第八站:成本估算

一个简化模型:

训练 LLM

模型估算成本
7B 模型预训练50K50K - 100K
70B 模型预训练1M1M - 10M
GPT-4 级别(>1T)50M50M - 100M+

推理 LLM

模型每百万 token 成本
GPT-4o API5输入/5 输入 / 15 输出
Claude 3.5 API3输入/3 输入 / 15 输出
自建推理(70B)~1输入/1 输入 / 3 输出
自建推理(7B)~0.1输入/0.1 输入 / 0.3 输出

自建推理通常便宜 10 倍——但需要工程团队。

💡 一个工程铁律

显存比算力贵。 GPU 设计的最大成本来自高带宽 HBM 显存——这就是为什么 80GB 卡比 40GB 卡贵 2 倍。 学 LLM 系统优化,首要关注的永远是显存——能让 70B 模型塞进单卡的技巧(量化、CPU offloading、PagedAttention)都是钻这一点。

下一篇:《分布式训练:DP / DDP / FSDP / Tensor Parallel》 —— 一张卡装不下,怎么用多张卡训。

📬

读到这里说明你认真在学 🎯

订阅每周精选 —— 下一篇新文章 / 新可视化第一时间送到邮箱。

💬

讨论区

· 用 GitHub 账号登录评论
⚠️ Giscus 评论未配置 —— 在 src/components/Comments.astro 顶部填入 仓库 ID 和分类 ID(见组件注释里的配置步骤)。