大部分人谈论算力时,习惯把目光放在 GPU 数量、芯片制程、模型参数量上。但很少有人会问一个更底层的问题:一台计算设备,就算晶体管再多、架构再先进,它每秒能处理多少信息,是否存在一个由物理定律决定的硬天花板?
1989 年,一位身份有些特殊的研究者把这个问题摆上了桌面。他就是 Ralph Merkle——今天很多开发者每天都在使用他发明的 Merkle 树,却很少知道他还有另一面。他发表了一篇标题很长的论文:《Energy Limits to the Computational Power of the Human Brain》,中文可以理解为“人脑计算能力的能量极限”。这篇论文的核心思路,不是从神经科学出发数人头,而是从热力学出发数能量:人脑仅仅以大约 20 瓦的功耗运行,在这 20 瓦的“电费预算”内,它的计算能力在理论上能达到什么量级?
这个问题的价值不在于给出一个“人脑有多强”的猎奇数字,而在于提供一种思考框架:计算首先是物理过程,任何计算都必须消耗能量来擦除信息。正因为如此,讨论算力时不能只看晶体管密度,还要看能量预算。这在 1989 年是理论边界问题,在今天却变成了 AI 基础设施的工程现实。本文我会先把 Landauer 原理讲清楚,再用 Python 把能量上限的估算过程复现一遍,最后谈谈这个 1989 年的问题,为什么在大模型时代变成了每一个做基础设施和模型部署的开发者都绕不开的问题。
1. 为什么一位密码学家会去研究人脑算力
如果只看 Ralph Merkle 的履历,你大概率会把他归入信息安全领域。他在 1970 年代独立提出了公钥协商方案,与 Diffie、Hellman 一起推动了公钥密码学的发展;他发明的 Merkle 树,也就是哈希树,至今仍然是区块链、分布式系统、数据库完整性校验的底层数据结构。随便翻一本密码学教材,都会看到他留下的痕迹。
但 Merkle 的研究兴趣远不止密码学。1980 年代,他把大量精力投入到一个看起来和密码学完全无关的问题——计算的物理极限。他后来长期推动分子纳米技术,也讨论过量子计算与可逆计算。对这些领域熟悉的人都知道一个共同点:它们都默认“计算是物理过程,因此受物理定律约束”。
为什么一个密码学家会关心这个问题?因为密码学的核心假设是攻击者的计算能力有限。既然计算能力决定了安全强度,那么“计算能力本身的边界在哪里”就变成了一个安全问题。如果你能证明一台物理设备在给定能量下最多能执行多少次计算,你就能对攻击者给出一个更严格的上界。从密码学出发,走向纳米技术,再回到热力学,这条路线看似跳跃,内在逻辑却非常一致。
1989 年前后,正是分子纳米技术、量子计算、可逆计算这些话题开始升温的时期。Charles Bennett 和 Edward Fredkin 等人关于可逆计算的工作表明,如果计算过程可以完全可逆,理论上能量消耗可以降到极低;只有不可逆的信息擦除过程才必须消耗能量。Merkle 把 Landauer 原理用于分析人脑时,实际上在做一件事:把大脑当作一台通用计算设备,先不看它的生物细节,而是直接用热力学公式估算它的能力上限。这种“先把物理账算清楚,再来讨论结构”的思路,和他做密码学设计时的思考方式一模一样。
2. 计算的最小能耗:从 Landauer 原理说起
要理解 Merkle 的估算,必须先理解 Landauer 原理。
1961 年,IBM 的 Rolf Landauer 提出:在温度 T 下,擦除一个比特的信息,最少需要消耗 kT ln2 的能量。这里的 k 是玻尔兹曼常数,约等于 1.38×10⁻²³ J/K;T 是环境的绝对温度;ln2 约等于 0.693。在室温 300K 或人体温度 310K 下,kT ln2 大约在 2.9×10⁻²¹ 焦耳这个量级。
这个数字小到难以直觉感知。但它的意义不在数值本身,而在“擦除信息必须耗能”这一硬性约束。
为什么擦除信息必须耗能?因为计算机的内存清零、状态重置、历史覆盖,本质上都涉及信息擦除。逻辑学上的“丢弃一个状态”,在物理上意味着系统从一个有多种可能性的状态收敛到一个确定状态,这对应熵减。为了补偿这种熵减,系统必须向环境排放热量。热力学第二定律在这里表现为:你可以让每一次逻辑操作尽量可逆,但只要最终要覆盖旧结果,就必须支付能量。
Landauer 原理还引出一个更重要的推论:理论上,如果计算过程完全可逆,能量消耗可以趋近于零。Charles Bennett 在 1970 年代证明了普通程序可以改写为可逆形式,并且不会带来根本性的性能障碍。这个认识后来成为量子计算的一个基本出发点。Merkle 把人脑放到这个框架里,本质上也在问:作为一台并不完全可逆的生物计算机,大脑离这个物理下限到底有多远?
下表给出了不同温度下,1 瓦功率对应的信息擦除率上限。这是教科书式的物理计算,也是后面估算人脑极限的基础。
| 温度 | kT ln2(J/bit) | 1 W 功率每秒可擦除比特数 |
|---|---|---|
| 4 K | 3.83×10⁻²³ | 2.61×10²² |
| 77 K | 7.37×10⁻²² | 1.36×10²¹ |
| 300 K | 2.87×10⁻²¹ | 3.49×10²⁰ |
| 310 K | 2.97×10⁻²¹ | 3.37×10²⁰ |
注意一个细节:温度越低,擦除一个比特的最小能耗越低。这也是后来量子计算、超导计算拼命往低温跑的原因之一。这个话题我在第 5 节展开。
3. 人脑的能量账本:20 瓦如何支撑 860 亿神经元
现在把视线从物理常数拉回到生物现实。
成年人大脑重约 1.4 千克,约占人体质量的 2%,却消耗了大约 20% 的基础代谢能量。如果成年人静息时全身的功率约 100 瓦,那么大脑大约分到 20 瓦。这 20 瓦要供养约 860 亿个神经元和上百万亿个突触。平均下来,每个神经元分到的功率大约是 2.3×10⁻¹⁰ 瓦,相当于一颗微型 LED 亮度的千分之一不到的能量预算。
这个能量花在了哪里?神经元的能量主要用于维持静息电位(钠钾泵不断把离子泵回浓度梯度)、产生动作电位、释放和回收神经递质,以及细胞内的物质运输。其中,维持静息电位是一个持续不断的“耗电”过程,因为离子浓度梯度必须时刻保持。每产生一次动作电位,离子梯度就会被打乱,之后必须通过钠钾泵把钠离子泵出细胞、把钾离子泵回细胞内,这又是一个耗能过程。
因此,神经元不可能无限高频放电。传统估算认为,皮层神经元的平均放电率通常在几赫兹到几十赫兹之间,远低于电子电路里那几 GHz 的时钟频率。这不是生理学家闲着没事给神经元设限,而是能量账本下的必然结果。
如果你把大脑看作一台计算机,这台计算机的设计约束非常清楚:总功耗约 20 瓦,结构上有 860 亿个处理单元,每个单元分到的能量极其微薄。很多神经科学的讨论会把注意力放在网络结构、可塑性规则、突触权重更新上,但 Merkle 的思路提醒我们:在这些结构之上,还有一个更根本的物理预算。带宽、频率、精度,最终都要用能量来兑换。你不可能让每个神经元都以 100 Hz 高频放电,因为那会迅速耗尽 20 瓦的能量预算。
这也是理解大脑计算能力的一个关键转折点:大脑算力的真正瓶颈,不是神经元数量,而是能量。
4. 用 Python 估算人脑的理论算力上限
有了 Landauer 原理和人脑功耗,我们就可以把 Merkle 的核心问题数量化:如果 20 瓦全部用于擦除信息,并且每次擦除都恰好达到 Landauer 下限,那么在 310K 的体温下,人脑每秒最多能擦除多少比特?
先说明一点:下面的推导使用公开物理常数做独立估算,是在展示 Merkle 论文背后的方法论,并不是在复述论文原文里的某个结论。原始论文的完整推导细节我没有可靠资料,但能量上限的估算思路是清楚的。
# 文件路径:merkle_brain_limit.py import math BOLTZMANN = 1.380649e-23 # J/K TEMP = 310.0 # 人体内部温度,单位 K P_BRAIN = 20.0 # 人脑功耗,单位 W(J/s) e_landauer = BOLTZMANN * TEMP * math.log(2) print(f"kT ln2 at {TEMP}K = {e_landauer:.3e} J/bit") max_bit_erasure_rate = P_BRAIN / e_landauer print(f"20 W 功耗对应的信息擦除率上限 = {max_bit_erasure_rate:.3e} bit/s") print(f"约等于 {max_bit_erasure_rate / 1e21:.2f}×10^21 bit/s")运行方式:
python merkle_brain_limit.py预期输出:
kT ln2 at 310.0K = 2.966e-21 J/bit 20 W 功耗对应的信息擦除率上限 = 6.743e+21 bit/s 约等于 6.74×10^21 bit/s这个结果是一个超过 10²¹ 的天文数字。作为对照,公开讨论中对大脑实际计算能力的常见估算范围,大致在 10¹⁴ 到 10¹⁶ 次操作每秒之间,具体取决于统计口径。即使我们按最乐观的 10¹⁶ 来算,和 6.74×10²¹ 之间也隔着大约 10⁵ 到 10⁷ 倍。
需要说明的是,“次操作”和“比特擦除”并不是同一个计数单位,一次操作可能包含多次位擦除。即便如此,几个数量级的差距仍然足以说明一个问题:大脑的实际运行效率离热力学理论极限还很远,限制大脑算力的不是终极物理定律,而是生物机制把能量转化为计算过程的效率。
这个结论在直觉上可能有点反常识。我们通常认为大脑非常高效,但从 Landauer 极限的角度看,真正留给人脑的优化空间依然巨大。反过来,这也说明功耗极低的大脑并没有逼近物理极限,那么“能不能用更少的能量做同样的计算”就成为一个开放且重要的工程问题。
5. 温度对信息擦除能耗的影响:为什么量子计算要低温
Landauer 原理里的 T 是环境温度,所以温度直接决定了信息擦除能耗的下限。温度越低,kT ln2 越小,理论上擦除一个比特的最小能耗就越低。下面这段代码扫描了几种典型温度。
# 文件路径:landauer_temperature_scan.py import math BOLTZMANN = 1.380649e-23 P = 20.0 temperatures = [4.0, 77.0, 300.0, 310.0] for temp_k in temperatures: e = BOLTZMANN * temp_k * math.log(2) rate = P / e print(f"T={temp_k:6.1f}K kTln2={e:.3e} J/bit 20W擦除率={rate:.3e} bit/s")运行结果:
T= 4.0K kTln2=3.83e-23 J/bit 20W擦除率=5.22e+23 bit/s T= 77.0K kTln2=7.37e-22 J/bit 20W擦除率=2.71e+22 bit/s T= 300.0K kTln2=2.87e-21 J/bit 20W擦除率=6.97e+21 bit/s T= 310.0K kTln2=2.97e-21 J/bit 20W擦除率=6.74e+21 bit/s看起来非常有诱惑力:同样的 20 瓦,放到 4K 环境里,理论上能获得 10²³ 量级的擦除率,比室温高出大约两个数量级。这也是为什么量子计算和超导计算都拼命往接近绝对零度的环境里跑。除了降低热噪声、维持量子相干性之外,温度下降还直接降低了不可逆操作的理论能耗下限。
但工程上要冷静:把设备冷却到 4K,本身需要制冷压缩机、液氦、多层绝热结构,整个制冷系统消耗的电能远远高于计算部分节省出来的那一点。所以“低温更节能”必须放在系统总能耗里看,不能只看芯片本地的那几焦耳。现实中,低温系统的能效账往往非常难看,只有在量子过程本身对温度极其敏感、非低温不可的场景下,这趟能量开销才值得支付。
这个道理放到人脑身上也一样:人脑必须维持在 310K 左右的体温下工作,因为生物化学反应依赖这个温度。它不可能为了降低 kT ln2 就把自己冷却到 4K,所以温度这条优化路径对大脑关闭了。大脑只能选择在 310K 这个固定温度下,通过架构和机制优化来提高能效。
6. 从 1989 到当下:算力焦虑的本质是能量焦虑
Merkle 在 1989 年讨论的是理论边界问题,但到了大模型时代,这个问题已经变成了数据中心的电费单。
大型 GPU 服务器单卡功耗就能达到几百瓦,一个训练集群的总功耗堪比一个小型城镇。过去几年,业界围绕液冷、绿电、碳配额、变电站扩容讨论得热火朝天。表面上看,这些讨论属于基础设施领域;本质上,它们都在处理同一个约束:能量预算。你可以在一年内把 GPU 数量翻一倍,但电网不会自动多出一倍的电。算力焦虑的本质,其实是能量焦虑。
人脑在能效上的优势被反复提及。做几个粗糙的数量级对比:
| 对象 | 功耗量级 | 有效计算量级 | 说明 |
|---|---|---|---|
| 人脑 | 约 20 W | 10¹⁴-10¹⁶ ops/s(常见估算) | 每瓦特大约 10¹³-10¹⁵ ops/s |
| 数据中心级 GPU | 数百瓦/卡 | 数十万亿到百万亿次/秒 | 未计 |