AI 芯片 能效比:为什么专用芯片每瓦算力是 CPU 的百倍
更新时间:2026-09-25。本文是「集成电路大类 · 芯片设计」**入门层(beginner)**的一篇新正文。上一篇 AI 加速器入门:NPU/GPU 为什么比 CPU 快回答了「快」的问题——神经网络全是海量规则的乘加,MAC 阵列天然对口。但在真实世界里,决定手机能不能离线跑模型、数据中心能装多少张加速卡的,往往不是「快不快」,而是「每花一瓦电,能换来多少算力」。这一篇就专门拆开 AI 芯片 能效比这件事:电到底花在了哪里,专用芯片凭什么省。
本文要回答的问题
- 衡量 AI 芯片省电程度的指标 TOPS/W 是什么意思?
- 同样做一次乘加,CPU 背后额外付出了哪些指令和访存开销?
- 为什么说「搬一次 DRAM 的电,够算上百次乘加」?
- MAC 阵列怎样用一条指令驱动成百上千次乘加、让数据在片上复用?
- CPU、GPU、NPU 的每瓦算力大概差多少,标称 TOPS/W 又有哪些水分?
一、能效比:AI 芯片真正的第一指标
买显卡看算力 TOPS,部署模型时看的却是另一笔账。手机电池就十几瓦时,手表散热只能给到几百毫瓦;数据中心一个机柜供电有上限,电费更是常年开销。模型能不能跑、跑多少路、一天花多少钱,全部指向同一个指标:能效比(energy efficiency)。
AI 芯片用 TOPS/W(Tera Operations Per Second per Watt,每瓦每秒万亿次运算) 表示能效比:芯片功耗 10 瓦、每秒能做 100 万亿次 INT8 运算,能效比就是 10 TOPS/W。它等于算力除以功耗,数字越大越省电。
注意能效比和算力并不矛盾、反而是一体两面:在固定的功耗预算(手机 SoC 大约几瓦、数据中心加速卡 300~700 瓦)下,能效比直接决定了能塞下多少算力。手机上一个 70 亿参数的大模型,如果每生成一个字要多耗一倍的电,要么电池扛不住,要么因为发热而降频卡顿;数据中心里一座万卡集群,电费在几年运行里可能超过买卡的钱,机柜供电和散热密度还直接限制了能装多少张卡。反过来,能效比翻倍意味着同样的电池续航翻倍、同样的机柜能塞进翻倍的算力。
有人会问:CPU 算不过来,多堆几个强核行不行?问题恰恰是每个强核都背着后面要讲的那整套昂贵的控制底座,核数翻倍,取指、预测、缓存的能耗也跟着翻倍,而能量中真正变成乘加的比例依然很低。这是用更多的电去重复交「通用税」。专用芯片换的不是工艺、不是频率,而是能量的构成比例。所以芯片厂商开发 NPU 时,第一目标往往不是把峰值频率拉高,而是把每一焦耳电里浪费的部分抠掉。
二、一次乘加在 CPU 上的真实开销
先看「浪费」从哪来。神经网络里一次乘加,数学上就是 a × b + c 一个动作。但在一颗通用 CPU 上完成它,背后是一条完整的指令流水线:
- 取指令:从指令缓存把这条 load / fma 指令取回来;
- 译码:搞清楚是什么操作、操作数在哪,复杂指令还要拆成微操作;
- 控制与调度:分支预测判断下一步走哪、乱序执行给它分配执行端口、寄存器重命名消除依赖;
- 取数据:权重和输入不在寄存器里,得先访问数据缓存,缓存未命中还要逐级往 L2、L3、DRAM 找;
- 执行:乘法器和加法器真正工作——这一步才是神经网络要的计算;
- 写回与提交:结果写回寄存器、按程序顺序提交。
也就是说,真正用于乘加的能量只是账单的零头,取指、译码、预测、调度这些「管理费」和找数据的「搬运费」占了大头。通用 CPU 必须为「任意程序、任意分支、任意数据」准备这一整套昂贵机制,哪怕程序像神经网络一样规整,这套机制也照样空转耗能。
用一段卷积的伪代码感受一下。对输出的每个像素,CPU 要执行的是一个嵌套循环:递增循环计数器、判断循环是否结束(一条条件分支)、计算数组下标、load 权重和输入、fma 乘加、存回结果。几十个时钟周期里,真正的乘法只占一个周期,其余都是地址运算、分支和访存。现代 CPU 加了 SIMD 向量指令(如 AVX),一条指令能同时做 8 次或 16 次乘加,情况有所好转,但本质仍然是「程序员显式喂指令、每个数据显式 load」——向量通路之外,整套取指、缓存、预测机制一个都不能少,通用性的「税」照交。
为什么这些「管理费」在能量上这么贵?数字芯片的动态功耗约为 P ≈ α·C·V²·f,即和翻转活动、电容、电压平方、频率成正比。CPU 里面积最大、翻转最勤的恰恰是各级缓存、分支预测表和铺满全片的时钟树与流水线寄存器——它们每个时钟周期都在工作,与这一拍有没有做有用的乘加无关。分支一旦预测错,已经取进来、执行到一半的指令全部作废,能量白白流走。通用控制硬件就是这样一块「时刻运转的耗能底座」。
下图把一次「有用乘加」背后的能量去向画成瀑布:在 CPU 上,能量逐级消耗在取指、控制、访存上,流到真正乘法器的只剩一小段。
三、搬数据比算贵两个数量级
上一节的开销里,最吓人的是「找数据」。芯片里不同存储层级的能耗相差极其悬殊,业界常引用 45nm 工艺下的一组经典估算:做一次 32 位浮点乘加大约几皮焦(pJ,万亿分之一焦耳),读一次片上寄存器约 1pJ,读一次片上 SRAM 约 5pJ,而从片外 DRAM 取一个 32 位数据要约 640pJ——是片上一次乘加的上百倍。
这就是常说的**内存墙(memory wall)**在能量维度的表现:瓶颈不是算不动,而是喂不起。DRAM 为什么这么贵?因为一次访问要先给巨大的电容阵列和位线充放电、灵敏放大器把微弱电荷差辨认出来,再通过 PHY 接口把信号驱动出芯片、穿过板级连线送达 CPU;而片上一次乘加,翻转的只是一小块组合逻辑。随着工艺进步各类操作都在变省电,但 DRAM 与片上计算之间约两个数量级的差距至今没有本质改变。一个网络权重动辄几 GB、几十 GB,如果每算一次乘加都去 DRAM 取一次数,那么 99% 的电都耗在总线上,乘法器几乎是「免费」的。
| 操作(约 45nm 量级估算) | 能耗量级 | 相对一次片上乘加 |
|---|---|---|
| 片外 DRAM 取 32 位数据 | ~640 pJ | 约 100~200 倍 |
| 片上 SRAM 读 | ~5 pJ | 约 1~2 倍 |
| 读寄存器 | ~1 pJ | 不到 1 倍 |
| 一次浮点乘加 | ~3~4 pJ | 1 倍 |
数字随工艺和位宽浮动,但结论稳如磐石:省 DRAM 访问,比优化乘法器划算得多。低比特量化(INT8 数据量只有 FP32 的四分之一)之所以普及,本质也是在砍搬运量。缓存(L1/L2/L3)本质上就是夹在这两个数量级之间的台阶:命中 L1 只花约 1pJ,退到 L2、L3 逐级变贵,一旦未命中就直接面对 640pJ 的 DRAM。问题在于神经网络的权重通常只读一遍、复用模式和普通程序不同,大容量缓存命中率并不理想——这进一步说明,靠「更大的缓存」救不了 AI 负载,必须靠阵列级的显式数据复用。
四、MAC 阵列:一条指令驱动上千次乘加,数据片上复用
专用 AI 芯片从两个方向同时动手,正好对应上面两笔浪费。
第一刀砍管理费。 NPU 不逐条解释指令,而是用一条很宽的「宏指令」启动一整片 MAC 阵列:配置好矩阵的起始地址、步长、形状后,成百上千个乘加单元在同一个时钟沿一起开工,指令译码和控制开销被上千次计算分摊到近乎为零。CPU 是「一条指令驱动一次乘加」,NPU 是「一条指令驱动一整面阵列算几百上千次乘加」。
第二刀砍搬运费。 关键手段是数据复用(data reuse):把权重和激活搬进阵列后,让它们在片上被重复使用很多次。以「权重固定(weight stationary)」为例,权重预先放进每个 MAC 单元旁边的寄存器,输入数据一排排流过阵列,同一批权重被反复用于不同输入,全程不再回 DRAM。算笔账:一个 32×32 的阵列有 1024 个单元,一次装入 1024 个权重后,每流入一排新输入,这批权重就被整体再用一遍;流入几十排输入,权重的 DRAM 搬运次数就被摊薄了几十倍。输入数据同样被复用——同一路输入送进一整行单元、与不同权重相乘;部分和则沿列在本地累加,不必每拍读出。再配合大片片上 SRAM 做中间结果暂存和分块(tiling),一次 DRAM 取回的数据可以在片上转很多圈、支撑成百上千次乘加。想深入了解这种数据流安排,可以读 数据复用与权重固定数据流。
为什么敢于把硬件做得这么「死」、不怕模型变?因为卷积、全连接、注意力机制等绝大多数网络层,计算都能统一表达成矩阵乘法,阵列只需配合不同的数据排列和分块方式就能服务各类网络。牺牲的是对任意程序的通用性,换来的是对整个神经网络家族的对口。这正是 AI 加速器入门里脉动阵列的本质:它同时是并行计算结构,也是一套节能结构。MAC 单元本身的位宽、精度(INT8/FP16/混合精度)也直接决定每一次乘加的能耗,设计细节见 MAC 单元与精度设计。
五、CPU、GPU、NPU 的每瓦算力对比
两刀砍下去,能效差距有多大?下面给一组按公开规格书估算的数量级数字(INT8/FP16、稠密算力、整卡或整芯片功耗),只为建立量级感觉,具体型号随精度、稀疏度和测量口径变化很大:
| 芯片类型 | 典型 INT8 稠密算力 | 典型功耗 | 能效比量级 | 电能主要去向 |
|---|---|---|---|---|
| 通用 CPU(服务器核) | 0.1~1 TOPS | 100~300 W | 约 0.01~0.05 TOPS/W | 取指、乱序控制、缓存体系,大量能量不用于乘加 |
| GPU(数据中心卡) | 300~1000+ TOPS | 300~700 W | 约 1~3 TOPS/W | 并行计算效率高,但仍要取指调度、大量数据进出 HBM |
| 专用 NPU/TPU(推理) | 几十~上千 TOPS | 几瓦(端侧)~几百瓦(云端) | 约 5~30 TOPS/W | 绝大多数电能落在 MAC 阵列与片上数据复用上 |
读这张表要抓住相对关系:从 CPU 到 GPU 再到 NPU,每瓦算力大约以一个数量级为台阶往上走,差距不是谁的工艺更先进,而是能量里「真正花在乘加上的比例」完全不同。端侧 NPU 在几瓦预算下做到几十 TOPS,靠的就是把搬 DRAM 的次数压到极低;云端 GPU 则因为要兼顾训练、通用矩阵运算和 HBM 带宽,处在通用与专用之间。
这个规律在芯片演进史上反复出现。早期专为推理设计的 TPU 用 INT8 脉动阵列,在约 30~75 瓦的板级功耗下做到约 90 TOPS,能效明显领先同期 GPU 跑神经网络推理;而当代数据中心 GPU 凭借 INT8 张量核和 HBM,已经把整卡能效推到 1~3 TOPS/W,专用推理芯片则继续把 INT8、INT4 和稀疏化做到极致、向更高的每瓦算力走。可以说,GPU 这十几年也在不断「NPU 化」——不断增加专用张量核、正是因为它也得向能效低头。
六、端侧与云端:同一个道理,不同的预算
能效优先的设计思想在端侧和云端表现不同,但底层账本完全一样。手机、手表、汽车里的 NPU 功耗预算只有几瓦甚至几百毫瓦,DRAM 容量也小,设计上极端压榨片上复用:网络被切成小块逐块搬进 SRAM,权重尽量常驻,甚至为了省电牺牲一点峰值算力。云端训练芯片则面对另一个极端——模型大到权重根本放不进任何片上存储,HBM 必须不停喂数据,于是战场变成带宽:用堆叠的 HBM 把每秒搬运量做到 TB 级,再用超大阵列让每个搬进来的数据被尽量多的计算单元分享。GPU 之所以处在 CPU 和 NPU 中间,正是因为它还要保留较多的通用性以兼顾训练和各类科学计算:有指令、有调度层次、显存访问频繁,但靠数以万计的并行核心把开销摊薄。越专用、数据复用越充分,TOPS/W 就越高——这条规律对端侧和云端一视同仁。顺带一提,端侧 NPU 能效高并不代表云端算力弱:端侧靠几瓦做到几十 TOPS,云端靠几百瓦做到上千 TOPS,两者 TOPS/W 可以接近,差别在绝对规模。云端还要把训练所需的反向传播、各类数据精度支持进去,通用性上的让步也比端侧多。
七、TOPS/W 的水分:看标称之前先问三件事
能效比数字好用也好「包装」,比较不同芯片时先确认三个口径:
- 什么精度? 同一芯片 FP16、INT8、INT4 的 TOPS/W 可以差几倍,位宽越窄越好看,但模型精度要自己验证;
- 稠密还是稀疏? 很多标称 TOPS/W 按 2:4 结构化稀疏给出,数字直接翻倍,而实际模型未必满足稀疏条件;
- 谁的功耗? 是芯片裸 die 功耗,还是整卡(含显存、供电损耗)、整机?墙插功耗口径下数字要再打折扣;此外真实推理的算力利用率(MFU)往往只有峰值的两三成到一半,实际 TOPS/W 随之下移。
所以工程上选芯片,最可靠的办法是用自己的模型、批次大小和精度,实测「每秒处理多少 token / 帧 ÷ 墙插功耗」,而不是只比规格书峰值。举个例子:一张标称 2 TOPS/W 的卡,跑你的模型时算力利用率只有 40%,加上显存和供电损耗,实际每瓦吞吐可能只有标称的三分之一;两张标称差距 30% 的卡,利用率和功耗口径不同,实测结果甚至可能反转。能效比最终是「跑你的负载时墙插上的那一瓦特」换来的算力。
这一篇在知识体系里的位置
- 想先建立「NPU 为什么比 CPU 快、MAC 阵列长什么样」的整体图景 → AI 加速器入门;
- 想深入权重固定等数据流怎样把 DRAM 访问压到最低 → 数据复用与权重固定数据流;
- 想看 MAC 单元的位宽、精度与混合精度设计 → MAC 单元与精度设计;
- 想理解搬数据为什么贵、片上 SRAM 和 HBM 各自的角色 → 片上存储器、封装入门;
- 想看芯片整体省电手段(时钟门控、电源域等) → 低功耗设计入门。
总结
一句话总结:AI 芯片的第一指标是能效比 TOPS/W(每瓦每秒万亿次运算),因为手机和数据中心的功耗预算都是硬约束,能效比直接决定能塞进多少算力;通用 CPU 做一次乘加,能量大头花在取指、译码、分支预测、乱序调度和逐级找数据上,真正的乘法只是零头,而片外 DRAM 取一个数约 640pJ、比片上一次乘加(约几 pJ)贵两个数量级,「内存墙」在能量维度比在性能维度更致命;专用 NPU 靠两招翻盘——一条宏指令驱动 N×N 的 MAC 阵列同时开工,把译码控制开销摊薄到上千次计算上,再用权重固定等数据复用让数据搬进片上后被反复使用、尽量不回 DRAM,并配合 INT8 低比特量化减少搬运量;量级上 CPU 仅约 0.01~0.05 TOPS/W、GPU 约 1~3 TOPS/W、专用 NPU 约 5~30 TOPS/W,每上一个台阶约差一个数量级,差距来自能量中真正用于乘加的比例而非工艺;最后比较标称 TOPS/W 务必看清精度(INT8/FP16)、稠密还是稀疏、芯片功耗还是墙插功耗,并用自己的模型实测每瓦真实推理吞吐。