Linux的创始人Linus Torvalds今天对几款英特尔处理器上的高级矢量扩展512(AVX-512)指令集发表了一番高见。

本周Phoronix网站刊发了一篇文章,主题是英特尔为Alder Lake(和Sapphire Rapids)处理器启用的编译器指令。Linus Torvalds在邮件列表上该文引发的讨论中插话了。眼下GNU编译器集合(GCC)中启用的Alder Lake指令根本没有提及AVX- 512,只是提及AVX2及其他指令集,可能是由于英特尔看好这种新型混合设计中的大小CPU核心支持的子集。

由于没有看到适用于Alder Lake的AVX512,Torvalds发表了如下评论:

希望AVX512痛苦地死去,希望英特尔开始解决真正的问题,而不是试图创建神奇的指令,然后开发这些指令看起来不错的衡量基准。

希望英特尔回归基本面:让进程再次顺畅运行起来,更多地关注并非侧重HPC或其他毫无意义的特殊情况的常规代码。

我之前已说过,这里再说一遍:在x86的鼎盛时期,英特尔一骑绝尘、击败所有竞争对手时,绝对是别人在FP负载方面比英特尔做得更好。英特尔的FP性能太烂了(相对而言),它根本不重要。

因为除了衡量基准外,绝对没人会在乎。

无论是现在还是将来,AVX512的情况大致一样。是的,你可以找到重要的方面。不,那些方面从宏观来看对机器销量无助于事。

而且AVX512存在严重的缺点。我宁愿看到晶体管预算用于重要得多的其他方面。即使它仍然是FP运算(在GPU中,而不是在AVX512中),或者像AMD那样给我更多的核心(具有良好的单线程性能,但没有像AVX512这样的垃圾)。

我希望常规的整数代码方面遇到功率极限,而不是一些AVX512功耗程序遇到功率极限,这些功耗程序牺牲了高时钟频率(因为人们最终将它用于memcpy!),并牺牲了核心(因为那些无用的垃圾单元占用了空间)。

是的,是的,我有偏见。我绝对讨厌FP基准测试,我意识到其他人对此很在意。我只是认为AVX512是错误的做法。这是我经常抱怨的问题。这是英特尔做得很糟糕的一个典例,一方面是由于完全加剧了市场的碎片化。

停止使用针对特殊情况的垃圾,让大家都在乎的所有核心资源尽可能顺畅地运行。然后做一个够好的FPU,人们会很高兴。AVX2绰绰有余。

是的,我脾气很坏。

Linus

虽然Alder Lake可能没有AVX-512,但至强Sapphire Rapids仍有AVX-512,也没有迹象表明英特尔计划放弃英特尔至强系列上的AVX-512,只是使用DL-BOOST和其他扩展指令来加强。

而就在Linus发表这番言论几周前,他的主要开发系统改用了AMD Ryzen Threadripper。