Patterson:UCLA的怎么成了伯克利教授?高飞的电子替身
2026年7月13日,软件工程师Ryan Peterman在他的播客The Peterman Pod上发布了一期与David Patterson的长对话。Patterson是加州大学伯克利分校荣休教授、Google DeepMind杰出工程师,因与斯坦福大学John Hennessy共同开创RISC,即精简指令集架构,以及计算机体系结构的量化研究方法,两人在2017年共同获得图灵奖。伯克利后来在Patterson的RISC研究基础上发展出了开源指令集架构RISC-V,Patterson现任RISC-V国际基金会董事会副主席。他们合著的《计算机体系结构:量化研究方法》是这个领域的标准教材,2026年刚出了第7版。
Patterson最近的工作集中在Google TPU上。2026年6月,他和同事在arXiv上发表了一篇论文,回顾了TPU从第二代到最新一代Ironwood的五代架构演进。在播客中他提到了一个令人意外的结论:过去十年,TPU的基本架构蓝图几乎没有变过。
这是一个跨度极大的对话。Patterson从1980年代他亲历的RISC与CISC之争讲起,一路讲到摩尔定律失速后CPU、GPU、TPU三条路线的分化,再到他半个世纪职业生涯中关于勇气、幸福和遗憾的个人反思。以下是这场对话的完整梳理。
1. "像产品目录一样"的争论
RISC指令虽然多出30%到40%,但每条指令执行速度快4到5倍,净效果是3到4倍的性能提升。 但在1980年代,这些数字尚不存在,争论还停留在哲学层面。
1970年代微处理器刚被发明时基本是个玩具,放在微波炉之类的东西里。Patterson和Hennessy这样信奉摩尔定律的人相信,随着晶体管每一两年翻倍,微处理器终将成为真正的计算机。但早期设计芯片的人不是计算机架构师,他们直接模仿IBM大型机和DEC小型机的做法,用越来越多的晶体管去构建越来越复杂的指令。这就是CISC,即复杂指令集的路线。
Patterson用了一个比喻:CISC像一本塞满多音节长词的词典,RISC像一本全是单音节短词的词典。CISC阵营的哲学是,更高级的指令集缩小了编程语言与硬件之间的抽象差距,让编译器的工作更轻松。RISC阵营的赌注则押在另一面:编译器会越来越聪明,能自己处理这个差距,没必要把硬件做得那么复杂。
争论之所以持续这么久,是因为缺乏数据。Patterson回忆说,当时的教科书"像产品目录一样",罗列一台计算机的全部特性,再罗列另一台的,没有量化比较的框架。整个争论更像中世纪经院哲学式的辩论,他比喻为"针尖上能站几个天使"那种讨论。 直到他和Hennessy的团队真正跑了数据,答案在几年之内就清楚了。
Patterson深入了一层解释了CISC为什么会慢。早期计算机用一种叫"微程序控制"的方式实现复杂指令。计算先驱Maurice Wilkes发明了这种方法:在硬件内部放一个用简单微指令写成的解释器,逐条解释上层的复杂指令。微指令本身可以宽达100多个比特,相当复杂。在1960年代存储技术有限的条件下,这种方案是合理的。但解释执行的性能代价是编译执行的5到10倍。到了1980年代,直接编译到简单指令已经可行,微码解释器就成了纯粹的包袱。Patterson说他认为过去20年没有人发明过需要微码解释器的新指令集。
有人在网上写文章说CISC赢了。Patterson的回应是:"这是一种极其短视的看法。" 他指出,x86架构之所以在PC时代占主导,是因为软件以二进制分发,一旦x86确立了生态,切换的成本高到几乎不可能。这是商业锁定,不是技术胜利。连Intel自己也在2000年代初开始把x86指令在硬件内部翻译成RISC微操作来执行。Patterson说这在商业上完全合理,为了PC软件生态的价值多付一层翻译开销是值得的,但这恰好证明了RISC在技术层面已经胜出。
RISC架构的最终证明来自一个意想不到的方向。1980年代英国的Acorn公司觉得市面上的芯片不够快,受Patterson和Hennessy论文的启发自研了Acorn RISC Machine,也就是后来的ARM。RISC的好处之一是更简单、更省电。Apple为Newton选芯片时看中了这一点。Newton是Apple最早的手持设备,后来iPhone的前身。合作后Apple把名字从Acorn RISC Machine改成了Advanced RISC Machine,去掉了Acorn的品牌印记。Newton商业上失败了,但验证了RISC在移动设备上的优势。Nokia的GSM手机紧随其后拥抱ARM,从此ARM统治了整个移动计算领域。
Patterson给了一个数字:ARM架构的处理器累计出货量已超过3500亿颗。如今99%的计算机处理器都是RISC架构。 Apple的Mac已经从x86迁到自研ARM芯片,Amazon、Microsoft、Google也都在开发ARM服务器。x86的市场份额在收缩,RISC在扩张。在这种格局下说CISC赢了,Patterson觉得只有把"计算机"定义为"2000年以前的PC和服务器"才能得出这个结论。
2. "我们不需要这个"
"Well, we don't need that." 这是Patterson在早期研究中反复从编译器工程师那里听到的回答。CISC架构师凭直觉设计了许多复杂指令,认为这会帮助编译器,但写编译器的人看了说不需要。
Patterson举了一个具体例子:有个专门为过程调用入口设计的指令,做了许多架构师以为编译器需要的工作,结果编译器工程师说用几条简单指令拼起来反而更快。整个局面变得荒谬:你为了支持复杂指令多付了微码解释器的开销,编译器却根本不调用这些指令。而且做出"复杂指令会帮助编译器"这个判断的始终是架构师本人,编译器工程师从未提出过这样的需求。这个论点听起来合理,但从来没经过编译器一方的验证。
编译器在这场争论中的角色还有另一面。早期编译器的寄存器分配效率极差,计算机还不够快来运行高级的分配算法。C语言发明时,Dennis Ritchie和Ken Thompson用它写了Unix操作系统,在此之前操作系统是用汇编写的。但因为编译器分配寄存器的能力太差,C语言不得不保留register关键字,让程序员手动指定哪些变量放在寄存器里。寄存器是处理器内部的高速存储单元,比主内存快得多,但编译器当时没有能力高效利用它们。
RISC阵营的对策直截了当:CISC架构通常有8个或16个寄存器,RISC一口气给了32个。 逻辑是即使编译器的分配算法不够好,寄存器足够多时大多数时候也够用。摩尔定律让多加寄存器的硬件成本可以忽略不计。RISC的整体论点是一个技术赌注:编译器算法会变好,简单指令配合更多寄存器比复杂指令配合微码解释器更高效。事后看,这个赌注赢得干净利落。
3. 如果Dennard缩放还在,今天应该有100太赫兹处理器
大多数人知道摩尔定律,芯片上的晶体管数量每一两年翻倍。但很少有人知道另一条同样重要的物理规律:Dennard缩放。Patterson和Hennessy的教科书1990年出第1版、2000年出第3版,前三版根本没有讨论功耗问题。 原因是Dennard缩放在持续生效:每次缩小制程时,阈值电压也在降低。阈值电压是芯片用来区分0和1的电压门槛,降幅是平方级的,所以晶体管翻倍但功耗基本持平,处理器一直稳定在二三十瓦。
大约在2005年,Dennard缩放失效了。Intel甚至有一代处理器因为功耗太高而失败。Patterson给了一个思想实验来说明差距有多大:如果Dennard缩放还在持续,按原来的速度算,今天应该有100太赫兹的处理器。 如果真有100太赫兹的通用处理器,GPU仍然只是一个小众产品,根本不需要领域专用架构。但现实是,2005年前后处理器频率就到了两三个吉赫兹,今天基本还是两三个吉赫兹,二十年几乎没有变化。
Dennard缩放失效后的第一步应对是多核。在此之前,对程序员和所有人来说最理想的状态是一个强大的单核处理器把所有事做完。但做不到了,所以从一个强核变成两个、四个、八个较简单的核,把利用摩尔定律额外晶体管的责任交给程序员去做并行化。 这是一个沉重的转移。1980到2000年代,你朋友的新笔记本可能比你的快四倍,嫉妒得想换。到了2010年代,新机器没快多少,只有坏了才换。你再也不会因为朋友的电脑更快而扔掉一台完好的机器了。
多核撑了大约十年。到2015年前后,摩尔定律本身也开始放缓,通用处理器几乎不再有戏剧性的进步。架构师的下一步棋是领域专用架构:如果你告诉我只需要做哪一类计算,我就能把资源重新调配,在这个窄领域做到远比通用处理器更高效。当然代价是有些事你要么做得差,要么根本做不了。那么关键问题就变成了:选哪个领域?恰好在2012到2015年,机器学习和AI爆发了。方向不言自明。
4. 地下室少年和流体力学实验室
2000年前后GPU出现时,它只有一个任务:渲染图形。不需要支持虚拟内存,不需要支持编译器,只需要把游戏和电影的画面算好。Patterson说GPU连不需要编译器这一点在当时就是个激进的想法,因为编译器对传统架构师来说几乎是神圣的。为了图形性能,GPU采用了大量硬件多线程:发出一个内存请求后,硬件会自动切换到另一个线程继续干活,等内存数据回来再切回去。这是一种高度面向内存延迟的设计。GPU的浮点精度也比较窄,32位甚至16位就够了,图形渲染不需要64位科学计算那种精度。
GPU有自己一套独立的术语体系,和主流处理器设计的语言不同。Patterson说他和Hennessy在教科书里专门做了一张"罗塞塔石碑"式的对照表,把Nvidia的术语翻译成传统架构的概念。GPU就是这么一个游离于计算机架构主线之外的独立分支。
作为消费级产品,GPU只卖几百美元,但浮点性能按每美元计算远超CPU。有些人想到一个办法:如果把自己的计算问题伪装成图像生成任务,就能利用这些廉价的浮点性能。Nvidia创始人兼CEO黄仁勋看好这个方向,2006年资助开发了CUDA,全称Compute Unified Device Architecture,一种专为GPU多线程架构设计的类C编程语言。你不能直接编译C程序运行,但比把问题伪装成图像生成容易多了。
Patterson说黄仁勋的愿景是让那些在地下室玩游戏的少年学会编程GPU,同时盯上了几个特定市场,比如美国能源部实验室的流体力学模拟。Nvidia为这些场景构建了专用库,GPU由此从图形引擎开始向通用计算破圈。但在当时这仍然是一个小众市场。
转折点出现在2012年。多伦多大学的Alex Krizhevsky修了一门CUDA课程,用两块Nvidia GPU训练了一个叫AlexNet的神经网络,参加了当年的ImageNet图像识别竞赛。他是当年唯一使用神经网络的参赛者,结果碾压了所有对手。 这件事之前,神经网络在机器学习社区只有少数拥护者,大多数人不看好。AlexNet之后几年之内,整个领域不仅全面转向神经网络,而且全面使用GPU。Patterson把这称为机器学习历史上的标志性时刻。GPU就这样从一个为游戏设计的图形引擎,意外地成为了AI时代的基础设施。
5. 扔掉缓存,反转浮点
但Google走了一条完全不同的路。
Patterson说Google是"第一家真正意识到机器学习需求规模之大、并敢于自研芯片的大公司"。他用了"feared"这个词:Google不是看到机会才行动,而是担心自己会被即将到来的机器学习需求淹没。与GPU从图形领域跨界不同,TPU完全不考虑图形,是一张白纸上的设计。第一代TPU甚至只有一个处理器核心,不像GPU那样堆砌大量小核心。它的设计逻辑是彻底围绕机器学习的特性做减法。
第一个减法在核心架构上。神经网络的核心运算就是矩阵乘法,所以TPU把芯片面积的大头给了一个巨大的矩阵乘法单元。通用处理器上占大量面积的多级缓存被直接去掉了。缓存的本职工作是让硬件自动猜测哪些数据会被反复使用,把它们留在高速存储里。但机器学习工作负载的内存访问模式是可预测的,你不需要硬件来猜,用软件提前调度就行,效率反而更高。所以TPU用软件管理的内存替代了硬件缓存。
第二个减法在浮点格式上。传统科学计算用64位浮点,其中不到10位给指数、50多位给小数精度。机器学习需要的是数值范围而不是精度,所以Google发明了bfloat16格式,把指数位做得比小数位更宽。 这在当时是一个相当激进的想法,此前没有人做过指数位宽于小数位的浮点格式。这个格式出自Google内部的Brain研究组,名字"brain float"由此而来。
Google在2016年Google I/O大会上公开宣布第一代TPU时,它在推理性能上比同期GPU快约30倍、比CPU快约80倍。 Patterson说这一发布"震动了所有人":Intel开始收购公司,Nvidia开始调整设计方向,一批超大规模公司开始自研AI芯片。他认为TPU的发布是这个领域的分水岭时刻。那次发布让整个行业意识到,专门为机器学习设计硬件不只是可行的,而且效果可以好到这种程度。
6. DRAM曾经像时钟一样精确
DRAM密度过去每3年翻4倍,像时钟一样精确。现在大约10年才翻一倍。芯片上用于快速存取的SRAM几乎不再改善。逻辑门还在进步,但改进是碎片化的,不再是所有部件同步提升。这就是Patterson眼中摩尔定律的真实现状:没有一条简单的指导性定律了,你必须分别判断每个技术维度的改进速度,然后组合起来做设计决策。
Patterson也理解半导体行业对这个问题的情感反应。如果你干了几十年的事就是"我维持摩尔定律,这就是我做的事",有人说摩尔定律结束了,那等于说你的职业使命不存在了。但他的态度是看数据就好,数据不支持"摩尔定律还好好的"这个说法。
那Nvidia和Google是怎么做到每一代ML处理器仍然大幅提速的?Patterson列出了几个驱动力。一个是先进封装技术。过去最好的做法是把所有东西放在一块芯片上,现在芯片已经大到了光刻机的物理极限,一块芯片就占满了整个光刻窗口,叫做满光罩设计。最新的GPU和TPU实际上是把两块满光罩芯片封装进同一个封装体里。从外面看晶体管数量好像还在按摩尔定律增长,但打开看里面已经不是传统的单片了。还有浮点格式的持续压缩,从64位到32位到16位到8位甚至4位。矩阵乘法单元也在不断做大做快。
Patterson提到他刚发表的那篇TPU论文,2026年6月上arXiv,即将发表在IEEE Micro 2026年7/8月刊。回顾五代TPU后他发现,TPU的基本架构模块,包括大矩阵乘法单元、HBM高带宽存储器、向量单元,从第一代训练TPU到现在几乎没有本质变化。 那些在2015年前后做出初始设计的工程师,做了一个管用了十年的判断。
在竞争格局上,Patterson对CUDA护城河有独到判断。人们常说Nvidia有"CUDA护城河",但Patterson指出护城河中更大的部分是库,不是编程语言本身。 Nvidia是一家有大量工程师的公司,每次发布新架构都同步推出针对每个重要应用定制的优化库。有时候甚至会为特定应用重写整个库。这对创业公司构成双重打击:一方面创业公司在软件投入上不够,另一方面即使硬件出色,没有配套的优化库也难以在基准测试中展示真正实力。Patterson参与创建了MLPerf,后来更名为MLCommons,试图建立统一的基准测试标准,类似CPU时代的SPEC基准测试。但由于性能不仅取决于硬件架构,还取决于配套的库和编译器,Nvidia凭借工程师人数优势在MLPerf上表现极好,不是所有厂商都愿意参加。
Google走了另一条路:更多依赖编译器来做优化,而不像Nvidia那样重度依赖人工调优的库。Google的TPU直到最近都只在内部使用或通过云服务提供,没有作为独立芯片对外销售。


