Intel|苹果M1革了Intel x86的命?其实这是个伪命题( 四 )


芯片大神 Jim Keller:争论指令集是一件悲哀的事
为了让本文的观点更加具有说服力 , 我们可以看看这个行业中最受尊敬的人——吉姆·凯勒 (Jim Keller)最近在接受 AnandTech 采访时阐述的观点 。
吉姆·凯勒曾在苹果、AMD 和英特尔工作过 , 显然他的立场更加中立 。最近 , 吉姆·凯勒在 Tenstorrent 与 RISC-V 合作 。
总结一下他提出的观点:尽管他认为 x86 在维护向后兼容性的遗留膨胀增加了一些复杂性 , 但他实际上也给出了一些 ARM 架构中遗留膨胀的例子 。此外 , 这种复杂性主要体现在 CPU 的设计中 , 可能会给芯片开发人员带来一些麻烦 , 但不会严重影响最终的性能 。值得注意的是 , 实际上只有少数指令负责执行大部分代码 。
特别是 , 吉姆·凯勒毫不夸张地驳斥了去年年底一篇广为流传的媒体文章中反复提到的一个论点:与 ARM的固定长度指令相比 , x86 由于其可变长度指令而无法扩展到与 ARM 相同的性能 。
事实上 , 吉姆·凯勒指出这些细节只会给芯片开发商带来一些麻烦 , 但不会对最终用户的整体芯片性能或功耗产生实质性影响 。
最后 , 吉姆·凯勒还表示现在的 CPU 性能受到本文前面所描述的与指令集无关的问题(分支预测、缓存等功能)的限制 , 同时吉姆·凯勒还批评了英伟达使用其重新调整用途的 GPU 来处理 AI 的方法 。
以下是吉姆·凯勒采访节选:
在指令集上做争论是一件非常悲哀的事情 。它甚至不是几十个操作代码——80% 的核心执行只有 6 条指令——加载、存储、加法、减法、比较和分支 。这些几乎涵盖了所有 。如果你使用 Perl 或其他语言编写代码 , 则“调用”和“返回”可能比“比较”和“分支”更重要 。但是指令集的影响很小 , 你可能会因为丢失指令而损失 10% 或 20% 的性能 。
有一段时间我们认为 X86 可变长度指令真的很难解码 , 但我们一直在想办法解决 。我们基本上可以预测所有指令在表格中的位置 , 一旦有了好的预测器 , 就可以很好地预测这些内容 。
因此 , 如果是打造小型计算机 , 固定长度的指令似乎是不错的选择 , 但是如果是要打造一台真正的大型计算机 , 要预测或找出所有指令的位置 , 固定长度的指令就不占优势 , 所以这没有那么重要 。
苹果“过度炒作”M1
讨论到此为止 , 让我们回到苹果芯片本身 , 本文仍然没有完全解释 , 苹果是如何从“某种程度上落后于英特尔”到如今“或多或少地领先于英特尔”的(这里所谓的落后和领先 , 取决于如何比较) 。
上面引用的 AnandTech 图片和文章已经解释了苹果与英特尔之间的故事 , 与其说苹果超越了英特尔 , 倒不如说是英特尔停滞不前 , 而苹果则保持着一年一度的更新节奏稳步前进 。
英特尔为何停滞不前是一个悲伤的故事 , 至少对英特尔的粉丝和投资者而言如是 。
简而言之 , 英特尔在制造方面遇到了一些问题 , 10nm 延期了三年多 , 然后 7nm 又延期了一年 。正如 AMD 股东所知 , 英特尔的延期对其竞争对手非常有利 。然而 , 正如新上任的英特尔 CEO Pat Gelsinger 所阐释的那样 , 随着 EUV 的相对成熟 , 英特尔已经完全接受了 EUV , 并在未来几年重新走向工艺领先轨道 , 甚至更快地回到产品领先地位 。