一位全能大厨
手艺最好,什么菜都会做。但只有一双手:跑冰箱拿料、回来包一个,再跑一趟。
芯片干的活,大部分是海量的小计算。把每一次计算想成包一个饺子,把内存想成冰箱。六个厨房比 12 秒,看三件事:谁包得多,谁的第一个饺子最先出锅,谁最省电。
手艺最好,什么菜都会做。但只有一双手:跑冰箱拿料、回来包一个,再跑一趟。
人多力量大,16 个人同时包。代价是每个人都要自己跑冰箱,门口挤成一团,电费很高。
一位大厨加 6 个帮工,共用一台冰箱。省地方又便宜,但大家还是得自己跑冰箱。
4 个工位各守一种馅,馅就放在手边,从不去冰箱拿。饺子皮坐着传送带流过,每过一站加一勺。
把 NPU 的流水线放大成一整面墙。开工前要先让波浪铺满,之后每一拍整面墙一起出饺子。
所有料提前摆在一长排台面上,几乎不跑冰箱。第一个饺子出锅最快,之后稳定地一个接一个。
12 秒内包好的总数,越长越好
越短越好,决定你等多久才看到第一个结果
越短越省电
比赛进行中……
ISP、DSP、DPU、QPU 没有参赛,因为它们干的不是这种 AI 计算:ISP 修照片,DSP 处理声音,DPU 搬运网络数据,QPU 用量子原理算特定难题。拿它们比包饺子,就像让洗碗机和厨师比切菜。它们各自的本事在下面的图鉴里。另外,不同芯片的规模差别很大,比赛里的数字是为了演示做法差异而设定的。
上面的厨房是简化模型。这一节把每个比喻对应回芯片设计里的术语和公开数字,想深入的读者可以对照着看。
Mark Horowitz 在 ISSCC 2014 的报告里列出了 45nm 工艺下各种操作的能耗,Han 等人在 2015 年的剪枝论文中把它整理成一张表,此后被 AI 芯片相关的论文和课程反复引用。从片外 DRAM 读一个 32 位数要 640 pJ,大约是一次 32 位浮点乘法(3.7 pJ)的 170 倍。动画里跑冰箱只设成包饺子的 5 倍耗电,真实差距要大得多。
这个差距常被称为「存储墙」(memory wall):计算单元越来越快,数据却供不上。AI 加速器的设计大多围绕同一个目标:一个数据从 DRAM 读进来以后,让它参与尽可能多次计算。每搬一个字节能做多少次运算,叫算术强度(arithmetic intensity)。Roofline 模型用它判断一个任务是受算力限制,还是受内存带宽限制。
| 芯片 | 动画里的比喻 | 真实的计算组织 | 数据放在哪 | 瓶颈与取舍 |
|---|---|---|---|---|
| CPU | 一位全能大厨 | 少量强核心,乱序执行、分支预测,带 SIMD 向量单元(AVX-512、NEON 等) | 多级缓存(L1/L2/L3)加 DRAM | 并行度有限;擅长控制流复杂、对延迟敏感的串行任务 |
| GPU | 16 个帮工一起上 | SIMT:线程以 32 个为一组(warp)同步执行。H100 SXM 有 132 个 SM,配 Tensor Core 专做矩阵块乘法 | HBM 显存(H100 SXM:80 GB,3.35 TB/s),加共享内存和 L2 缓存 | 功耗高;批量小时受显存带宽限制,算力闲置 |
| APU | 大厨和帮工挤一间厨房 | CPU 和 GPU 做在同一块芯片上 | 统一内存,两者共用(PS5:16 GB GDDR6,448 GB/s) | 省掉 CPU 与 GPU 之间的数据拷贝,但两者争用同一份带宽 |
| NPU | 饺子流水线 | 大量低精度乘加单元(INT8、INT4),常见脉动阵列或向量阵列结构,各厂商设计不同 | 片上 SRAM,尽量放下权重和中间结果 | 能效高;只支持特定算子,遇到不支持的操作要退回 CPU 或 GPU 执行 |
| TPU | 铺满整面墙的流水线 | 权重驻留型脉动阵列。TPU v1 是 256×256 = 65,536 个 8 位乘加单元,峰值 92 TOPS | 片上缓冲(v1 共 28 MiB)加片外内存,从第二代起改用 HBM | 阵列要先「灌满」才进入满速,适合大批量矩阵运算 |
| LPU | 料全摆在台面上的出餐线 | Groq 的流式处理器(TSP),执行顺序由编译器提前排定(静态调度) | 只用片上 SRAM,每片约 230 MB,不接 HBM | 单个请求延迟低;容量小,大模型要用很多片 |
比赛里「包得多」对应吞吐量(throughput),「第一个出锅」对应延迟(latency)。放到大模型推理上,吞吐是整台机器每秒生成的 token 总数,延迟是首个 token 的等待时间(TTFT)和之后每个 token 的间隔。
大模型逐字生成(decode)时,每出一个 token 都要把全部权重读一遍。以 700 亿参数、8 位量化的模型为例,权重约 70 GB。H100 SXM 的显存带宽是 3.35 TB/s,读一遍约需 21 ms,所以单卡、一次只服务一个请求时,每秒最多约 48 个 token。这是忽略 KV cache 和其他开销的理论上限。这个阶段 GPU 的算力大部分闲着,瓶颈在带宽。加大批量能让同一份权重同时服务多个请求,总吞吐上去了,每个用户等待的时间却不会变短。
Groq 的 LPU 走了另一条路:权重拆开放进大量芯片的片上 SRAM,片上带宽远高于 HBM,再配合静态调度,单个请求的出字速度就很快。代价是容量。按每片 230 MB 计算,只放下一个 70 GB 的模型就需要约 300 片芯片。
PU 是 Processing Unit(处理器)的缩写,前面的字母说明它专门干什么。你手机里那一块芯片,其实同时装着 CPU、GPU、NPU、ISP、DSP 好几个。
比喻:一位全能大厨(看上面的比赛)
电脑和手机的总指挥,什么活都能干,最擅长逻辑复杂、一步接一步的事。
在哪:所有电脑手机。Intel、AMD、苹果 M 系列比喻:16 个帮工一起上(看上面的比赛)
本来是画游戏画面的,因为能同时算海量小题,现在成了训练 AI 的主力。
在哪:显卡、AI 数据中心。英伟达比喻:饺子流水线(看上面的比赛)
专门跑 AI 的省电芯片,比如手机里的人像抠图、语音识别、实时翻译。
在哪:手机和新款笔记本。苹果神经网络引擎、高通 Hexagon比喻:把饺子流水线铺满一整面墙
谷歌自己造的 AI 芯片。饺子皮从上往下流,馅料从左往右传,所有工位像波浪一样依次开工。真实的 TPU 一面墙上有上万个工位。
原理:权重驻留型脉动阵列:权重预先装进乘加单元,输入数据从一侧流入,部分和沿另一方向传递,每个权重被多次复用。详见上面的对照表。
在哪:谷歌的数据中心,训练和运行 Gemini 等模型比喻:料全备在台面上的超长出餐线
Groq 公司为大模型设计。它把模型参数直接放在芯片里,几乎不去「冰箱」拿,所以 AI 回答时一个字接一个字出得特别快。
原理:只用片上 SRAM,不接 HBM,由编译器静态调度每个时钟周期的数据流动。单请求延迟低,但大模型需要很多片芯片。
在哪:Groq 的云服务比喻:后门专管收货的仓库管家
数据中心里源源不断有数据进出。DPU 负责收货、分拣、上架,大厨(CPU)就能专心做菜,不被打断。
原理:把网络协议处理、存储虚拟化、加密等基础设施工作从 CPU 卸载(offload)。BlueField-3 支持 400 Gb/s 网络。
在哪:服务器网卡。英伟达 BlueField比喻:把刚买回来的菜洗净、调味、摆盘
摄像头拍到的原始画面又暗又满是噪点。ISP 一步步降噪、调颜色、提亮,变成你看到的照片。按下快门那一瞬间就做完了。
原理:固定功能的图像流水线,依次做去马赛克(Bayer 阵列插值)、降噪、白平衡、色彩校正、色调映射,以及多帧 HDR 合成。
在哪:每部手机和相机比喻:专门对付抽油烟机噪音的人
以耳机降噪为例:DSP 听到外面的噪音,马上造一个正好相反的声波。两个一叠加,互相抵消,你耳朵里就安静了。
原理:擅长连续的乘加和滤波运算(FIR、IIR、FFT)。主动降噪用自适应滤波器实时估计噪声,对延迟要求极高。
在哪:手机、耳机、音箱比喻:大厨和帮工挤在同一间小厨房
AMD 把 CPU 和 GPU 做在同一块芯片上,共用一台冰箱(内存)。省地方、省电、成本低,很适合游戏机。
原理:统一内存架构:CPU 和 GPU 访问同一块内存,不必来回拷贝数据,代价是两者共享带宽。
在哪:PS5、Xbox、Steam Deck 掌机比喻:还在旋转的硬币
普通芯片里每一位不是 0 就是 1,像放平的硬币。量子比特在计算时像转着的硬币,还没定下来;最后一测量才落成 0 或 1。只对少数特定问题有优势,还在实验阶段。
原理:用叠加和纠缠表示状态,靠干涉提高正确答案出现的概率。量子比特极易受噪声干扰,大规模计算需要量子纠错,目前只在因数分解、量子化学模拟等特定问题上有理论优势。
在哪:IBM、谷歌等公司的实验室灵感来自 nnn 在 X 上发的 CPU・GPU・NPU 动画。
动画是比喻,数字是为了好懂而设定的,不是真实芯片的测量值。真实情况里的规律是一致的:GPU 算力最猛也最耗电,NPU 靠「数据少搬运」换来很高的能效,CPU 胜在什么都能做。