加速器格局:GPU、TPU、ASIC 与国产芯片
设计一块 AI 加速器时,每个团队都要回答同一组问题:通用性换不换性能?显存多大才够?互联开放还是封闭?软件栈从零建还是寄生在 CUDA 上?不同答案造出了不同的芯片。本章横向对比主要玩家的设计哲学与真实参数,帮你建立"看规格表"的判断力——参数表上的大数字从不直接等于训练快。
NVIDIA:吞吐机器的集大成者
Section titled “NVIDIA:吞吐机器的集大成者”NVIDIA 的路线是通用性优先:一个 GPU 同时吃下训练、推理、图形、科学计算,靠每一代加宽 Tensor Core、加大显存、加宽 NVLink 来保持领先。
| 参数 | A100 | H100 SXM | H200 | B200 |
|---|---|---|---|---|
| BF16 稠密算力 | 312 TFLOPS | 989 | 989 | 2250 |
| FP8 稠密算力 | — | 1979 | 1979 | 4500 |
| 显存 | 80 GB HBM2e | 80 GB HBM3 | 141 GB HBM3e | 192 GB HBM3e |
| 显存带宽 | 2.0 TB/s | 3.35 | 4.8 | 8 |
| 互联 | NVLink3 600 GB/s | NVLink4 900 | 900 | NVLink5 1800 |
| 功耗 | 400 W | 700 W | 700 W | 1000 W |
NVIDIA 真正的护城河不是单卡参数,是三层生态:CUDA 十八年的工具链与算子库、NCCL 等通信库对所有并行模式的覆盖、以及 Trellis 般的kernel 生态(cuBLAS/CUTLASS/FlashAttention 全部首发在 NVIDIA 上)。国产芯片替代的最大成本从来不是买卡,是重写这套软件栈。
TPU:领域专用的极致
Section titled “TPU:领域专用的极致”Google TPU 的哲学与 GPU 相反:砍掉一切与矩阵乘无关的东西。没有图形管线、没有复杂的 warp 调度,计算核心是大面积脉动阵列(systolic array)——数据在阵列中逐拍流动、每个单元只做乘加,靠结构化数据流打满利用率。
| 参数 | TPU v5p | TPU Trillium (v6e) | 说明 |
|---|---|---|---|
| BF16 算力 | 459 TFLOPS | 918 | 脉动阵列 |
| HBM | 95 GB | 32 GB(推理优化) | |
| 带宽 | 2.8 TB/s | ||
| 互联 | Pod 内 4800 芯片 | 训练按 pod 租用 |
TPU 的取舍:
- 换来的是利用率:脉动阵列对规整的大矩阵乘效率极高,配合 XLA 编译器做全局融合,MFU 常比同代 GPU 高一截
- 付出的是灵活性:不规整算子(动态 shape、稀疏查表、变长序列)在脉动阵列上很别扭,全靠编译器兜底;生态绑定 JAX/PyTorch-XLA
- 真正的强项在 pod:TPU 的设计单位从来不是单卡,是 8960 芯片的 pod——轨道优化拓扑与芯片同代设计,万卡训练的组网复杂度比 GPU 集群低
其他专用芯片:各有各的刀口
Section titled “其他专用芯片:各有各的刀口”AWS Trainium2 / Inferentia2:自研训练/推理芯片,脉动阵列 + HBM,绑定 SageMaker/EKS 生态,按性价比切市场(Trainium2:~650 TFLOPS BF16、96 GB HBM3)。
Intel Gaudi3:主打互联集成——芯片内置 21 条 200 Gbps RoCE,不需要外置交换机组 8 卡环,赌的是"组网简单"这个卖点。
Groq LPU:推理专用,彻底砍掉 HBM,权重放片上 SRAM(230 MB/卡),靠 188 卡的大规模扇出换吞吐。把 roofline 走到极端的样本:SRAM 带宽 ~80 TB/s,解码延迟极低,但权重必须切到极小——只适合小模型高吞吐场景。
Cerebras:反过来,整片晶圆做成一颗芯片(90 万核心、44 GB 片上 SRAM),消灭卡间通信。适合超大 batch 训练,生态与通用性同样受限。
国产芯片:现实的约束与进展
Section titled “国产芯片:现实的约束与进展”| 芯片 | BF16 算力 | 显存 | 互联 | 软件栈 |
|---|---|---|---|---|
| 华为昇腾 910B | ~376 TFLOPS | 64 GB HBM2e | HCCS ~392 GB/s | CANN(类 CUDA) |
| 寒武纪思元 590 | ~折算接近 A100 | 64 GB HBM2e | MLUlink | Neuware |
| 海光 DCU K100 | ~与 MI50 同源 | 32/64 GB | 类 ROCm | DTK(兼容 ROCm/HIP) |
三条现实约束:
一、制程与 HBM 是硬约束。 先进制程受限意味着单卡算力与能效有代差;HBM 供应同样是瓶颈。国产芯片的策略普遍是用数量与互联补单卡差距——所以集群软件(调度、容错、通信库)的质量比单卡参数更关键。
二、生态迁移是真实成本。 CANN/Neuware 与 CUDA 的算子覆盖、调试工具、社区答案都有差距。一个务实的评估方法:拿自己的真实模型(不是 benchmark)跑一遍,数一数多少算子走了 fallback、多少手写算子要移植。
三、训练框架适配在快速收敛。 PyTorch 的 device 抽象(torch.accelerator)与 FSDP 的设备无关化让迁移成本逐年下降;真正难的是自定义 CUDA kernel 的移植(Triton 的多后端是重要缓解)。
怎么比较:看规格表的四个陷阱
Section titled “怎么比较:看规格表的四个陷阱”一、峰值算力的精度陷阱。 "1000 TFLOPS" 可能是 FP8 稀疏、也可能是 BF16 稠密——差 8 倍。比较前先归一到同一精度同一稠密度。
二、显存容量 ≠ 显存带宽。 大显存配窄带宽的卡(推理友好)与宽带宽的卡(训练友好)是两种产品,看你的瓶颈在哪一侧。
三、互联要看"哪些卡在一个域里"。 NVLink 域(8 卡全互联)、PCIe 拓扑、以及跨机的组网是三张不同的网,张量并行能不能跨机,直接由这个决定。
四、软件成熟度是隐藏的最大参数。 同样的纸面算力,生态成熟度能差 30–50% 的有效 MFU。买卡前先问:这个芯片上,我的模型栈(框架、算子、通信、调试)每一层都有人负责吗?
- GPU 走通用+生态路线,护城河是 CUDA 工具链与算子库,不是单卡参数。
- TPU 用脉动阵列 + XLA 换利用率和 pod 级扩展,代价是灵活性与生态绑定。
- 专用芯片(Groq/Cerebras/Trainium)各自把 roofline 推向极端:SRAM、晶圆、性价比。
- 国产芯片受制程与 HBM 约束,策略是集群与软件补单卡;生态迁移成本是评估重点。
- 比较规格表:先归一精度与稠密度,再看带宽与互联域,最后评估软件成熟度。
- 内存层次与 HBM — 上一章:所有芯片共享的物理约束
- 节点内互连 — 下一章:八卡为什么是一个单位
- 混合并行与配置方法论 — 不同芯片上并行策略的差异
- CUDA 编程模型 — 生态护城河的实体