老板问:上了 TPU,为什么没快多少?
你的 GPU 集群,可能买错了。不是性能不够,而是从一开始,你选的就不是一套最优解。TPU 不是 GPU 的升级版,它是另一套设计哲学。
老板问:我们上了 TPU,为什么训练速度没快多少?
你答不上来。
问题不在 TPU,在你一开始就没想清楚:你的计算模式,到底适合什么。
很多团队的 GPU,可能买错了
不是性能不够。
是从一开始,你选的就不是一套最优解。
很多团队花几百万上了 A100,后来才发现:自己的计算模式,明明更适合 TPU。
也有团队上了 TPU,结果发现:自己的模型天天变,批量又小,TPU 的优势根本没发挥出来。
CPU/GPU/TPU 的差异,不是谁先进谁落后,而是工程权衡的不同选择。
选错了,不是技术能力问题,是没想清楚自己的计算模式。
TPU 到底做了什么,让它值得被单独设计出来
脉动阵列:数据流动,而不是搬运
TPU 的核心设计,叫"脉动阵列"(Systolic Array)。
听起来抽象,但落到实际计算上,差距巨大。
CPU 的方式:
内存 → 寄存器 → ALU → 寄存器 → 内存
数据来回搬运,每做一次计算,就要搬一次家。
GPU 的方式:
显存 → 核心 1/2/3... → 显存
成千上万个核心并行,但还是要搬运。
TPU 的方式:
数据 → [计算单元] → [计算单元] → [计算单元] → 结果
数据在阵列中流动,每流动一步,就做一次乘法加法。
计算单元不动,数据来找它。
这个差异,落到矩阵乘法上,效率差距是数量级的。
低精度:不是"将就",是"够用"
AI 训练和推理,很多时候不需要 32 位浮点数。
8 位整数、16 位浮点数,够用。
TPU 原生支持低精度计算。这意味着:
- 同样的芯片面积,能放下更多计算单元
- 数据传输量更小
- 功耗更低
GPU 也能做低精度,但 TPU 是"原生支持",不是"兼容模式"。
批量推理:TPU 的真正优势场景
想象一下:你要对 100 万张图片做分类。
GPU 可以并行处理,但每次还是要处理一批。
TPU 的设计,让它在大批量、固定计算模式的场景下,效率更高。
TPU 的价值,不是比 GPU 更快,而是把特定计算模式做到极致。
什么场景,TPU 帮不上忙
写到这儿,得给 TPU 一个公平的位置。
TPU 不是万能。
小批量、频繁变更
你的模型天天变,批量只有几十几百。
TPU 的优势在大批量、固定计算模式。
这种场景,GPU 的灵活性更有价值。
需要本地部署
TPU 主要通过 Google Cloud 提供。
如果你习惯本地部署、或者预算有限,GPU 生态更成熟、选择更多。
大量非矩阵操作
你的计算里有大量非矩阵操作。
TPU 是为矩阵计算设计的。
这种场景,TPU 的优势会被稀释。
不是 TPU 不够强,是你没用它擅长的地方。
什么时候该认真考虑 TPU
如果你的场景具备这些特征,就该认真考虑 TPU:
- 大规模训练任务
- 批量推理,且计算模式相对固定
- 矩阵密集型计算
- 已经在用 Google Cloud,能方便接入 TPU
- 对成本效益有明确要求,算过账
反过来,如果你的场景是:
- 小批量、频繁变更的模型
- 需要本地部署
- 预算有限,需要灵活选择硬件
- 计算模式不固定,有大量非矩阵操作
那么 GPU 可能更合适。
下次老板再问为什么没快多少,你可以这样回答:
不是 TPU 不够快,是我们的计算模式,没用到它擅长的地方。
TPU 不是黑科技,是工程优化。
用对了,它比 GPU 值。
用错了,它还不如 GPU。