在各种芯片都在追求能耗比的今天,AVX512这样的SIMD指令集扩展的确是提升能耗比最有效的手段之一。
传统的CPU指令,虽然我们其实只关注计算计算结果,但为了高频率高性能,单条指令进行的各种预处理环节太多,多级缓存、分支预测、抓取、解码、分发、乱序、发射,才到我们需要的执行,之后还有退出。而且大部分计算指令还要搭配数据加载、写入指令。打个比方,就是为了拧一颗螺丝,建了个工厂:运输车队、仓库、装卸设备、流水线、机械手啥的都配全了。
当然,这不是说浪费,如果要拧一亿颗螺丝,在这个工厂里面可以飞快完成。但相比找个工人拿把螺丝刀来拧,很显然消耗太大了。同样的,在CPU里面,执行一条指令,真正的执行过程消耗的功率可能只有整个流程的二十分之一左右,如果算上缓存、总线之类模块的功耗,还要再低一半。
所以让一条指令完成更多的工作,是有效提高能效比的方法。例如浮点运算如果用整数指令实现,可能需要几十条指令组合起来,而一条浮点运算指令实现,即使执行过程功耗没有降低,也省掉了几十条指令在其它环节的开销,就好比工厂里面把切割、开孔、攻丝、拧螺丝合并成一个步骤。另一个方法是单指令多数据,一条指令执行多组数据的相同计算,假设一条指令执行4组数据的运算,就能节省三条指令在其它环节的开销。好比工厂里面从每次拧一颗螺丝改成一次把要拧的几个螺丝都拧上。两种方式组合起来,例如可以一条指令计算八组浮点数据的AVX指令,可以让CPU的执行单元功耗开销占整体功耗的四分之三左右,即使加上缓存、总线开销也能接近二分之一,能耗比大幅提升。
如果说真实世界中本来就有很多三四维的数据,例如空间坐标、计算机常用的RGB颜色都是三维数据,再加一个变量就是四维数据(例如空间坐标加上时间、速度、力等,RGB加上一个透明),可以计算四维32位数据的128位SSE、计算四维64位的256位数据的AVX/AVX2这样的SIMD指令还算方便好用。那么可以计算八维64位数据的AVX512基本上只能用于计算抽象的数学模型,这往往只有处理海量数据的高性能计算应用能用上。用CPU这么复杂的指令处理流程去进行海量数据的密集计算,还是太浪费了,流水线短而且简单的GPU就高效的多,如果不考虑通用性使用专用的计算电路可以更加高效。
反过来,SIMD指令对于传统的运算又毫无帮助,反倒占用了大量的晶体管资源,导致CPU单个核心功耗高,芯片面积大,CPU厂家无法用可接受的成本实现更宽的架构进一步提升单线程性能,或者容纳下更多核心去提升多线程性能。所以,我们看到了Intel这些年的CPU,单核心IPC落后于苹果的A系列/M1,服务器端的核心数量比不上ARM甚至同为x86的AMD导致多线程性能也不行,论计算能力又比不上NV的GPU。虽然说10nm难产是一个重要原因,但如果继续原来的思路,就算工艺继续领先其它厂商一代,同面积产品晶体管数量增加一倍,只要功耗水平一致估计还是难以保持性能上的领先。
事实上,海量数据计算本身意味着可以分组计算,可以提前安排好指令和数据的流程,无需使用现代CPU因为大量应用难以甚至无法为多线程优化无法利用多核心提供的多线程性能,又为了追求单指令执行时间最短而采用的灵活却又极其复杂的体系。海量数据的计算完全可以根据具体需要,采用多种方式,在特定功耗限制下提升性能:
所以,就我个人的看法,Intel其实并没有必要在AVX512上一条路走到黑,毕竟对于常见的32/64位数据来说,512位意味着8维甚至16维数组才能充分发挥性能,大部分应用需要重新组织数据结构——那还不如直接改成用GPU计算了。而且现在看来,Intel似乎是撞了南墙打算回头了,起码是几条退路都铺好了。
Linus赢了(x
avx512普通用户场景意义不大,一般很少用到高维向量能填满512bit还要用cpu处理的,绝大部分此类面向普通用户的需求要么维数没那么多avx2足够了,要么就直接上gpu了,avx512卡在那里的确很尴尬。
之前linux之父Linus就发文批过Intel的avx512没啥用还额外耗能。
最终让Intel决定取消面向消费者的avx512支持还是因为这次的12代酷睿采用的大小核设计。之前我们也说过avx512带来了额外耗电,而12代酷睿的E核并不支持avx512。虽然P核支持(P核为什么要支持啊,很迷。我猜想是P核继承了前代设计难以轻易阉割,以及,低端Xeon系列可能仍然和酷睿共享设计,至少是大核的设计),但是要让调度器在不同的核支持的指令集不一样的情况下调度不出错很困难,所以直接放弃avx512是很合理的选择。
以后avx512应该会变成至强专属,至少也是hedt平台专属吧。
对于普通消费者来说,虽然是阉割,但是是好事。
这种专用计算走 GPU 的趋势根本挡不住了。以后这类高性能计算都得走 GPU。
CPU 一条道走到黑不现实,所以去掉了是好事。
要想跟 NV 的计算竞争,除了做显卡别无他法。以前搞这个可能是觉得直接在 CPU 端修修补补还有救,现在明白了,非得做显卡不可。既然已经下决心做显卡了,CPU再放这种功能就毫无意义了,毕竟,目前的 AVX 512 除了让 intel 的 CPU 烤鸡测试功耗增加以外还真没多少好处。
要想参与高性能计算,做显卡是必由之路,这是真的。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有