机器之心报道

参与:泽南

「去死吧,AVX 512 指令集。」Linux 提出者林纳斯 · 托瓦兹(Linus Torvalds)说道。

Linux 首席架构师,当今全球最著名程序员之一 Linus Torvalds 最近在邮件列表中的言论再次引起一片哗然。

在上周被披露的邮件列表中,有关英特尔将为下一代 CPU 架构 Alder Lake(和 Sapphire Rapids)启用的编译器指令引发了讨论,Linus Torvalds 参与其中。

英特尔的下一代处理器架构 Alder Lake x86 平台或将于 2021 年与人们见面,与突出性能的 AMD 相比,英特尔希望通过和目前手机芯片理念类似的「大小核设计」带来能效上的大幅改进。文档披露了三种 CPU 设计,其中最高的是 125W 的 8 + 8 + 1 配置(8 大核 + 8 低功耗核心 + 核显),其次是 80W 的 8 + 8 + 1 配置,此外有一个 80W 的无小核配置(6 + 0 + 1)。

此前有消息说 Alder Lake 将不支持 AVX512 指令集,只有 AVX2 和其他版本,这可能是因为英特尔在新设计中需要考虑小核的承载能力。不过最近英特尔的内部文件显示,AVX512 等指令将仅限在大核中运行。

图片来自知乎 @JZWSVIC。

有关 AVX512 指令集,Linus 发表了这样的一段言论:

我希望 AVX512 去死,然后英特尔就可以开始去解决实际问题了——而不是试图去创造神奇的指令,然后围绕它寻找基准测试结果让它看起来很好。

我希望英特尔能够回归本源:让他们的进程再次发挥作用,更专注于常规代码,而不是 HPC(高性能计算)或其他意义不大的特例。

在那个时候,除了基准测试,几乎没有人会关心这个问题。

但同样的事发生在 AVX512 上就变得不同了。是的,你可以在这里找到有用的东西,但它们并不符合厂商绘制的宏伟蓝图。

AVX512 有很明显的缺点。我宁愿看到那些晶体管被用于其他更相关的事情。即使同样是用于进行浮点数学运算(通过 GPU 来做,而不是通过 AVX512 在 CPU 上),或者直接给我更多的核心(有着更多单线程性能,而且没有 AVX512 这样的垃圾),就像 AMD 所做的一样。

我希望通过常规的整数代码来达到自己能力的极限,而不是通过 AVX512 这样的功率病毒来达到最高频率(因为人们最终还是会拿它来做 memory-to-memory copy),还占据了核心的很大面积。

没错,我当然有偏见。我非常讨厌浮点数基准测试,而且我意识到现在人们都非常关心这个数据。我只是认为 AVX512 是一个彻头彻尾的错误。这东西让我如鲠在喉。这是英特尔方向搞错的一个很好的例子,可能只会让市场碎片化。

停止这种只适用于特例的垃圾,让所有核心都能实现人们最关心任务的最大性能,然后制造一个足够好的「浮点数核心」来解决特殊问题才是最好的。(在 CPU 上)AVX2 已经足够了。

是的,我就是这么暴躁。

——Linus

Linus 为什么突然对 AVX512 一顿吐槽?一切还得从指令集的作用开始说起。

在计算机中,程序需要编译成指令才能让 CPU 识别并执行运算,指令集是指 CPU 能执行的所有指令的集合,每个指令对应一种操作。指令执行能力是衡量 CPU 性能的重要指标,指令集也与 CPU 效率有密切关系。每种 CPU 都需要一个基本指令集,如英特尔和 AMD 的绝大部分处理器都使用 X86 指令集。

为了提高 CPU 在某些方面的性能,我们必须增加一些特殊的指令满足需求,这些新增的指令就构成了扩展指令集。2008 年,英特尔在 Sandy Bridge 酷睿 CPU 架构推出的同时发布了 AVX 指令集(Advanced Vector Extension,高级矢量扩展指令集),聚焦矢量运算,AVX 很快形成了一套完整的单指令多数据指令集规范,一些版本也得到了 AMD 的支持。

2013 年,英特尔发布了 AVX-512 指令集,其指令宽度扩展为 512bit,每个时钟周期内可打包 32 次双精度或 64 次单精度浮点运算,因此在图像 / 音视频处理、数据分析、科学计算、数据加密和压缩和深度学习等应用场景中,会带来更强大的性能表现,理论上浮点性能翻倍,整数计算则增加约 33% 的性能。

AVX 所代表的单指令多数据(Single Instruction Multi Data,SIMD)指令集,是近年来 CPU 提升 IPC(每时钟周期指令数)上为数不多的重要革新。随着每次数据宽度的提升,CPU 的性能都会大幅提升,但同时晶体管数量和能耗也会有相应的提升。因此在对功耗有较高要求的场景,如笔记本电脑或服务器中,CPU 运行 AVX 应用时需要降低频率从而降低功耗。

随着人工智能应用的兴起,新的 AVX512 指令对于加速 AI 模型的推断显得非常有效,但即使是对于 AI 的推断过程来说,使用 GPU 效率还是比 CPU 高的,不过 GPU 的成本也很高。所以,在技术的发展过程中,消费者和英特尔这样的处理器生产厂商同样面临着道路的选择:是发展 CPU 的 AI 计算能力,还是寻求其他专用芯片,让 CPU 做它「该做」的事?

我们知道,程序员大神 Linus 一生喷人无数,C++、Java、英伟达都没少被他指责过。不过这次,Linus Torvalds 的言论得到了不少人的支持。

「其实这次,Linus 说得对,Intel 当然也知道他说得对,但明知他说得对,(暂时)只能硬着头皮搞下去。」在知乎上,@Pansz 这样评价道。

不仅是说说就算了,Linus 还有自己的实践。早在今年 5 月,Linus 就在一次公开活动中表示自己已改变了十五年来的习惯,转投 AMD 了,他把自己的个人电脑换成了目前的最高配置,32 核心的 Threadripper 3970x。在一些第三方测试中,这款采用 7 纳米制程的 CPU 性能超过了英特尔本世代旗舰产品 Core i9 10980XE。

AMD Zen2 架构的「线程撕裂者」CPU,代表了 AMD 目前消费级处理器的最高水平。

Linus 表示自己用 AMD 芯片替换了原来的英特尔 Core i9 9900K,不得不说这个换装速度有点勤快。「我通常会 DIY 自己的机器,继续用上一台配置的固态硬盘等组件,不过这一次(因为要换主板)我使用了全新的配置,」Linus 说道。

不知几年之后,是 AMD 宣布支持 AVX512,还是英特尔放弃这套指令集?

参考内容:

https://www.phoronix.com/scan.php?page=news_item&px=Linus-Torvalds-On-AVX-512

https://www.zhihu.com/question/406517759

英特尔全部cpu列表_程序员大神Linus转投AMD:我希望英特尔的AVX 512指令集「去死」...相关推荐

  1. unix入门经典_程序员大神们的经典编程语录

    作为程序员的你,下面这些程序员经典语录请您认真来读一读,也许此时此刻会有不一样的心得体会与收获. "大多数优秀的程序员从事编程工作,不是因为期望获得报酬或得到公众的称赞,而是因为编程是件有趣 ...

  2. C语言/C++程序员大神打造纯C的电子时钟(加图形库+源码)

    C语言/C++程序员大神打造纯C的电子时钟,每天看时间再也不麻烦了 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进 ...

  3. linux儿童桌面,Linux桌面被小孩随意攻破,程序员大神与官方人员展开battle

    转载来自51cto:https://blog.51cto.com/u_15127629/2766412 喜欢就关注我们吧! Linux Mint 项目已于近日修复了一个安全漏洞,该漏洞可能允许威胁参与 ...

  4. 做程序员可以绕过linux,Linux 桌面被小孩随意攻破,程序员大神与官方人员展开 battle...

    漏洞最初由一位昵称为 robo2bobo 的用户在 Linux Mint 的 bug 报告 中提出.robo2bobo 用的桌面系统是 Cinnamon,他表示,自己两个没有任何技术背景的孩子在键盘和 ...

  5. 程序员大神常用软件:mybase,使用教程要点分享,管理必备

    上节我们说到mybase是一个强大的个人知识库管理工具,它使用树形大纲的方式对文档进行管理,你可以往这个大纲里面填写任何的内容,并以你喜欢的任何方式进行组织和管理这些笔记.它具有相当的灵活性,可以用来 ...

  6. 多个容器一起打包_程序员修神之路容器技术为什么会这么流行(记得去抽奖)

    菜菜哥,你上次讲的kubernetes我研究了一下,你再给我讲讲docker呗 docker可很流行呀 kubernetes是容器编排技术,容器不就是指的docker吗? docker可不等于容器哦, ...

  7. 程序员大神博客遭攻击,炸出华为云前员工吐槽自家业务

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 据云有料报道,近日知名博主.IT 程序员阮一峰(微博名ruanyf)的博客被DDoS攻击事 ...

  8. 学到了!程序员大神用这招让开发效率直接提升 10 倍!!

    CSDN Chrome插件推出的这一个多月以来,我们陆续听到了很多用户的声音,有人给了我们很多的鼓励,还有人给了我们很好的建议.我们针对各位用户爸爸的使用反馈对插件进行了一次次的优化,现在我们的插件已 ...

  9. 用示波器恢复软盘里的游戏,这个程序员大神的操作太硬核了

    鱼羊 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 又到了考(bao)验(lu)阅(nian)历(ling)的时候了. 盆友,你可识得此物? 在80年代90年代,可是有不少宝贵的代码数据 ...

最新文章

  1. ios11修改微信步数_小程序同步微信步数
  2. 北京智源大会6月23日精彩预告!(附问题征集)
  3. A标签的href设置为#代表什么意思?
  4. java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean
  5. ios15使用纯代码计算cell的高度
  6. Linux学习之ARM开发板连接ubuntu18.04LTS及NFS相关配置
  7. 解决svn cannot set LC_CTYPE locale的问题
  8. (转)淘淘商城系列——SSM框架整合之Service层整合
  9. Python实现一条基于POS算法的区块链
  10. 在Rails资产管道中使用字体
  11. python selenium安装失败_python:学习selenium遇到的坑
  12. 模板类的声明和定义要放在同一个文件
  13. 【解决】微信播报,连接蓝牙后延迟播报
  14. 【工控】脉冲当量怎么算?
  15. 台式计算机常用的网卡类型,有几种常见的网卡接口类型
  16. 用CSS制造出光泽一闪而过的图片效果
  17. 35、T5L 迪文屏C51开发之音频播放
  18. dmg文件 linux,Linux通过命令行建立dmg文件的方法
  19. 微信小游戏制作学习笔记
  20. 【Unity】Obi插件系列(四)—— Distance Fields、Particle attachments、Particle rendering

热门文章

  1. Asp.net Mvc使用PagedList分页
  2. P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
  3. WPS长文档编辑技巧之二:对样式的设置与修改
  4. 推荐一个简洁优雅的博客系统,farbox
  5. Spring的线程安全
  6. ubuntu下配置php环境
  7. 49 - 算法 - 二叉树 - leetcode108.-将有序数组转换为二叉搜索树-中序遍历 - vector
  8. 希尔排序不稳定例子_Python实现希尔排序(已编程实现)
  9. Python使用正则表达式检查合法IP地址
  10. 微课|中学生可以这样学Python(3.1节):单分支选择结构