1989 年,Ralph Merkle 发表了一篇题为《Energy Limits to the Computational Power of the Human Brain》的论文。那一年,大多数人还在用软盘传递文件,超级计算机的峰值性能也远不如今天的手机,而这篇文章却开始认真计算一个看似远离现实的问题:人脑消耗 20 瓦左右的能量,在物理学允许的情况下,最多能支撑多强的计算能力?
几十年后,当我们为了训练一个大模型部署成千上万张 GPU,被机房电费、散热和碳排放大伤脑筋时,这篇论文像一份提前写好的“计算能耗账单”。它不只是谈大脑,还给出了一个主判断:无论是神经元、晶体管还是量子比特,任何计算系统都逃不过能量和热力学划出的边界。计算能力本质上不是纯数学概念,而是一个物理问题。
1. 一个公钥密码学家,为什么跑去研究大脑功耗?
1.1 从 Merkle 树到计算物理
Ralph Merkle 的名字在技术圈里通常和公钥密码学绑定。Merkle 树被用于区块链区块头、分布式共识、文件完整性校验,几乎是现代密码学基础设施的一部分。但 Merkle 的研究主线并不是“怎么加解密”,而是“计算到底需要付出什么代价”。
公钥密码学的基础就是:构造一个数学问题,让合法接收方用私钥可以轻易解开,而攻击者要付出天文数字的计算量。计算量背后是时间、电量和硬件资源。当把视角拉长,任何一个计算系统都必须回答同一个问题:完成这些操作,最小的物理成本是什么?
正是这条主线,让 Merkle 在 1989 年转向一个看起来属于神经科学的问题:人脑的计算能力有没有能量上限?他不是要用密码学方法去解释大脑,而是想用物理定律给大脑的性能画一条边界。
1.2 1989 年的特殊语境:纳米、分子制造与计算极限
1989 年前后,个人电脑刚刚进入图形界面时代,互联网还没有向公众开放,AI 还处在“寒冬”前后的震荡期。但与此同时,Eric Drexler 的《Engines of Creation》已经让“纳米技术”“分子制造”成为一小群研究者讨论的话题。Merkle 是这个圈子里的活跃人物,关注原子级制造、分子计算和未来计算硬件。
这篇论文与其说是脑科学,不如说是用“纳米尺度计算”的眼光重新审视生物系统。大脑是一个在三维空间里运行、耗能约 20 瓦、体积约 1.5 升的湿件计算机,它已经在物理世界里完成了大量复杂任务。如果未来要设计分子级的计算机,那么人脑就是最值得参考的案例之一。
但参考不能只停在“模仿神经元”这种粗粒度上,而应首先知道:在热力学允许的条件下,这台湿件计算机离极限有多远?
1.3 论文真正想问的问题
从标题看,论文的核心不是“人脑能算多快”,而是“给定能量,人脑最多能算什么”。这里的关键词是“极限”。极限不描述现有的技术,只描述物理定律允许的边界。
Merkle 试图建立一种思考顺序:先不管神经元怎么放电,先看 20 瓦功耗能在室温或体温下支撑多少次不可逆计算;然后再看实际大脑离这个边界有多远。这种思考方式在今天的计算机体系结构里非常常见:先算理论峰值,再实测性能,再找差距。
但在 1989 年,直接用热力学分析人脑,是相当超前的。它把当时很多人觉得神秘难解的人脑,放进了可控的物理框架里。
2. 大脑不是黑箱,它被热力学“标了价”
2.1 计算的“最低单价”:Landauer 原理
要先理解能量极限,首先绕不开 Landauer 原理。1961 年,Rolf Landauer 提出:在一个常温系统里,擦除一个比特信息,最低需要耗散 kT ln2 的能量。这里的 k 是玻尔兹曼常数,T 是绝对温度。在 300K 附近,kT ln2 大约是 2.87×10⁻²¹ 焦耳。
数值极小,但它是硬约束:信息不是虚无的,它必须有物理载体;擦除比特意味着信息被遗忘,系统的熵降低,为了让总熵不减少,必须把对应的热量送到环境中。
可以把 kT ln2 理解成“忘记一件事情的起步价”。如果系统在工作时必须不断丢弃旧状态、覆盖缓存、清空寄存器,那么这些不可逆操作都要支付这笔费用。可逆计算可以避开一部分成本,但前提是计算过程不擦除信息。真实世界的芯片几乎都是不可逆的,所以能量消耗会远高于这个下限。
2.2 用 20 瓦功耗反推一个理论天花板
如果大脑是一台不可逆数字计算机,我们可以做一个极端估算。假设所有能量都用来支付最基本的擦除单价,人脑总功耗按 20 瓦计算,那么每秒最多能擦除的比特数大约是:
k = 1.380649e-23 # 玻尔兹曼常数,J/K T = 310 # 人体温度约 310K landauer = k * T * 0.693147 power = 20 # 人脑总功耗,瓦 max_erases = power / landauer print(max_erases) # 约为 6.9e21 次擦除/秒这个数字高达 10²¹ 量级。现实人脑的神经脉冲总数远低于这个数量级,说明大脑并不是在物理极限附近运行。这并不等于大脑“低效”,恰恰说明大脑选择了另一种策略:用大量并行、低速率、模拟式、抗噪的组件完成任务,而不是把单个逻辑门推到极限。
Merkle 式的极限分析给我们的启示是:大脑离热力学天花板还有很大距离,因此今天我们看到的所有神经形态芯片、低功耗 AI 芯片都还有继续优化的空间。
注意:这里计算的是“擦除比特”的理论下限,不是大脑实际功耗模型。真实系统还要算上记忆读取、通信、模拟信号处理和维持生命活动的能量。
当然,这个估算非常粗糙:20 瓦并不全用于计算;大脑不只是“擦除比特”;生物化学信号的能量效率可能并不接近 Landauer 极限;而且大脑的计算模式不是数字逻辑。所以这个数值应被理解为一个理论尺子,而不是大脑的实测功耗模型。
2.3 真正的瓶颈往往是散热,而不只是供电
很多人在讨论芯片功耗时只问“要多少瓦”,但系统设计真正头痛的是“废热排到哪里去”。大脑虽然总功耗只有 20 瓦左右,但体积小、密度高,加上颅骨几乎密封,散热并不容易。为了保证神经元正常放电、蛋白质不变性,大脑需要复杂的血流系统和温度调节机制。
这和现代芯片的“功率墙”几乎一模一样。一块高功率 GPU 的瞬时功耗可以接近千瓦,如果散热跟不上,它会自动降频,甚至损坏。一颗高性能处理器可能耗电只有几百瓦,但要把这些热从芯片核心传到散热器、再传到机房外部,工程成本远高于电费本身。
所以,Merkle 论文里“能量极限”应该被翻译成“能量供给与散热能力的极限”,而不只是总功率数字。
2.4 从这篇论文提炼出通用判断
计算能力不是无上限的数学游戏,而是受物理资源约束的工程问题。任何计算系统都有几条物理约束:能量总量、散热能力、通信带宽和误差容忍度。
大脑是一个并行、稀疏、低精度的系统,它用 20 瓦完成了大量复杂的模式识别、运动控制和语言处理,但它并没有逼近热力学上限。这说明在真实系统中,最优状态不是“无限快”,而是在给定尺寸、能量、可靠性、可维护性里找到一个平衡点。
这个判断在今天特别有用。很多技术讨论会把“算力”抽象成一个无限增长的指标,但物理极限一直在背后约束。GPU、TPU、量子计算机、光计算,无论采用什么技术,都要先把能量和热的问题回答清楚,才谈得上真正的效率提升。
3. 从 1989 年到现在,这个判断如何被反复验证
3.1 芯片的“功率墙”:摩尔定律刹车的原因之一
半导体行业长期遵循摩尔定律:晶体管密度每隔一段周期翻倍,性能提升,成本下降。但在大约 2005 年前后,处理器频率不再像过去那样快速攀升,原因不是造不出更快晶体管,而是功耗和散热撑不住。
Dennard scaling 失效,芯片频率到 4GHz 附近就撞上功率墙。厂商只能转向多核,但多个核心不能同时全速工作,否则热设计功耗(TDP)会失控。于是出现“暗硅”:芯片上大量晶体管在同一时刻处于关闭状态,只为把总功率控制在散热范围内。
这不就是 1989 年人脑面对的问题的“电子版”吗?大脑有大量神经元,但不会同时全部放电;芯片有大量晶体管,但无法同时工作。能量和散热成为真正的稀缺资源,而不是晶体管数量。Merkle 用 20 瓦的人脑讲清的这个道理,芯片产业用几十年走了同样的路。
3.2 AI 大模型把能耗账单摆到台面上
最近几年的 AI 大模型让“计算能力”以更直观的方式进入公众视野。训练一个参数量巨大的模型,需要数千张加速卡运行数周或数月,消耗的电力和随之而来的散热成本非常可观。
即使到了推理阶段,每处理一个 token 都要经过多层 Transformer,计算量大,内存带宽要求高。于是研究社区开始关注更细致的指标:每生成 1000 个 token 消耗多少焦耳?一个请求的端到端能耗是多少?甚至有人统计“回答一次问题相当于给手机充多少电”。
这些讨论本质上都是 Merkle 式的问题:完成这些智能任务,最低需要多少能量?现实系统离热力学下限有多远?模型量化、稀疏化、蒸馏、投机解码,也都是围绕“减少不必要的计算”来降低能耗。
可以这样说:AI 领域正在从“只要算力够什么都行”转向“每瓦特能干多少有用的事”。
3.3 能效优先的硬件路线:专用、量子与神经形态
为了突破功率墙,硬件研究走向三个方向。
第一是专用加速器。通用处理器要为各种任务留有大量灵活性和开销,专用芯片可以在有限指令集上把计算单元做得更密集,让每一瓦特都能产生更多结果。GPU 和 NPU 已经是典型例子,更进一步的还有针对矩阵乘法的定制电路。
第二是量子计算。量子计算用叠加和纠缠处理特定问题,理论上可以降低某些算法的计算复杂度。但量子比特对环境噪声极其敏感,需要接近绝对零度的制冷系统。整套装置的能量开销可能并不低,但它为“计算能力”提供了一种新的物理实现方式,也再次说明计算与物理不可分离。
第三是神经形态芯片。它直接模仿大脑的稀疏放电模式,事件驱动,只有在输入到达时才消耗能量,避免传统芯片“每周期都要刷新所有晶体管”的浪费。这个方向在概念上最接近 Merkle 讨论的人脑:处理器不是以纳秒级时钟高速运转,而是以毫秒级事件在三维网络里协作。虽然成熟度还不高,但正是因为人脑已经证明 20 瓦可以做到很多事,这个方向才值得关注。
3.4 评价标准的变化:从“算得快”到“算得值”
过去选型 CPU/GPU,大家先看峰值浮点性能(TFLOPS)。现在越来越多的技术决策者会问:每瓦特性能是多少?散热成本多少?在目标负载下,真实有效吞吐是多少?这就是“算得值”的视角。
可以用一个表格来对比不同系统:
| 维度 | 人脑(典型参考) | 电子芯片(典型参考) | 数据中心(典型参考) |
|---|---|---|---|
| 总功耗 | 约 20W | 单芯片几十瓦到几百瓦 | 机柜级数千瓦到数十千瓦 |
| 主要散热方式 | 血流与脑脊液 | 风冷、液冷、均热板 | 精密空调、液冷、自然冷源 |
| 计算模式 | 并行、稀疏、模拟、低精度 | 数字、时钟同步、高精度 | 大规模并行但数据搬运密集 |
| 当前瓶颈 | 体积、温度、可塑性 | 功率密度、暗硅、内存墙 | 电力、散热、带宽、成本 |
这个表格不是精确数据,而是用来说明“能量与散热是跨尺度统一约束”。做技术选型时,把表格里的维度当成检查清单,比只看单个峰值指标要可靠得多。
4. 遇到计算瓶颈时,可以先问四个问题
4.1 第一步:先把物理约束找出来
无论是优化一个服务还是在设计新硬件,第一步都是明确“哪条物理定律决定下限”。常见约束有几类:
- 能量约束:每次擦除、搬运、计算都有最小能量成本,例如 Landauer 原理。
- 带宽约束:数据在内存与计算单元之间移动的速度和能量,可能远高于计算本身。
- 延迟约束:光速和信号传播时间决定信息不可能无限快,在分布式系统中尤其明显。
- 可靠性约束:噪声、热扰动、辐射都会造成错误,为了纠错必须付出额外比特和能量。
不要一遇到性能问题就想着“加机器”“换更强的卡”,先问:我的系统最受哪一类物理约束?只有定位到具体瓶颈,后面的优化才有效。
4.2 第二步:看看当前实现离极限有多远
有了理论边界,下一步是测量现状。工具方面,可以用能耗监控工具记录功率、温度、CPU 利用率和内存带宽;代码方面,可以在核心计算路径打点,统计执行时间;硬件方面,可以通过 CPU 性能计数器和 GPU 功耗接口查看实时数据。
如果当前系统离理论极限还很远,说明优化空间在算法、编译器、数据布局或者负载均衡。如果已经非常接近极限,那换思路比继续调参更有价值。
举个例子:如果发现矩阵乘法的能耗主要来自从 HBM 搬运数据,而不是来自乘法器,那么继续提升乘加单元频率没有意义,反而应该考虑切片方式、数据复用和低精度矩阵指令。
一个常见误区是:很多团队把一个 Python 服务包装成容器,硬件选型只看 CPU 核数,却不去数内存带宽。结果加核没有提升,因为瓶颈在内存带宽。真正贴近极限去看,才能避免这种浪费。
一个常见的无效优化是:只看了 CPU 核数,没看内存带宽。先测功耗和带宽,再决定加不加机器。
4.3 第三步:重新设计任务,而不是只堆硬件
人脑给工程最重要的启示是:它没有用高时钟频率,而是用大规模并行、稀疏激活和分层预测来降低有效功耗。很多计算任务其实可以用更低精度、更少中间结果、更合理的近似来降低能量需求。
工程上有几个可操作方向:
- 降低数据精度:FP32 换成 BF16/INT8,动辄降低数倍内存带宽和计算能耗。
- 稀疏化:让参数和激活中的零不做运算,或者用 MoE 只激活部分专家。
- 批量调度:把离散小请求合并成大 batch,充分利用硬件,避免空闲功率。
- 异步与事件驱动:在没有请求时让模块进入低功耗状态,不要保持全速运行。
- 缓存与数据复用:把数据尽量留在片上,减少昂贵的内存访问。
这些手段的共同目标,不是“让系统跑得更快”,而是“在同样的能耗下完成更多有效计算”。这就是 Merkle 式思维在软件层的落地。
实际落地时,我建议先跑通一个最小基准:选一个小任务,完整记录执行时间、功耗和内存带宽。然后只改一个变量,比如把精度从 FP32 改成 INT8,看能耗和精度变化。一次只改一个变量,才能判断优化是否有效。这个顺序类似于“先跑通,再优化,最后工程化”。
4.4 第四步:把极限当标尺,不要当目标
理论极限是一把尺子,不是一句口号。如果系统离极限很远,要问“是不是算法冗余太多”;如果系统已经接近极限,要问“是不是该换一种计算范式”。但千万不要为了逼近极限而牺牲可靠性、可维护性和开发效率。
Merkle 的论文计算出一个遥不可及的上限,但大脑并没有朝着那个上限狂奔,因为它还要考虑发育、学习、修复、容错等一系列问题。
工程系统也一样:一个离热力学极限很近但极度脆弱、无法部署、难以运维的系统,并不会比一个简单、稳定、适度高效的方案更有价值。正确的方法是先建立可运行的基线,再逐步逼近一个“在工程约束下足够好”的能效点,而不是直接追求理论最优。
5. 这篇 1989 年论文的适用边界,以及对今天的真实启示
5.1 大脑不是冯·诺依曼计算器,极限不等于实现
Merkle 用能量极限来分析大脑,并不意味着大脑仅仅是“20 瓦处理器”。神经元是复杂的模拟设备,树突有非线性整合,突触有可塑性,神经递质、胶质细胞、血脑屏障都在参与信息处理。大脑还可能是分层的预测系统,而不是指令流式的程序。
因此,从能量极限只能得到“天花板”,不能得到“大脑如何工作”的答案。如果你想用这篇论文去证明“大脑就是一台电脑”,那就误解了它的边界。
它的价值在于:无论大脑的算法多复杂,它都要服从热力学,给定功耗和体积,它的计算容量不可能无限。这个边界为所有关于大脑和智能硬件的讨论提供了一个不可忽视的常量。
5.2 生物是“够用就好”,不是全局最优
演化不是工程师,它不会朝着最低能耗或最高性能全局搜索。生物系统受到发育机制、基因网络、历史路径和生态压力的多重约束。大脑的 20 瓦功耗可能是“在复杂环境和漫长演化中足够好的结果”,而不是能效最优设计。
在工程上模仿大脑时,要小心“神经形态=低功耗=最佳”的简单推理。神经形态芯片可以借鉴大脑的稀疏事件驱动,但也要考虑现实数字系统的精度、控制和软件生态。
大脑的某些低功耗特性,实际上是用极低的时钟频率和很大的并行性换来的,不一定适合所有计算任务。最适合的任务可能是低精度、高容错、事件驱动的模式识别,而不适合要求确定性和高精度的通用计算。
5.3 能量不是唯一的约束,数据搬运和误差代价同样致命
能量极限能够帮助分析问题的上限,但真实系统还受内存墙、通信墙、错误墙限制。
- 内存墙:数据从 DRAM 搬到计算单元需要的能量,可以比一次浮点运算高出几个数量级。
- 通信墙:分布式训练中,梯度同步的网络通信时间经常超过计算时间;消息量越大,能耗越高。
- 错误墙:为了在噪声环境中正确执行任务,需要校验、重传、冗余和纠错码,这些都会增加额外能耗。
所以,当你听到“某芯片单位算力能耗降低 50%”时,一定要追问:是否包含内存访问能耗?是否包含系统空闲功耗?是否包含散热和电源转换损耗?一个真正有效的优化,必须把系统边界画清楚。否则,论文里的理论极限很难转化为实际收益。
判断一个能耗数字是否可信,先看它有没有写明系统边界:是否包含内存访问、空闲功耗和散热成本。
5.4 对普通开发者和技术决策者意味着什么
对个人开发者,最直接的启示是:当你发现代码变慢、机器发烫时,与其继续在代码里抠几个 if-else,不如先看一眼功耗和温度曲线。如果机器已经进入热降频,再优化代码的收益也很有限,先降低负载、减少并发、清理无用依赖,往往更有效。
对技术决策者,在做算力预算时,要把全生命周期能耗成本纳入评估:设备购买只是开始,电费、散热、维护、机房空间和废弃后的处理才是长期支出。不要只比较“每 TFLOPS 价格”,更要比较“每瓦特有效吞吐”和“每项任务的总能耗”。
对研究者和学习者,Merkle 的论文是一个极好的思维示范:一个复杂系统,可以从物理定律开始,先建立边界,再逐步引入机制。这样能避免很多“谁更强”的无效争论。因为一旦你知道了能量极限,很多问题的答案就自动收敛了:如果一项技术耗能远超理论下限,那它的优化方向一定还有很多空间。
回到 1989 年那篇论文。它没有给出芯片设计图纸,也没有提出新的模型,只是认认真真计算了一个“不可能被超越”的数字。但正是这种看起来“无用”的极限计算,为后来几十年的低功耗计算提供了一面镜子。
今天我们再讨论 AI 算力、人脑接口和量子计算时,依然需要这面镜子。先问能量从哪里来,热往哪里去,再谈算力有多强。这也许是 Merkle 留给未来计算最基础也最持久的一句提醒。