
structure|1️⃣ 三级笔记、思想框架
🏗️ 思想框架
谷歌 TPU 的十年进化不是一个「天才灵感」的故事,而是一个**在硬件物理定律放缓的背景下,通过领域专用化(Domain Specific Acceleration)、软硬件协同设计(Co-design)和系统级思维,持续做出取舍决策(trade-offs)**的工程叙事。文章的核心论点:TPU 的成功不是魔法,而是「五百个普通决策组合成伟大」。
📐 大纲笔记
一、为什么需要 TPU:硬件缩放的终结
- Moore's Law 和 Dennard Scaling 的衰退
- 1985-2003 年 CPU 性能每 1.5 年翻倍,2003-2010 年每 2 年翻倍,之后接近每 20 年翻倍
- 晶体管密度的提升不再自动带来指数级的性能和功耗回报
- 「以前你只需要等,新一代芯片自然更快更省电。但 2010 年代后,等不起了」
- 深度学习的算力饥渴
- 2012 年 AlexNet 开启神经网络复兴,算法对数据和模型规模的需求恰好在硬件缩放放缓时爆发
- 2013 年 Google 预测如果不采取措施,需要将数据中心容量翻倍——「即使经济上可行,也需要浇混凝土、签风力发电合同、采购安装大量计算机」
- 领域专用加速器(DSA)的逻辑
- 通用处理器为所有程序形态设计,专用设计「以不能做什么来定义自己」
- 核心问题:在固定的晶体管和功耗预算下,怎样分配资源才能榨出最大性能?
- 神经网络适合专用化:操作集小(矩阵乘、向量运算)、高度可并行、可在运行前完全规划
二、TPUv1:推理芯片——苦行僧式的极简设计
- 设计动机:15 个月内阻止推理需求吞噬数据中心容量
- 核心架构
- PCIe 连接的单线程协处理器
- 256×256 权重驻留(weight-stationary)脉动阵列(systolic array),即 MXU
- 24MiB 软件管理的 Unified Buffer(片上 SRAM)+ 8GiB DDR3 DRAM
- 数据通路占芯片面积约 2/3
- 它不是什么:没有多级缓存、没有多线程、没有分支预测、没有预取、没有 TLB
- 「TPUv1 是一台斯巴达式的设备,目标只有一个:让推理变快」
- MXU 脉动阵列的工作原理
- 权重从右侧预加载到每个 MAC 单元,输入从左侧逐周期流入
- 权重加载采用对角线方式(不等全部加载完就开始计算),配合双缓冲(double buffering)
- 65,536 个 MAC 单元(256×256),部分和向下传递至 4096 行累加器
- 延迟隐藏(Latency Hiding)
- 运行时知道每个操作的确切延迟,智能地将内存访问、数据搬运和计算重叠执行
- 矩阵乘法延迟长 → 期间 UB 准备下一批输入、激活单元处理累加器结果、权重 FIFO 加载更多权重
- 关键成果:比 K80 GPU 快 15-30 倍推理速度,30-80 倍性能功耗比
三、TPUv2/v3:训练芯片——解耦与可编程化
- TPUv1 的局限:不支持反向传播、int8 精度不够做梯度更新、固定激活单元不够灵活、无法多设备协同
- TPUv2 的根本性重构
- 双核芯片,每个核心:标量控制器 + 可编程向量处理单元(VPU)+ 本地 SRAM + 128×128 MXU + HBM
- 引入芯片间互连(ICI)实现多设备通信
- BFloat16(bf16)
- 动态范围比精度更重要:bf16 与 fp16 同为 16 位,但指数位更多、尾数位更少
- MAC 电路只需 64 个加法器(fp32 需 576 个,fp16 需 121 个)→ 相同面积和功耗预算下塞进更多 MAC
- 为什么 128×128 而非 256×256
- 布线(wiring)约束:大核需要长全局布线,电阻和电容不均匀缩放
- 计算利用率随阵列面积二次方下降,但小阵列用更短更省电的布线
- 两个 128×128 = 256×256 的总计算量,但简化电路设计
- 标量单元与 VLIW 指令
- XLA 编译器将程序静态分析后降级为 322-bit VLIW 指令束
- 包含 2 标量 + 4 向量 + 2 矩阵 + 1 杂项 + 6 立即数指令槽
- 杂项槽「控制天堂与人间」:内核启动、DMA、同步守卫(WAIT)
- 子系统延迟已知且恒定 → XLA 在编译时精确放置 WAIT 指令,最小化停顿
- VPU:可编程向量处理单元
- 128 向量通道 × 8 子通道,每个子通道连接 32 个双发射 ALU
- 16MiB VMEM 软件管理,显式 load/store,不需要缓存层级
- ICI:芯片间互连
- 4 条 496Gbit/s 双向链路,OSFP 被动铜缆
- 256 芯片排列为 16×16 2D 环面(torus)
- 占芯片面积 13%,换取分布式计算能力
- MPI 风格集合通信(All-to-All, AllReduce 等)实现跨芯片同步
- TPUv3:相对小幅迭代——每核双 MXU、更高时钟、双倍 HBM、更高 ICI 带宽、液冷、1024 节点机架,芯片面积仅增 6%
四、TPUv4:系统级扩展——从芯片思维到数据中心思维
- 思维转变:从「芯片上操作 A 和 B 怎么比较」到「整个系统的 TCO(总拥有成本)怎么优化」
- 「大部分运营成本花在电力供应合同上,而非实际电费。省了已经供应的电力并不能大幅改善 TCO」
- MXU 优化:4 输入加法器
- 将 4 个乘积打包后再传递,加法器链从 N 缩短为 N/4
- 芯片面积减少 40%,峰值功耗降低 12%
- CMEM:128MiB 共享片上存储
- 类似 L3 缓存但软件可编程,占芯片面积 28%
- 7nm 工艺下 SRAM 访问能效是 DRAM 的 20 倍
- 推理时可将模型权重预取到 SRAM,实现多租户高利用率
- SparseCore:为推荐模型而生
- 占 5% 芯片面积和功耗
- 「Sea of Cores」架构,16 个计算元素(tiles)靠近 DRAM
- 专门加速嵌入(embedding)查找和稀疏矩阵操作
- 比 CPU 快 30.1 倍处理 DLRM 模型
- OCI:片上互连
- 将 ICI 从「既管片上又管片间」解耦为「ICI 只管片间,OCI 管片上」
- 512B 宽数据路径分为 4 组,每组独立服务 1/4 HBM 带宽
- 短线取代点对点长线,为未来设计打开灵活扩展路径
- 4D Tensor DMA
- 从 2D 升级到 4D,一次 DMA 完成之前需要多次往返的张量重排
- DMA 引擎分布式部署而非集中式
- OCS:光电路交换——数据中心的「可编程插线板」
- 3D 环面 + 扭曲拓扑(Twisted Torus)
五、软件基础设施:Island Hopping
- 核心挑战:数千用户争夺有限 TPU,每秒空闲芯片时间都在浪费 TCO
- Slice 与 SPMD
- 作业生命周期
- 跨 Pod 通信:Multislice 与 Pathways
六、TPUv4 之后与哲学反思
- 后续世代:v5p/v5e → Trillium (v6e) → Ironwood (v7)
- 文章的核心洞见
concepts|2️⃣ 关键概念、概念网络
agentic reading|3️⃣ 费曼 x3