芯东西:硅谷芯片大神2万字专访:自称“特斯拉最懒的人”(上)

在芯片界,你很难再找到像Jim Keller(谐音:金坷垃)这样的传奇人物,仅仅手握本科学历,却在过去20年间搅动了大半个硅谷的芯片风云。

他是计算机产业的超级巨星,从DEC起步,辗转于DEC、AMD、博通、苹果、特斯拉、英特尔等顶尖企业之间,屡屡研发出里程碑式的芯片。如今,这位“硅谷游侠”正在摸索职业生涯的下一个锚点——作为一家AI芯片创企的CTO兼总裁。

近日,在外媒AnandTech的Ian Cutress(伊恩·库特雷斯)与Jim Keller的一场深入对话中,你会看到这位技术大牛成长的轨迹,从初出茅庐时的青涩莽撞,到转型管理岗位时的手忙脚乱,再到如今,在兼顾工作与生活方面游刃有余。

500

褪去从业经历带来的光环,他有许多接地气的一面。他自称是“特斯拉最懒的人”,拒绝“996”,一天至少要睡够7小时,会为人际关系感到烦恼,喜欢睡觉、吃饭和看书,吐槽工作占据的时间比想花在它上面的时间多得多。

他也曾年少轻狂,刚入职第一家公司就与CTO争辩1小时,还嫌对方的一部分想法是“愚蠢的”;他曾经不知道怎么合作,认为必须自己亲自上手每一件事,“像疯子一样工作”。

面对既有的成就,Jim Keller十分坦然地自我称赞:“就交付具有持久价值的产品而言,我的成功是相当高的。”但他并未自恃天才,认为自己“没那么聪明”,是靠毅力与坚韧才走到今天。

他反对被称作“Zen之父”,说自己只算得上“叔叔之一”。从特斯拉离职至今已有3年,他提到现在与马斯克联系不多,“最近没有和他说过话”。另外,他也提到喜欢跟英特尔前任CEO司睿博一起工作,并希望英特尔新CEO基辛格一切顺利。

当然,在这次长达2万字的深度专访中,你还将读到这位芯片专家如何对曾经在AMD、苹果、英特尔的从业经历如数家珍,并奉献了许多充满洞察力的、经过深思熟虑的思考与见解。

从工程师转型到管理者,从带队几十人到领导1万人,他在经过大量阅读和实践经验积累后,摸索出一套行之有效的团队组建与职场管理方法论,并将抽象分层的思路应用到生活之中。

除此之外,他畅谈了许多关于芯片架构设计本身的想法,包括对RISC-V与Arm、x86竞争的思考,以及对人工智能(AI)芯片未来的预判。

他还在交流过程中做了图书推荐,如果你想读管理类的书籍,《从优秀到卓越》(Good to Great)不是个好选择,倒不如读卡尔·荣格(Carl Jung)的书。

芯东西在不违背原意的前提下,对此次Jim Keller接受AnandTech深度专访的内容加以完整编译。

一、“我是Zen的叔叔之一”

问题1:您曾为AMD的Zen和SkyBridge平台工作,如今AMD的Zen产品线正在获得更多市场份额,您也将开始做更好的事。不过在那个项目中,关于您在AMD的确切角色众说纷纭。

有人认为,您在确定Zen以及后面Zen2、Zen3高级微架构的设计方面功不可没。还有人认为,您把人安排好,在高层签字,然后专注于Arm版本的SkyBridge、K12。可以告知您在那里承担的角色吗?您对Zen和K12的深入程度如何?或者您参与了像Infinity Fabric这样的项目吗?

Jim Keller:是的,这是个复杂的项目。我加入AMD时,他们有Bulldozer(推土机)和Jaguar(美洲豹),它们都有些独特之处,但在市场上并不成功。其路线图不激进,落后于英特尔,但落后不是件好事,你最好追赶,而不是落后。

所以我接过这个角色,作为CPU团队的总裁,我认为当我加入时有500人。在接下来的三年里,SoC团队、Fabric团队和一些IP团队加入了我的团队。我想当我离开时,被告知已有2400人。

我是一名有员工的副总裁,有直接向我报告的高级董事和高级研究员,我的员工有15人。因此我几乎不写RTL!

也就是说,我们做了很多事情。我是一位计算机架构师,不是真正的经理。我想这是我当时拥有的最大管理角色。在那之前,我一直是一家初创公司的副总裁,但那是50人,我们都相处得很好——对我来说,这是一个完全不同的游戏。

我知道,我们必须做出的技术改变将包括让人们与它一致。我不想成为一名设计师,一边与副总裁争论为什么有人能做或不能做这项工作,或者为什么这是正确或错误的决定。

我跟Mark Papermaster(现任AMD首席技术官兼执行副总裁)聊过,告诉他我的理论,他说:“好吧,我们会试试看”,效果很好。

有了这个,我就有了直接的权力。但人们不会真的去做他们被要求的事情,而会做自己受到激励去做的事情。所以你必须制定一个计划,其中一部分,是找出合适的人来做不同的事情。

有时有些人真的很优秀,但人们非常投入于他们上次做的事情,或者他们相信事情无法改变,我的观点是事情很糟,几乎所有事情都必须改变。

所以我默认了。并不是我们没有找到很多好用的东西,但你必须证明旧东西是好的,而不是证明新东西是好的,因此我们改变了这种心态。

在架构学上,我非常清楚我想要做什么以及为什么。我在公司内部找到了一些人,比如Mike Clark(迈克·克拉克)、Leslie Barnes(莱斯利·巴恩斯)、Jay Fleischman(杰伊·弗莱施曼)等。有相当一部分非常优秀的人,当我们描述自己想做什么,他们会说“是的,我们想那样做”。

我在架构上有一些投入,经常有决策和分析,人们有不同的意见,所以我相当亲力亲为。但我没有做框图或写RTL。我们正在进行多个项目,有Zen,有Arm的表亲、后续项目,还有一些新的SoC方法。

不过我们所做的不仅仅是CPU设计,我们做了方法学设计、IP重构、非常大的组织变革。我自上而下地处理了这些东西,这很有意义。

问题2:有些人认为你为“Zen之父”,你认为你接受这个称谓吗?还是应该归给别人?

Jim Keller:也许是其中一个叔叔。Zen团队中有许多很棒的人,有一个分布在世界各地的团队,SoC团队部分在奥斯汀、部分在印度,浮点缓存在科罗拉多州完成,核心执行前端在奥斯汀,Arm前端在森尼维尔,我们有很好的技术领导者。

有一段时间,我一直在与Suzanne Plummer(苏珊娜·普卢默)、Steve Hale(史蒂夫·黑尔)以及科罗拉多(Colorado)团队进行日常沟通,他们在某种程度上构建了Zen核心的前端。

他们都超棒。Mike Clark(迈克·克拉克)是一位出色的架构师,我们有很多乐趣和成果。成功取决于很多人,失败取决于一个人。这是个成功。

然后一些团队开始进步。我们把挖掘机架构移给波士顿团队,他们接手完成设计和实物工作,Harry Fair(哈里·费尔)和他的团队在这方面做得很好。

我们做了一些相当紧张的组织变革。我认为这其中有很多的同志情谊。所以我不会自称是“(Zen的)父亲”,我是作为发起者和主要推动者被引入的,但我一部分是架构师,一部分是转型的领导者。那很有趣。

问题3:您在AMD做的所有事情,现在都完成了吗?还是仍有些路线图之类的东西要出来?从你帮助传播的理念来看,你是怎么想的?

Jim Keller:当你建造一台新电脑,而Zen是一台新电脑时,工作已经在进行了。你基本上构建了一个路线图,我在想我们五年来要做什么,一个接着一个芯片。我们在苹果打造第一个大核心时也这样做,(在设计中)构建了大骨架。

当你想让计算机更快时,有两种方法可以做到:让基本结构变大,或者调整功能。Zen有一个大结构。然后,接下来几代人有明显的事情要做。他们一直在坚持做这件事。在某个时候,他们将不得不进行另一次大的重写和改变。我不知道他们是否已经开始这样做了。

过去几年,我们为架构性能改进的计划相当大,他们似乎在执行这项工作方面做得很好。但我已经离开那里一段时间了——四五年了。

问题4:是的,我想他们说Zen3,上一个刚出来的是改写的。所以我想有些人会认为,那仍是在您的指导下?

Jim Keller:是的,很难说。即使当我们做Zen时,我们也是从零开始做设计的——在顶部做一个干净的设计。但当他们打造它时,有一大堆来自推土机(Bulldozer)和Jaguar(美洲豹)的RTL,它们非常好用,只需被修改并嵌入到新的Zen结构中。所以硬件人员很擅长使用好的代码。

因此,当他们说他们做了一个大改时,他们可能拿了一些片段,并在顶部进行重构,但当他们构建代码时,如果20%~80%的代码是相同的,或者轻微修改,这并不奇怪,很正常。

关键是采用正确的结构,然后根据需要重用代码,而不是采用一些复杂的代码并试图调整它以达到某个目的。所以如果他们重写了,可能会修正了结构。

二、在英特尔管理10000人

问题5:我不确定您是否还在接受保密协议,您在英特尔的工作像是一个全新的开始吗?可以详细谈谈您在那里做了什么吗?

Jim Keller:显然我不能说太多。我曾担任(英特尔)硅工程集团高级副总裁,团队有1万人。他们做了很多不同的事情,这太神奇了。从设计到原型,从调试和生产,总共大约有60到70个SoC。这是一个相当多样化的团体,我的员工都是副总裁和高级研究员,这是一个很大的组织。

我原以为我会去那里,因为那里有很多新技术要去做。我大部分时间都在与团队一起研究组织和方法的转换,比如新的CAD工具、新的方法、构建芯片的新方法。

在我加入之前的几年,他们开始了所谓的构建芯片的SoC IP想法,而不是0历史整体视角。老实说,这并不顺利,因为他们采用了整体芯片,采用了出色的客户端和服务器部件,然后简单地将其拆解。你不能只是把它拆解,而必须真正重构这些部分和一些方法论。

我们发现许多内部人员对此感到非常兴奋,我还花了很多时间在IP质量、IP密度、库、特征描述、制程技术上。你能想到的,我都在。我的日子过得有点疯狂,有时我一天会有14种不同的意义。只是点击、点击、点击,很多事都在发生。

问题6:这些会议,您是怎么完成的?

Jim Keller:我什么都没做!我被告知是高级副总裁,负责评估、制定方向、做出判断,或者尝试一些组织变革或人员变革,过一段时间就能积累起来。要知道,实现目标的关键,是知道你要去哪,然后建立一个知道如何做到这一点的组织,这需要做很多工作。所以我没写多少代码,但发了很多短信。

问题7:现在英特尔有了一位专注于工程的新CEO帕特·基辛格(Pat Gelsinger)。如果机会合适,您会考虑回去吗?

Jim Keller:我不知道。我现在有一份非常有趣的工作,在一个爆炸性增长的市场中。所以我祝他一切顺利。我认为这对于帕特来说作为CEO是一个不错的选择,我希望这是一个好选择,我们会拭目以待。他确实非常关心英特尔,他过去也取得了真正的成功,肯定会给公司带来更多的技术关注点。但我喜欢和司睿博(Bob Swan)一起工作,所以我们拭目以待。

三、跳进跳出特斯拉英特尔,玩得很开心

问题8:您当前在一家名为Tenstorrent的公司,和老朋友Ljubisa Bajic(Tenstorrent首席执行官)一起。纵观整个职业生涯,您基本上都在从一家公司跳到另一个公司。您总是在寻找另一个项目、另一个机会、另一个角度。恕我直言,Tenstorrent会成为您永远的家吗?

Jim Keller:首先,我在Digital(DEC)工作了15年,对吧?!现在是一种不同的工作,我在中档组,用ECL制造冰箱大小的计算机。我曾是DEC Alpha团队的一员,我们打造了微处理器,很小的东西,但在当时我们认为它们很大,300平方毫米、50瓦,这令每个人都大吃一惊。

我在那儿待了一段时间,然后在互联网高峰期去了AMD,我们在几年内做了很多事情,启动了Opteron(皓龙处理器)、HyperTransport、2P服务器,这是一个旋风般的地方。但我被互联网的热情吸引了,我去了SiByte,它被博通收购了,我在那里总共待了4年,交付了几代产品。

当时我在P.A. Semi工作,我们交付了一个很棒的产品,但出于某种原因,他们并不想出售该产品,或者他们想要将其卖给苹果。随后苹果买下了P.A. Semi,我就在那个团队工作,所以你知道我在P.A. Semi和苹果之间徘徊,那已经7年了,所以我并不觉得跳得太多。

之后我跳槽到AMD,我想,这是一段很有趣的时间。再后来,我去了特斯拉,在那里,我们交付了Hardware 3.0 (特斯拉自动驾驶芯片)。这是一种现象。从静止起步到18个月内驾驶一辆汽车,我认为这是前所未有的,而且那个产品发货真的很成功。他们去年建了100万套。特斯拉和英特尔是另一种旋风,所以你可以说我跳进去又跳出来,确实玩得很开心。

是的,我去过一段时间。我喜欢这样想,我大部分时间,都用在完成我想要完成的事情。就交付具有持久价值的产品而言,我的成功是相当高的。我不是那个在生产中调整事情的人,这要么是一张干净的纸,要么是一场彻头彻尾的灾难。

这似乎是我最擅长的事情。了解自己真好——我不是运营经理。Tenstorrent更像是一张干净的纸。AI领域正在爆发。这家公司本身已经成立多年了,但我们正在打造新一代部件,然后推向上市,开始销售。我是CTO兼总裁,在公司中拥有大量股权,无论是基于财务还是对那里的朋友的承诺,我都打算在这里待一段时间。

500

问题9:您之前说过,超越了矩阵,你最终会得到巨大的图结构,特别是对于AI和ML,关于Tenstorrent的全部要点,它是一个图形编译器和图计算引擎,而不仅仅是一个简单的矩阵乘法?

Jim Keller:有少量晶体管时,你可以做标量数学运算,比如A=B+CxD。现在我们有了更多的晶体管,你可以说“我能做一个这些晶体管的向量”,就像一步做一个方程。

得到更多的晶体管后,我们可以做矩阵乘法。当获得更多晶体管,你想进行这些大运算并分解它们,因为如果你的矩阵乘数太大,仅仅通过单元的能量就是一种能源浪费。

你会发现你想构建这个最优大小的块,它不会太小,就像GPU中的一个线程,但它也不会太大,就像用一个矩阵乘数覆盖整个芯片一样。

从能耗的角度来看,这是一个非常愚蠢的想法。你将获得这个中型大小处理器阵列,其中中型处理器像是4TOPS。这对我来说仍然很有趣,因为我记得那是个非常大的数字。

一旦你把它分解,现在你必须把大运算映射到处理器阵列,AI看起来像一个非常大运算的图。它仍然是一个图,然后将大运算分解成较小的图。现在你必须将它放在一个有很多处理器的芯片上,并让数据流绕在它周围。

这是一种与运行向量或矩阵程序非常不同的计算方式。我们有时称之为标量向量矩阵。Raja过去称它为空间计算(spatial compute),这可能是一个更好的词。

问题10:除了Tensix核心,Tenstorrent还在为下一代的核心中添加向量引擎?这是怎么一回事?

Jim Keller:还记得通用CPU上有向量引擎吗?事实证明,当你运行AI程序时,你想有一些通用计算。在图中,有时你想根据AI操作的结果运行C语言程序,因此将计算紧密耦合是很好的。通过将其保存在同一芯片上,延迟非常低,来回消耗的能量也很合理。

所以,是的,我们正在为此制定一个有趣的路线图。这是一个很小的计算机架构研究领域,比如,加速计算和通用计算的正确组合是什么?人们如何使用它?如何以一种程序员可以实际使用的方式来构建它?这就是我们正研究的技巧。


四、处理更复杂的事情,必须借助工具和组织

问题11:纵观您的职业生涯,您在高性能计算和低功耗高效计算之间徘徊。现在,您正处于AI加速的世界。有过无聊的时候吗?

Jim Keller:不,这真的很奇怪!它变了,变了很多,但在某种程度上,它完全没有改变。底部的计算机,它们只是将1和0加在一起。这很简单。011011100,没那么复杂。

但我曾研究过VAX 8800,用每个芯片有大约200个“或门”的栅极阵列构建它。如今在Tenstorrent,我们的小计算机,我们称之为Tensix核心,每个核心每秒有4万亿次操作,一个芯片里有100个这样的处理器。因此架构模块已经从200个门转移到4TOPS。这有点疯狂。

这些工具比以前好得多。你现在能做的是,除非抽象级别改变,工具改变,否则你无法构建更复杂的事情。这方面发生了很多变化。

当我还是个孩子时,我曾经认为我必须自己做每件事,我像个疯子一样工作,一直编码。现在我知道如何与人合作,如何与组织合作,如何倾听,诸如此类的人际交往技能。人际交往能力上,我可能会有一个相当不平衡的记分卡!我确实有一些。

问题12:您认为现在的工程师需要更多的人际技能吗?因为每件事都很复杂,都有单独的抽象层,如果想兼顾它们,必须有相应的基础知识。

Jim Keller:现在这是基本的事实,人们没有变得更聪明。因此,人们不能继续处理越来越多的事情——这太蠢了。你必须建立工具和组织,来支持人们做复杂事情的能力。

VAX 8800团队有150人。但在苹果建造第一个或第二个处理器的团队,第一个大型定制核心,只有150人。现在CAD工具好到令人难以置信,我们使用1000多个计算机进行模拟,此外,我们还有工具可以布局布线200万个门,而不是200个门。

因此,有些事情发生了根本性变化,但一位工程师一天内可能会交谈的人数根本没有改变。如果你有一个工程师每天和超过五个人交谈,他们会失去理智。所以,有些东西是真的恒定的。

五、CPU指令集:Arm/x86 VS RISC-V

问题13:我想了解一下您对CPU指令集的看法。具体的问题是,我们应该如何处理基本的限制?如何转向更好的?以及在Arm、x86与RISC-V方面,您如何入局?我记得有一次,您说大多数计算发生在几十个操作代码上,对吗?

Jim Keller:(关于指令集的争论)是一个非常悲伤的故事。它甚至不是几十个(操作代码)——80%的核心执行仅仅是6条指令——加载、存储、加法、减法、比较和分支。这些几乎就涵盖了所有。如果你用Perl或其他方式写作,也许调回和返回,要比比较和分支更重要。但指令集的影响很小,你可能会因为丢失指令而损失10%或20%的(性能)。

有段时间,我们认为可变长指令真的很难解码,但我们一直在想办法解决这一点。你基本上预测了表格中所有指令的位置,一旦你有了好的预测器,你就可以很好地预测这些东西。

因此,当你打造小型计算机时,固定长度的指令看起来很不错,但如果你正在打造一台非常大的计算机,来预测或确定所有指令的位置,它就不占优势。所以这没有那么重要。

当RISC刚出现时,x86有一半是微代码。如果你看看die,一半或1/3的芯片是ROM。RISC人员可能会说RISC芯片上没有ROM,所以我们得到了更高的性能。但现在ROM这么小,你发现不了。实际上,加法器这么小,你几乎找不到它?目前限制计算机性能的是可预测性,其中两大限制是指令/分支可预测性和数据局部性。

现在新的预测器真的很擅长这个。它们很大,两个预测器比加法器大得多。这就是你CPU与GPU(或AI引擎)之间争论的地方。GPU的人会说:“看,没有分支预测器,因为我们做每件事都是并行的。”芯片有更多的加法器和减法器,如果这是你的问题,这是正确的。但他们在运行C语言程序时很垃圾。

GPU是为在像素上运行着色程序而构建的,如果您有800万个像素,而大型GPU现在有6000个线程,您可以覆盖所有像素,每个线程每帧运行1000个程序。

但这有点像一群蚂蚁带着沙粒,而大型AI计算机有很大的矩阵乘数,它们喜欢用更少的线程来做更多的数学运算,因为问题本身就很大。而着色器问题是,问题本身很小,因为像素太多了。

有三种不同类型的计算机:CPU、GPU和AI。NVIDIA正在做“中间人”的事情,他们用GPU运行AI,并试图增强它。其中一些显然效果很好,有些显然相当复杂。

有趣的是,这种情况经常发生,当通用CPU看到GPU的向量性能时,它添加了向量单元。有时这很好,因为你只有一点向量计算要做,但如果你有很多事,GPU可能是更好的解决方案。

问题14:回到指令集架构(ISA)问题,很多人问您对Arm和x86有什么看法?哪款有遗留问题,哪款有性能?您在乎吗?

Jim Keller:我有点在乎。事情是这样的。当x86刚问世时,它超级简单纯净,当时有多个8位架构:x86、6800、6502。我可能以前就编程过所有这些程序。奇怪的是,x86是开放版本。他们授权给7家不同的公司,这给了人们机会,而英特尔出人意料地授权了它。然后是16位和32位,后来他们增加了虚拟内存、虚拟化、安全性,继而是64位和更多功能。当你添加东西时,你还要保留旧的内容,以确保兼容性。

当Arm刚出现时,它是一台纯净的32位计算机。与x86相比,它看起来更简单、更易构建。然后他们添加了16位模式和IT(如果是的话)指令,这太糟糕了。然后(他们添加了)一个奇怪的浮点向量扩展集,覆盖寄存器文件,再之后是64位,这部分清理了它。在安全和引导方面有一些特殊的东西,所以它只会变得更加复杂。

现在RISC-V出现了,它是耀眼的Arm新表亲。因为没有“垃圾”。它是一个开放式指令集架构,人们在大学里打造它,他们没有时间和兴趣去像其他架构那样添加太多的“垃圾”。所以相对来说,仅仅因为它的血统和年龄,它才处于复杂生命周期的早期。

这是一套相当不错的指令集,他们做得很好。所以如果我今天想非常快地构建一台计算机,并且希望它运行地更快,那么RISC-V是最容易选择的。它是最简单的一个,拥有所有正确的功能,并且没有太多的垃圾。

问题15:所以现代指令集太臃肿了,尤其是有旧的遗留问题、历史包袱?

Jim Keller:已迭代和添加的指令太臃肿了。总是这样。当你不断添加内容时,工程师们会遇到困难。你可以有一个非常好的设计,有10个功能,然后你再添加一些功能。这些功能都使它更好,也使它更加复杂。

随着时间推移,添加的每个新功能都变得更难,因为该功能和其他所有内容的交互都变得很糟。

营销人员和老客户会说“不要删除任何东西”,但与此同时,他们都在尝试新的东西,其功能只有老内容的70%,但它做得更好,因为它没有所有这些问题。

我谈到了收益递减曲线,收益递减的原因有很多,其中之一是事物相互作用的复杂性。原本更简单、做得更少的东西会更快,它们会让这些速度慢下来。这种情况已经发生过很多次了,这是复杂性理论的结果,我认为是“人类的邪恶”。

问题16:您有没有见过这样的情况:x86崩了,而某些东西被重新发明?或者它只是有些遗留问题,像RISC-V这样的新事物会蹦出来填补空缺?

Jim Keller:x86-64相当干净,但显然它必须背负所有的旧包袱。他们弃用了许多旧的16位模式。很多东西都消失了,有时如果你很小心,你可以说“我需要支持这个legacy,但它不一定是性能,我可以把它与其他legacy隔离开来”。你要么模仿它,要么支持它。

我们曾打造计算机,有前端、获取、调度、执行、负载存储、L2缓存。如果你观察它们之间的界限,你会看到100根线在做一些随机的事情,这些事情确切地取决于时钟的哪个周期或阶段。

现在,这些接口看起来不像指令边界,如果我从这里发送到那里会有一个协议。里面的计算机看起来不像一堆东西连在一起,而看起来像8台计算机连在一起做不同的事情。有一台获取机、一台调度机、一台执行机和一台浮点计算机,如果你这样,你可以不碰其他任何东西就改变浮点。

这与其说是指令集的东西,更像是“构建它时你的设计原则是什么”,然后你是怎么做到的。

如果你遇到问题,你可以说“如果我能在这两个盒子之间有这五根线,我就可以解决这个问题。”但每次你这样做,每次你违反抽象层,你都会给未来的Jim Keller制造一个问题。

我这样做过很多次,如果你能正确地解出来,它仍然是干净的,但如果你稍微破坏一下,那么随着时间的推移,它会杀死你。

六、抽象分层能解决更复杂的问题

问题17:在很多演讲中,您谈到抽象分层的概念,不仅涉及工程的很多方面,也涉及到生活。这个概念是指您可以独立地升级不同的层,而不会影响上下层,并提供新的平台来构建。在您生命中的哪个阶段,这种精神发生了变化?您的生活中发生了什么,让它成为您个性的普遍元素?

Jim Keller:我个性中的普遍元素?这很有趣!我知道我经常重复它,也许我想说服自己。比如,当我们构建EV6时,德克·迈耶(Dirk Meyer,AMD K7研发主导者)是另一位架构师。我们还有其他几个很厉害的人。我们把设计分成几部分,写了一个非常简单的性能模型,但当我们构建这个东西时,对于一个坏掉的机器来说,这是一个相对短的通道,因为我们在预测方面还有点弱。事物之间有很多相互作用,这是我们一个困难的设计。

我们还使用Digital当时的定制设计方法构建了它。我们有22种不同的触发器(flip-flop),人们会roll他们自己的触发器。我们经常用晶体管建造大型结构。我记得有人问我库里有什么元素,我说,两者都是!N型和P型,对吗?然后去了AMD,K7是用一个单元库构建的。

现在,那里的工程师非常擅长布局单元库,能获得良好的性能。他们只有两个flip-flop,1个大的和1个小的,他们有一个纯净的单元库。他们在晶体管和设计器之间有一个抽象层。那时候还没有真正好的布局布线工具,这是一种更好的方式。

然后,在EV6(后来被称为S2K总线)上构建的接口上,我们听取了AMD的意见。我们最初有很多复杂的交易来做snoops、加载、存储、读取、写入等各种事。我的一个朋友在数字研究实验室工作,有一天我向他解释了这是如何运作的,他听了我的话后,只是摇了摇头。

他说:“Jim,你不该这样做的。”他解释了虚拟通道是如何运作的,以及如何拥有独立的抽象信息通道。在开始对命令编码之前,你需要正确处理这一点。那场教研会的结果是HyperTransport。它有很多S2K协议,是以更抽象的方式构建的。

因此我想说,从Digital到AMD的转变,让我们有了关于如何构建高性能计算的想法,但方法是集成的,所以从晶体管到架构不能是同一个人。

在AMD,有迈克·克拉克(Mike Clark)、架构师、微架构师和RTL人员编写Verilog,他们字面上被翻译为gate库、gate人员,这更像是一种分层方法。

K7是一个相当快的处理器,我们第一次在K8上摇摆,我们有点倒退了。当时我最喜欢的电路合作伙伴,他和我可以谈论大型设计,我们把它看作晶体管,但这是一种复杂的计算机制造方式。

从那以后,我更相信抽象分层是正确的。你不会超越人类的能力——这是最大的问题。如果你想构建更大、更复杂的东西,你最好解决抽象分层问题,因为人们没有变得更聪明。如果你在上面放了100多人,它会减速,而不是加速,所以你必须解决这个问题。

问题18:如果有100多人,需要分成两个抽象层?

Jim Keller:没错。这是有原因的,就像人类很擅长追踪。你的核心朋友圈就像10-20个人,像一个亲密的家庭,然后根据组织方式,有50到100人,你可以记录。但除此之外,你把100人之外的每个人,都视作半个陌生人。所以你必须有一些不同的合约来说明你如何做到这一点。

就像我们做Zen的时候,有200人,一半团队在前端,一半团队在后端。它们之间的接口是已经定义好的,不需要彼此谈论合约背后的细节。

这是很重要的。现在他们相处得很好,一起工作,但他们不必经常在边界上来回走动。

七、关于摩尔定律,以及X射线光刻技术

问题19:您曾说过不担心摩尔定律,不担心在工艺节点方面的演变,它最终会被人在某个地方解决。您对摩尔定律的态度是冷漠的吗?

Jim Keller:我非常积极主动。这根本不是冷漠。我知道很多细节。人们混淆了一些事情,比如英特尔的10nm延期,有人说摩尔定律已经死了,台积电的发展路线图却根本没有动摇。

部分原因是台积电的路线图与EUV机器的可用性保持一致。所以当他们从16nm到10nm再到7nm时,他们做了台积电非常擅长的事情——做了这半步(half steps)。

因此,他们做了没用EUV的7nm、用EUV的7nm、不带EUV的5nm、带EUV的升级版5nm,他们做了些调整。然后使用EUV机器,有一段时间以来,人们不确定他们是否会工作。但现在阿斯麦(ASML)的市值超过了英特尔。

还有一件有趣的事情,我意识到,在创新的轨迹上,我们倾向于将台积电、三星和英特尔视为制程领导者。但许多领先地位实际上在ASML等设备制造商和材料方面。如果你看看谁在制造创新的东西,以及EUV全球销售,这个数字就像台积电到2023年将购买150台EUV机器之类的东西。

这些数字是惊人的,因为即使在几年前,也没有多少人确定EUV会起作用。现在X射线光刻技术即将出现,你可以说这是不可能的,但该死的,一切都是不可能的!

精细的印刷品,理查德·费曼(Richard Feynman)就是这么说的,他有点聪明。他说“底部有很多空间”,我个人可以数,如果你看看晶体管上有多少个原子,有很多。如果你看看你实际上需要多少晶体管才能做一个结,没有太多的量子效应,只有10个。所以还有空间。

还有一件有趣的事情——当每个人都相信技术正在以这种速度发展,而整个世界都朝着这个速度前进时,就有了一个信念体系。

但技术不是一回事。有些人知道如何构建晶体管,比如制程设计师在英特尔、台积电或三星所做的。他们使用可以做特征的设备,但随后这些特征实际上相互作用,然后会有一个很有趣的权衡,比如如何沉积和蚀刻,它应该有多高、多宽,在什么空间里。他们是使用工具的工匠,工具必须超级锋利,工匠必须非常有知识。这是一出很复杂的戏。

在某种程度上,因为机器本身很复杂,你有这个小的复杂组合,机器制造商正在做不同的部件,但他们并不总是完美地协调,或者他们通过设计流程的机器集成人员进行协调,这很复杂,它让事情慢下来。但这并不是因为物理基础——我们在物理基础方面正在取得良好进展。

问题20:您在Scaled ML大会演讲中,在幻灯片上印着一个Comic Sans字体的X,说随着时间推移,由于物理定律,EUV还有几个步骤要走。high-NA EUV几年后即将推出,但现在您提到了X射线。有什么时间表吗?

Jim Keller:通常当一项技术出现时,他们会用它来做一件事。当EUV首次用于DRAM时,它实际上是一步,也许是两步。我想起来了,可能2023或2024年?并不是很远。这意味着他们已经启动并运行了,人们正在使用它。

更疯狂的是,当它们从可见光变成极紫外光时,波长大约减少了10倍?因此,当他们有疯狂的多图案和干扰之类的东西时,你可以看到那些DUV的图案,当谈到EUV时,他们可以直接印刷。但实际上(当你缩小时)他们可以在EUV上使用相同的技巧。所以EUV将是多图案的,我想是在3nm。然后你可以用它做很多技巧。

所以,物理真的很有趣。然后是物理、光学等,材料的纯度,这非常重要,还有温度控制,这些事不会来回移动太多。你看到的每一个地方都是有趣的物理问题,所以有很多事情要做。有成千上万的人在研究它,并有足够的创新空间。

八、把老团队带到新东家未必是好事

问题21:我们注意到,当您从一个公司跳槽到另一个公司时,您所做的一件事是组建一个团队。由于团队是由其他人组建的,我们看到有些人将他们在前几家公司组建团队中的工程师带到下一家公司。您对组建团队有什么见解吗?在您所在的公司是否有什么不同的方法?

Jim Keller:你必须意识到的第一件事是,你是在组建团队,还是在寻找团队?威尼斯有一个很棒的博物馆,大卫博物馆,博物馆前面有一些巨大的大理石块。我不知道他们是如何移动的。大理石块已经放在那里,米开朗基罗可以看到这个美丽的雕塑,问题在于去除多余的大理石。

因此,如果你进入拥有1000名员工的公司,我向你保证,那里有一支好团队。你不必雇佣任何人。我在AMD时几乎不雇人。我们四处调动人员,重新部署了人员,那里有很多优秀的人才。

当我去特斯拉时,我们必须从零开始组建团队,因为特斯拉没有人在做芯片。我雇了一些我认识的人,后来又雇了一些我以前不认识的人,这是其中一件有趣的事情。

我见过领导者从一个公司到另一个公司,带着20个人,然后开始试图复制他们以前拥有的东西。这是一个坏主意,因为尽管20个人足以复制(你的)现状,但它会疏远(在新团队中的)你想要的东西。

当你组建一个新团队时,理想情况下,你会得到你真正喜欢的人,或者你刚认识他们,或者你和他们一起工作,但你需要在方法和思维上有所不同,因为每个人都有一个局部的最低要求。所以新团队有机会一起创造一些新的东西。

其中一些原因是,如果你有10个真正非常好的团队,然后你从每个团队中抽出一个人组建一个新团队,那可能更好,因为他们会重新选择哪个是最好的想法。

每个团队都有优点和缺点,因此你必须考虑,你是在建立团队还是在寻找团队,你想要创造的动力是什么,它给人们提供了产生新想法的空间。

或者,如果有些人坚持一个想法,他们会与新人合作,会开始做这件不可思议的事情,你会认为他们很棒,即使他们以前没那么好,那么发生了什么?他们带着一些不太好的想法,遇到了一个挑战他们或环境迫使他们的人,突然间他们就做得很好了。我见过很多次这种情况。

Digital(DEC)的肯·奥尔森(Ken Olson)说,没有糟糕的员工,只有不合适的员工。

当我年轻的时候,我认为这很蠢。但随着我与更多人合作,我见过这种情况发生很多次,我甚至解雇过一些后续取得真正成功的人。这一切都是因为他们没有把工作做好,被情绪困住了,他们觉得自己在做一些没用的事情。

将他们搬到另一个地方的行为使他们自由了。(不用说)我没有得到一句感谢。

问题22:这之中有多大程度归结于公司文化呢?当您为合适的职位寻找人或招聘新员工时,您是否尝试得到一些与公司利益相悖的东西?您这里有什么策略吗?还是您只是在找一个有火花的人?

Jim Keller:如果你想要创造一些真正具有创新性的内容,那么你的想法很可能与传统背道而驰。如果你的项目进展顺利,引入激励者会让所有人放慢脚步,因为你已经做得很好了。

你必须在环境中观察。有些人真的很好,他们非常灵活地适应并推动这个项目,但在下一个项目中,你可以看到他们已经建立自己的网络和团队,在下一个项目中,他们准备做一个支点,每个人都愿意工作。信任是件有趣的事情,不是吗?

你知道,如果有人走上前来,说跳下这座桥,但你会没事的,你可能会认为这是说胡话。但如果你已经和他们一起经历了很多事情,他们说“看,相信我,然后跳下去——你会没事的;这会很糟糕,但会没事的”,你会做的,对吧?

相互信任的团队,比那些必须处理合同、谈判和政治的团队效率高得多。

所以这可能是一回事。如果你正在建立或寻找一个团队,你开始看到人们从事政治活动,这意味着为了自己的利益操纵环境,他们必须离开。除非你是老板!那你就必须看看他们能不能做到,有些人非常政治化,但他们真的认为自己的政治力量来自于实现目标。但在一个政治性的组织中,人们会随意造成很多压力。

问题23:您是否建议早期或中期的工程师应该定期从一个项目跳到另一个项目,这样他们就不会陷入困境?这听起来是一件常见的事情。

Jim Keller:当你做新事情并为那些比你懂得多的人工作时,你学得最快。因此,如果你的职业生涯刚刚开始,而且你学到的东西不多,或者你为之工作的人没有激励你,那么是的,你可能应该改变。

有些职业中,我曾见过一些人因为获得经验而换了三次工作,结果却一无所获。他们最好还是待在原处,真正深入研究一些事情。所以你知道,这两种想法之间存在创造性张力。


站务

全部专栏