70年后重读冯·诺依曼:计算机与人脑的差异还有多大?

最近重新读冯·诺依曼的《计算机与人脑》,有一个很强烈的感受。
这本书写于现代计算机刚刚起步的年代。那时,真空管仍然是主要电子元件,晶体管才刚刚出现。冯·诺依曼却已经在认真讨论一个直到今天都没有完全解决的问题:
计算机和人脑,到底有多大差异?
他没有停留在抽象层面,而是直接比较了几个非常具体的指标:元件尺寸、运行速度、能量消耗,以及由这些物理差异最终产生的串行与并行结构。
70年后重新看这些数字,会发现一个很有意思的变化:
冯·诺依曼当年观察到的很多“元件级差距”已经被半导体技术消除了,但他关于“系统组织方式”的判断,反而比当年更值得重视。
70年前,计算机最大的劣势是“元件太差”
冯·诺依曼首先比较的是神经元与人工逻辑元件本身。
当时的结果几乎是一边倒。
神经系统的基本结构极其微小,而真空管巨大、耗电,并且需要大量空间进行组装。即使是刚刚出现的晶体管,在尺寸和功耗上依然远远无法和神经细胞相比。
他估算,天然元件在体积利用率和能量消耗方面,可能比人工元件优越大约 倍。
人工元件唯一压倒性的优势,是速度。
神经元的活动速度大致处于毫秒级,而电子元件可以快上很多个数量级。
所以当时的对比非常清楚:
人脑使用大量极小、极省电、但非常慢的元件;计算机使用少量巨大、耗电、但极快的元件。
从这里,冯·诺依曼进一步得出了一个非常重要的判断。
既然神经元很便宜、很小、很省电,却很慢,那么天然系统最合理的策略,就是大量堆叠这些慢元件,让它们同时工作。
而人工元件当时巨大、昂贵、耗电,却非常快,因此更合理的策略,是制造较少的计算单元,然后高速重复利用。
也就是说,两种系统从物理基础上就走向了两条不同的路线:
这是《计算机与人脑》中最核心的观察之一。
但70年以后,第一个发生变化的,恰恰就是这个物理基础。
晶体管已经追上来了
今天最先进的晶体管已经进入纳米尺度。
这意味着冯·诺依曼当年所描述的那种“天然元件在线性尺寸上比人工元件小几百甚至上千倍”的情况,已经不存在了。
现代晶体管的关键结构,与细胞膜、突触间隙等生物结构已经进入了相近的数量级。
元件数量上的差距同样发生了巨大变化。
现代人脑大约有860亿个神经元。
而今天的一颗高端GPU,可以包含上千亿甚至两千亿级晶体管。
如果仅仅比较数量,一颗现代芯片中的晶体管已经可以超过整个人脑的神经元数量。
当然,这并不意味着一颗晶体管等于一个神经元。
恰恰相反,这种比较本身已经说明:今天真正值得比较的层级发生了变化。
晶体管只是一个非常基础的物理开关,而一个神经元具有复杂的内部状态,还通过成千上万个突触与其他神经元连接。
如果把突触也纳入考虑,人脑拥有的连接数量大约可以达到 级甚至更高。
所以现代计算机虽然已经在“基本元件数量”上追上了大脑,但在整个连接结构上,仍然完全不是同一种系统。
更重要的是,能源问题也发生了类似的变化。
冯·诺依曼当年可以直接说一个真空管消耗几瓦,一个神经元只有纳瓦甚至更低,因此两者相差上亿倍。
但今天已经不能这样比较。
现代CMOS晶体管并不是一个始终以固定功率工作的元件。它的主要动态能耗发生在状态切换时,因此真正有意义的问题已经从:
一个晶体管消耗多少瓦?
变成:
完成一次信息处理究竟需要多少能量?
而在这个指标上,现代数字电路其实已经非常高效。
一个简单逻辑操作或者加法所需要的能量,可以低到皮焦耳甚至更低的数量级。
换句话说:
现代计算机真正的问题,已经不再是“晶体管这个元件本身太差”。
这是70年来最重要的变化。
大脑为什么仍然只需要大约20瓦?
如果晶体管已经足够小,单次计算也已经足够节能,而且现代芯片已经能够集成上千亿个晶体管,那么为什么一颗高端GPU仍然需要几百瓦甚至上千瓦,而整个人脑却只消耗大约20瓦?
答案很可能不在单个元件,而在整个系统如何组织这些元件。
现代计算机有一个非常根本的特点:
存储和计算是分开的。
数据和模型权重通常存储在DRAM、HBM、Cache或者SRAM中,真正执行计算的则是CPU核心、CUDA Core或者Tensor Core。
于是一次运算通常不是简单的:
而是:
随着晶体管越来越小,计算本身变得越来越便宜,数据移动反而成为一个巨大的成本。
在现代芯片中,从远端存储层级读取一个数据,所消耗的能量可能比真正做一次加法或者乘法高出几个数量级。
所以今天AI芯片最重要的问题之一,已经不只是“如何提高算力”,而是:
如何减少数据搬运。
这也是为什么现代处理器越来越强调Cache、HBM、带宽、数据复用、3D封装、Chiplet、存内计算。
从这个角度看,大脑的结构非常特别。
在大脑中,我们很难找到一个类似于“CPU”和“内存”的明确分界。
一个突触既是连接,也是状态。
突触强度本身就承载着信息。
神经元内部的各种电化学状态也直接参与计算。
换句话说:
大脑的存储、连接和计算,在物理空间上是高度融合的。
它并不需要像GPU那样不断从“显存”中把几千亿个参数搬到计算单元,再完成矩阵乘法。
很多状态本来就存在于真正发生计算的地方。
这可能是大脑能够维持极高能效的重要原因之一。
所以今天再看人脑和计算机的能耗差异,会得到一个和70年前完全不同的结论:
过去的问题是:
人工元件太耗电。
今天的问题更接近:
人工计算系统组织信息的方式太耗电。
这也是为什么我认为,今天人脑与计算机真正的差距已经逐渐从:
转移到了:
“大脑并行,计算机串行”今天还成立吗?
这是冯·诺依曼原书中另一个非常重要的判断。
他的逻辑非常自然。
既然人工元件非常快却数量有限,那么计算机就倾向于让同一组元件高速反复执行不同任务。
这是一种“时间复用”。
而大脑拥有数量巨大的神经元,因此更适合让大量单元同时活动。
这是一种“空间并行”。
可以非常粗略地概括为:
这个判断在冯·诺依曼那个时代非常准确。
但GPU的出现让情况发生了变化。
现代GPU已经拥有数量巨大的计算单元,可以同时处理海量乘加运算。
深度学习训练又进一步把计算扩展到几十、几百甚至数千颗GPU。
也就是说,现代计算机已经不再是纯粹依靠少数高速单元串行执行任务。
它正在越来越强烈地走向:
从CPU到GPU,本质上就是一次重要的架构转变:
从“少数复杂核心”,逐渐转向“更多相对简单的计算单元”。
从这个角度看,现代计算机其实正在向冯·诺依曼所描述的天然系统靠近。
但这并不意味着:
大脑是并行的,计算机是串行的。
这种说法过于简单。
因为无论是大脑还是计算机,都不可能消灭逻辑上的先后依赖。
例如:
无论拥有多少CPU、GPU或者神经元,都不能让A、B、C同时得出最终答案,因为B依赖A,C又依赖B。
这类关系叫做数据依赖。
所以大脑当然也有大量串行过程。
视觉信息必须先进入神经系统,后续区域才能根据这些输入形成更高层次的表征。
运动决策也必须在一定程度上先形成,再转化为实际运动控制。
因此真正准确的说法应该是:
大脑和计算机都是“局部并行 + 必要串行”的混合系统。
区别不在于谁“有串行”、谁“没有串行”,而在于:
它们把多少工作铺在空间中同时完成,又把多少工作通过时间复用依次完成。
大脑把非常多状态直接固定在巨大的物理网络中。
而现代计算机依然大量依赖高速复用计算单元。
这才是两者真正的差别。
冯·诺依曼最深刻的判断,今天反而更清楚了
冯·诺依曼接下来还有一个判断,我认为到了今天反而更重要。
他说,并行和串行并不能简单互换。
这不仅仅是因为有些计算步骤存在前后依赖。
还有另外一个原因:
把空间上的并行改成时间上的串行,往往会增加存储需求。
假设原来有1000个计算单元同时工作。
每个计算单元的状态可以直接保留在自己的物理结构中。
如果现在只剩下一个处理器,要轮流执行这1000个任务,那么在处理完第一个任务之后,就必须先保存它的状态,再去执行第二个任务。
于是大量原本直接存在于计算结构中的状态,就被转移到了“内存”中。
这就是时间复用带来的代价。
今天的计算机系统里,这种现象随处可见。
操作系统通过上下文切换,让少量CPU核心同时“运行”大量进程,需要不断保存和恢复状态。
而在今天的大语言模型中,这个问题表现得更加明显。
Transformer生成文本时:
后一个Token依赖前面的结果。
为了避免每生成一个Token都重新计算全部历史内容,我们把过去的Key和Value保存起来。
这就是KV Cache。
于是:
如果从冯·诺依曼的视角来看,这是一个非常典型的例子:
时间上的连续计算,需要以空间中的存储作为代价。
也正因为如此,单纯比较“每秒能完成多少次运算”并不足以评价一个计算系统。
一个系统究竟有多高效,还取决于它:
- 如何保存状态;
- 如何传递信息;
- 如何组织依赖;
- 如何在空间和时间之间分配计算资源。
这才是冯·诺依曼这部分讨论真正有价值的地方。
结语:70年后,问题已经变了
如果只看《计算机与人脑》中的具体数字,很多结论显然已经过时。
当年天然元件在线性尺寸、体积和能量消耗上的巨大优势,已经被70年的半导体技术大幅缩小,甚至在某些指标上完全消失。
今天我们已经拥有:
纳米级晶体管;
数千亿晶体管的单颗芯片;
GHz级运行速度;
极低能耗的逻辑操作;
以及极其强大的并行计算能力。
换句话说:
人类已经制造出了极其优秀的计算元件。
但是人脑和计算机的差异却没有因此消失。
相反,问题变得更加清晰。
真正巨大的区别,可能已经不再是:
神经元比晶体管小多少?
也不是:
神经元比晶体管省多少电?
而是:
为什么数百亿个低速神经元、通过数十万亿乃至更多局部连接,以高度分布式、异步、稀疏、存算融合的方式组织起来,只需要大约20瓦,就能够形成如此复杂的智能?
现代GPU已经开始走向大规模并行。
现代AI开始接受低精度计算。
存内计算试图缩短存储和计算之间的距离。
神经形态计算试图使用事件驱动和稀疏激活。
3D封装试图让计算和存储靠得更近。
这些看似不同的技术方向,其实都在逐渐逼近同一个问题:
当晶体管已经足够好了以后,我们到底应该怎样组织它们?
从这个角度再看《计算机与人脑》,真正不过时的并不是那些具体数字,而是冯·诺依曼提出问题的方式。
70年前,他看到的是两种由不同物理元件构成的计算机器。
70年后,我们越来越清楚地发现:
计算机与人脑真正深刻的差异,也许从来都不在“零件”,而在“组织”。

0条留言