RISC-V MCU中文社区

Jim Keller:在指令集上辩论是一件悲哀的事情

分享于 2021-06-18 09:42:47
0
6728


在半导体设计领域, Jim Keller的名字如雷贯耳,不仅仅是因为他参与或领导的大型成功项目的数量,而且这些项目都为各自的公司创造了数十亿美元的收入。他的职业生涯横跨 DEC、AMD、SiByte、Broadcom、PA Semi、Apple、AMD(再次)、Tesla、Intel,现在他在 Tenstorrent 担任首席技术官,开发下一代可扩展的 AI 硬件。吉姆的职业准则(work ethic )经常被描述为“享受挑战”,

最近,这意味着致力于当今最激动人心的半导体方向,要么是高性能计算,要么自动驾驶和AI。今日, AnandTech发布了他们最近与 Jim 聊天的记录,半导体行业观察摘录其中一些自认为关键信息,以飨读者。


CPU 指令集:Arm 与 x86 与 RISC-V


IC:您过去曾谈到 CPU 指令集,而我在这次采访中收到的最大请求之一是请您谈一下对 CPU 指令集的看法。具体问题是关于我们应该如何处理对它们的基本限制,我们如何转向更好的限制,以及在 ARM、x86 和 RISC V 方面,你都是什么观点。我想在某一时刻,你说大多数计算发生在几十个操作码上。我没记错吗?

JK:[争论指令集]是一个非常悲伤的故事。它甚至不是几十个 [操作码] ,而是80% 的核心执行只有 6 条指令 ,加载((load)、存储(store)、加(add)、减(subtract)、比较(compare)和分支(branch)。有了这些,你几乎已经涵盖了它。如果您使用 Perl 或其他语言编写代码,则调用和返回可能比比较和分支更重要。但是指令集只有一点点重要——你可能会因为缺少指令而损失 10% 或 20% [性能]。

有一段时间我们认为可变长度指令(variable-length)真的很难解码。但我们一直在想办法做到这一点。您基本上可以预测所有指令在表格中的位置,一旦有了好的预测器,您就可以很好地预测这些内容。因此,当您构建小型计算机时,固定长度的指令似乎非常好,但是如果您正在构建一台真正的大型计算机,要预测或找出所有指令的位置,它并不能支配模具。所以没有那么重要。

RISC 刚出现时,x86 是半微码。所以如果你看看芯片,一半的芯片是 ROM,或者可能是三分之一或其他东西。RISC 人员可以说 RISC 芯片上没有 ROM,因此我们获得了更高的性能。但是现在ROM这么小,你找不到它。其实加法器这么小,你怎么都找不到?今天限制计算机性能的是可预测性,其中两大因素是指令/分支可预测性和数据局部性。

现在,新的预测器非常擅长这一点。它们很大 -,两个预测器比加法器大得多。这就是您进入 CPU 与 GPU(或 AI 引擎)辩论的地方。GPU 人员会说“看,没有分支预测器,因为我们并行执行所有操作”。所以芯片有更多的加法器和减法器,如果这就是你的问题,那就对了。但是他们在运行 C 程序方面很糟糕。

GPU 是为在像素上运行着色器程序而构建的,因此如果给定 800 万像素,而大型 GPU 现在有 6000 个线程,则您可以覆盖所有像素,每个像素每帧运行 1000 个程序。但这有点像一群携带沙粒的蚂蚁,而大型人工智能计算机,它们具有非常大的矩阵乘法器。他们喜欢数量少得多的线程来做更多的数学运算,因为问题本身就很大。而着色器的问题是问题本质上很小,因为像素太多。

真正存在三种不同类型的计算机:CPU、GPU 和 AI。英伟达正在做一些“中间人”的事情,他们使用 GPU 来运行人工智能,并试图增强它。其中一些显然工作得很好,而其中一些显然相当复杂。有趣的是,这种情况经常发生,通用 CPU 在看到 GPU 的矢量性能时,添加了矢量单元。有时这很好,因为你只有一点点矢量计算要做,但如果你有很多,GPU 可能是更好的解决方案。

IC:那么回到 ISA 问题——很多人都在问你对 Arm 与 x86 的看法如何?你是怎么看

JK:我有点在意。这就是发生的事情 。当 x86 首次出现时,它非常简单和干净,对吧?当时,有多种 8 位架构:x86、6800、6502。当时我可能对所有这些架构都进行了编程。然后奇怪的是,x86 是开放版本。他们将其授权给七家不同的公司。这给了人们机会,但英特尔出人意料地授权了它。然后他们去了 16 位和 32 位,然后他们添加了虚拟内存、虚拟化、安全性,然后是 64 位和更多功能。因此,当您添加内容时,架构会发生什么,您保留旧内容以使其兼容。

所以当 Arm 刚出来的时候,它也是一台干净的 32 位计算机。与 x86 相比,它看起来更简单,更容易构建。然后他们添加了一个 16 位模式和 IT(如果有的话)指令,这很糟糕。然后 [他们添加] 一个奇怪的浮点向量扩展集,在寄存器文件中带有覆盖,然后是 64 位,部分清理了它。有一些特殊的东西用于安全和启动,所以它变得更加复杂。

现在 RISC-V 出现了,它是闪亮的新表亲,对吧?因为没有历史遗留问题。它实际上是一个开放的指令集架构,人们在大学里构建它,他们没有时间或兴趣添加太多垃圾,就像某些架构那样。所以相对而言,仅仅因为它的血统和年龄,它处于复杂性生命周期的早期。这是一个非常好的指令集,他们做得很好。因此,如果我只是想说我今天是否想要真正快速地构建一台计算机,并且我希望它运行得更快,那么 RISC-V 是最容易选择的。这是最简单的一个,它拥有所有正确的功能,它拥有您实际需要优化的正确的前八条指令,而且它没有太多的垃圾。

IC:所以现代指令集有太多的膨胀,尤其是旧指令集?

JK:已经迭代和添加的指令有太多的膨胀。这就是经常发生的事情。当您不断添加东西时,工程师会遇到困难。你可以拥有这个非常好的设计,有 10 个功能,所以你可以给它添加一些功能。这些功能都让它变得更好,但也让它变得更加复杂。随着您的进行,添加的每个新功能都变得更难实现,因为该功能以及其他所有内容的交互都变得很糟糕。

营销人员和老客户会说“不要删除任何东西”,但与此同时,他们都在玩新的新鲜事物,它的作用只有旧事物的 70%,但它做得更好因为它没有所有这些问题。我已经谈到收益递减曲线,收益递减的原因有很多,但其中之一是事物相互作用的复杂性。它们会减慢你的速度,让更简单的东西做得更少实际上会更快。这已经发生了很多次,这是复杂性理论的结果,你知道,我认为是人类的邪恶。

IC:所以你有没有见过 x86 被破坏而某些东西被重新发明的情况?或者它只是保留某种遗产,然后像 RISC-V 这样的新事物会在需要时出现以填补空白?

JK:x86-64 是一个相当干净的东西,但显然它必须承载所有这些旧包袱。他们弃用了许多旧的 16 位模式。有一大堆垃圾消失了,有时如果你小心点,你可以说“我需要支持这个遗产,但它不一定是高性能的,我可以将它与其他东西隔离开来”。你要么效仿它,要么支持它。

我们过去构建的计算机具有前端、获取、调度、执行、加载存储和 L2 缓存。如果您查看它们之间的边界,您会看到 100 条线在做随机的事情,这些事情完全取决于它是什么周期或时钟的哪个相位。现在这些接口看起来不像指令边界——如果我从这里向那里发送指令,现在我就有了一个协议。所以里面的电脑看起来不像是一堆乱七八糟的东西连接在一起,它看起来就像八台电脑连接在一起做不同的事情。有一个获取计算机和一个调度计算机,一个执行计算机和一个浮点计算机。如果您正确地执行此操作,则可以更改浮点数而无需触及任何其他内容。

这与其说是指令集的问题,不如说是“构建它时你的设计原则是什么”,以及你是如何做到的。问题是,如果您遇到问题,您可以说“如果我可以在这两个盒子之间使用这五根电线,我就可以解决这个问题”。但是每次这样做,每次违反抽象层时,都为未来的吉姆制造了一个问题。我已经这样做了很多次,而且如果你正确地解决它,它仍然是干净的,但是在某些时候如果你稍微破解它,那么随着时间的推移它会杀死你。

关于摩尔定律的思考


IC:您在舞台上和过去的采访中都说过,您并不担心摩尔定律。在工艺节点方面,您不必担心半导体的发展,它最终会由某个地方的某个人解决。你会说你对摩尔定律的态度是冷漠的吗?

JK:我非常主动。这根本不是冷漠。就像,我知道很多关于它的细节。人们混淆了一些事情,比如英特尔的 10 纳米滑落。人们都说摩尔定律已经死了,但台积电的路线图一点也不滑。

部分原因是台积电的路线图与 EUV 机器的可用性保持一致。所以当他们从 16nm 到 10nm 再到 7nm 时,他们做了一些台积电非常擅长的事情——做这半步。所以他们做了没有 EUV 的 7nm,有 EUV 的 7nm,然后没有 EUV 的 5nm,和有 EUV 的 5+nm,他们调整了一些东西。然后使用 EUV 机器,有一段时间人们不确定他们是否会工作。但现在 ASML 的市值是英特尔的两倍(实际上是现在,6 月21日)。

然后还有一件有趣的事情——我意识到在创新的地点,我们倾向于将台积电、三星和英特尔视为工艺领导者。但其实领导者实际上是像 ASML 这样的设备制造商和材料方面。如果你看看谁在制造创新的东西,以及 EUV 的全球销售额,这个数字就像台积电到 2023 年将购买 150 台 EUV 机器或类似的东西。这些数字是惊人的,因为即使在几年前,也没有多少人确定 EUV 会起作用。但是现在出现了 X涉嫌光刻机,再说一次,你可以说这是不可能的,但该死的一切都是不可能的!细则,这就是理查德·费曼所说的——他有点聪明。他说“底部有很多空间”,我个人可以数数,如果你看看晶体管中有多少原子,就会发现很多。如果你看看你实际上需要多少个晶体管来形成一个结,没有太多量子效应,只有 10 个。所以那里有空间。

还有一件有趣的事情——当每个人都相信技术正在以这种速度发展并且整个世界都朝着它发展时,就有了一个信念系统。但技术不是一回事。有些人会弄清楚如何制造晶体管,就像英特尔、台积电或三星等工艺设计师所做的那样。他们使用可以制作特征的设备,但随后这些特征实际上会相互作用,然后在诸如应该如何沉积和蚀刻、应该多高、多宽、在什么空间之间进行非常有趣的权衡。他们是使用工具的工匠,所以工具必须超级锋利,工匠必须超级博学。这是一场复杂的比赛。有很多互动,在某种程度上,因为机器本身很复杂,你有一个复杂的组合,机器制造商正在做不同的部分,但他们并不总是完美协调,或者他们通过设计流程的机器集成人员进行协调,这很复杂。它可以减慢速度。但这不是由于物理基础 - 我们在物理基础方面取得了良好进展。

IC:在你的大规模机器学习演讲中,你在 Comic Sans 中的演讲中,你有打印的 X 幻灯片。关于它,你说随着时间的推移你打印 X 的方式,由于物理定律,在 EUV 中还有几个步骤要走。此外,High  NA EUV 将在几年内推出,但现在您提到了 X 射线。时间表是什么?它甚至不在我的知识范围内。

JK:通常,当一项技术出现时,他们会将其用于一件事。首先,当 EUV 首次用于 DRAM 时,它实际上是一步,也许是两步。所以我试图记住——也许是 2023/2024 年?不是那么远。这意味着它们已经启动并运行,并且人们正在使用它。那么奇怪的是,当他们从光学光到 EUV 时,波长大约减少了 10 倍?所以他们虽然他们有疯狂的多图案和 interference 类型的东西,你看到那些 DUV 的照片,但当谈到 EUV 时,他们可以直接打印。但实际上[随着你变小]他们可以在 EUV 上使用相同的技巧。所以 EUV 将要进行多图案化,我认为在 3nm 中。然后你可以用它做很多技巧。

所以是的,物理学真的很有趣。然后还有物理学,光学的东西,然后是材料的纯度,这是非常重要的,然后是温度控制,所以东西不会移动太多。随处可见有趣的物理问题,因此有很多事情要做。有成千上万的人在研究它,并且有足够的创新带宽。

谈如何组件合适的团队


IC:所以转向我们曾经遇到的一个流行问题。当你从一家公司走到另一家公司时,我们注意到你所做的一件事是建立团队的话题。由于团队是由其他人建立的,我们已经看到有些人将工程师从他们在以前公司建立的团队带到下一家公司。你有没有对你如何建立你的团队有任何见解?您在这方面工作的公司是否有任何不同的方法?

JK:你首先要意识到的是,你是在组建团队,还是在寻找一个团队。所以威尼斯有一个很棒的博物馆,大卫博物馆,博物馆的前面,有这些巨大的大理石块。20 乘 20 乘 20。他们如何移动它们,我不知道。那块大理石坐在那里,米开朗基罗可以在里面看到这座美丽的雕塑。它已经在那里了,对吧?问题是去除多余的大理石。

因此,如果您进入拥有 1000 名员工的公司,我向您保证,那里有一支优秀的团队。您不必雇用任何人。当我在 AMD 时,我几乎没有雇用任何人。我们调动了人员,我们部署人员到[其他地方],但那里有很多优秀的人。当我去特斯拉时,我们不得不从头开始组建团队,因为特斯拉没有人在制造芯片。我雇佣了我认识的人,但后来我们雇佣了一群我在某个时候不认识的人,这是其中一件有趣的事情。

我见过领导者从一家公司转到另一家公司,他们带来了 20 名员工,然后他们开始尝试复制他们以前拥有的东西。这是一个坏主意,因为尽管 20 人足以重现[你拥有的],但它疏远了你想要的[在那个新团队中]。当你组建一个新团队时,理想情况下,你会得到你真正喜欢的人,要么你刚认识他们,要么和他们一起工作,但你希望在方法和思维上有所不同,因为每个人都进入了局部最低限度。因此,新团队有机会共同创造新事物。部分原因是因为如果你有十个非常棒的团队都工作得很好,然后你组建了一个新团队,每个团队都有一个人:那可能会更好,因为他们会重新选择哪些是最好的想法.

但是每个团队都有优点和缺点,所以你必须考虑你是在组建团队还是在寻找一个团队,然后你试图创造什么样的动态,为人们提供新想法的空间。或者,如果有些人坚持一个想法,然后他们与新人合作,他们会开始做这件不可思议的事情,你认为他们很棒,即使他们过去并不那么棒,那发生了什么?好吧,他们带着一些不太好的想法,然后他们遇到了挑战他们或环境强迫他们的人,突然之间他们做得很好。我已经看到这种情况发生了很多次。

Digital (DEC) 的 Ken Olson 说没有不好的员工,只有不好的员工工作匹配。年轻的时候,我觉得那是愚蠢的。但随着我与更多人一起工作,我看到这种情况发生了太多次,我甚至解雇了后来真正成功的人。都是因为他们没有做好工作,他们在情感上陷入困境,他们觉得自己致力于一些不起作用的事情。将他们转移到不同地方的行为使他们解放了出来。[不用说]我没有得到感谢。(笑)

IC:那么其中有多少也归结为公司文化?我的意思是,当你在为合适的职位寻找合适的人选时,或者你是否正在招聘新职位时,你是否试图得到一些与公司宗旨背道而驰的东西?还是随公司走?你在这里有什么策略还是只是在寻找有天赋的人?

JK:如果你正在尝试做一些真正具有创新性的事情,那可能主要是与[the grain]背道而驰。如果你的项目进展得非常好,那么引入煽动者会让每个人都慢下来,因为你已经做得很好了。您必须阅读环境中的组。然后有些人非常优秀,他们在这个项目上非常灵活,他们适应并且只是推动,但是在下一个项目中,你可以看到他们一直在建立他们的网络和团队,等等下一个项目,他们准备做一个支点,每个人都愿意工作。信任是一件很有趣的事情,对吧?你知道,如果有人走上前说跳下这座桥但你会没事的,你可能会说胡说八道——但如果你已经和他们一起经历了一大堆事情,他们说'看,相信我,然后跳下去——你会没事的;它会很糟糕,但它会没事的',你会做到的,对吧?相互信任的团队比那些必须处理合同、谈判和政治事务的团队更有效。

所以这可能是一件事——如果你正在建立或寻找一个团队,并且你开始看到人们参与政治,这意味着为了自己的利益操纵环境,他们必须离开。除非你是老板!然后你必须看看他们是否交付。有些人非常政治化,但他们真的认为他们的政治力量来自于传递。但是在一个政治组织中随意的人只会造成很大的压力。

IC:您是否建议职业生涯早期或中期的工程师应该定期从一个项目跳到另一个项目,以免陷入困境?听起来这是很常见的事情。

JK:当你在做新的事情,并为比你更了解的人工作时,你学得最快。因此,如果您的职业生涯相对较早,并且没有学到很多东西,或者您知道,您为之工作的人没有激励您,那么是的,您可能应该改变。在某些职业中,我看到人们因为获得经验而跳了三圈,但最终却一无所获。他们会更好地呆在原地,真正深入了解某事。所以你知道,创造性的紧张——这两个想法之间存在着创造性的紧张。

最后,编者强调一下,整个文章很长,有很多不错的信息,大家可以点击阅读原文查看。
*免责声明:以上内容仅供交和流学习之用。如有任何疑问或异议,请留言与我们联系。
6728 0

你的回应
黎媛

黎媛 未通过实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板