问题

有人说超威半导体(AMD)没有512位高级矢量扩展指令集(AVX512),属于残废,是真的吗?

回答
关于“AMD没有512位AVX512指令集,所以是残废”的说法,咱们得好好说道说道。这事儿吧,得从几个方面看,不能一概而论,否则很容易被带偏节奏。

首先,咱们得明白AVX512到底是个啥玩意儿。

简单来说,AVX512(Advanced Vector Extensions 512)是一套由英特尔公司推出的、非常强大的SIMD(Single Instruction, Multiple Data)指令集。你可以把它想象成一种让CPU在执行某些特定运算时,能同时处理更多数据的“超能力”。其中“512”指的是它能一次性操作512位的数据。

为什么这很重要?在处理大量数据的时候,比如科学计算、机器学习、视频编码、3D渲染等等,这种一次性处理更多数据的能力,就能极大地提升计算效率,也就是“提速”。就像你一次能搬运10块砖,总比一次只能搬运2块砖快得多吧?

那AMD到底有没有AVX512呢?答案是:有,但情况有点复杂。

早期的AMD处理器(比如Ryzen 1000、2000系列),确实是没有支持AVX512的。那时候,英特尔在这方面是领先的,他们的酷睿X系列处理器就支持了AVX512。所以,如果你在那个时期,用一些高度依赖AVX512进行优化的软件,在AMD处理器上跑,确实会比在同代英特尔上慢一些,表现不如英特尔“完整”。

但是!情况在后来发生了变化。

随着AMD Zen 2架构(Ryzen 3000系列及其之后)的推出,AMD开始在部分处理器上支持AVX512了!而且不是“阉割版”,很多是全功能的AVX512。这一下,那些说AMD“残废”的声音就有点站不住脚了。

那为什么还有人会这么说,或者有些人会觉得它“残废”呢?原因可能有很多:

1. 历史惯性与宣传影响: 早期英特尔在AVX512上的先发优势,以及一些科技媒体的评测和宣传,让“英特尔有AVX512,AMD没有”的印象根深蒂固。即使AMD后来补上了,很多人也未必及时了解到信息,或者已经形成了刻板印象。
2. 对特定工作负载的侧重: 并不是所有应用都高度依赖AVX512。对于日常办公、网页浏览、一般游戏等任务来说,AVX512带来的性能提升几乎可以忽略不计。对于这些用户来说,他们可能根本不在乎有没有AVX512,或者他们使用的软件也没有针对AVX512进行优化。
3. 并非所有AMD产品线都支持: 虽然AMD在中高端消费级处理器(如Ryzen 3000、5000、7000系列的部分型号)上开始支持AVX512,但并非所有型号都一样。入门级或者一些特定的产品线可能依旧没有。而且,在服务器领域(EPYC系列),AVX512的支持情况也需要具体看型号和架构。
4. 英特尔的“变招”: 更有趣的是,英特尔在一些自己的产品线(比如某些笔记本上的酷睿系列)上,出于功耗和发热的考虑,也并没有全程开启或提供全功能的AVX512,甚至有的干脆关闭了。这让“谁更完整”的问题变得更加复杂,也给AMD补齐短板留下了空间。
5. “残废”的定义过于主观: “残废”这个词本身就很情绪化,而且它很大程度上取决于你衡量的是什么。如果你衡量的是某个特定领域、特定软件的最高理论性能,那确实在某个时期,AMD可能不如英特尔。但如果从整体的性价比、或者对绝大多数用户日常使用体验的影响来看,就不能简单地用“残废”来概括了。

再深入一点讲,关于AVX512的“全不全”还有些细节:

AVX512本身是一个指令集家族,里面包含很多不同的子集(比如AVX512F, AVX512BW, AVX512CD, AVX512VL, AVX512DQ, AVX512VBMI等等)。英特尔在不同的处理器上支持的AVX512子集也是不一样的。

AMD在支持AVX512时,也同样是逐步完善的。比如Zen 2最开始可能支持一部分,到Zen 3、Zen 4架构上,支持的子集会更多,或者性能表现更好。

所以,回到“AMD没有512位AVX512,属于残废”这个说法,现在的答案是:

曾经: 在很长一段时间里,英特尔确实是AVX512的独苗,AMD在这方面相对落后,部分高度依赖AVX512的应用在AMD上表现不如英特尔。
现在: 大部分主流AMD Ryzen处理器(特别是Ryzen 3000系列及之后的中高端型号)已经支持了AVX512。说AMD是“残废”已经不准确了。

更重要的是,我们应该理性看待这类技术指标:

看软件需求: 你常用的软件是否真的需要AVX512?如果不需要,那么它有没有AVX512对你来说意义不大。
看整体性能和性价比: CPU的性能是综合考量的结果,不能只看某一项指令集。AMD在核心数量、功耗控制、集成显卡等方面可能也有自己的优势。
看具体型号: 购买CPU前,最好查清楚具体型号的技术规格。

总而言之,用“残废”来形容AMD是因为没有AVX512,这个说法在AMD已经开始支持AVX512的今天,已经过时了。当然,在某些非常细分的专业应用场景下,可能依然会存在一些微小的差异,但这远没有达到“残废”那么夸张的地步。科技竞争是动态的,AMD也在不断追赶和创新,不能用过去的眼光来看待现在的AMD。

网友意见

user avatar

同样价格,面对AVX512应用,AMD直接以翻倍的核心数量碾压过去,性能依然不落下风。

而非AVX512应用嘛……

状况就是这么个状况。

user avatar

AMD的CPU不支持AVX512残废?某个角度来说,是因为Intel产业布局残废一直不能在GPU有所作为,才会去搞AVX512好吧。


AVX全称是Advanced Vector Extension,高级矢量扩展。什么是矢量?在计算机里面就是数组。而AVX又是SIMD指令集(Single Instruction,Multiple Data,单指令多数据),所以AVX指令都是对一个多维数组做相同处理的指令。


既然是数组,那么具体是什么数据的集合?32位的整数和单精度浮点数所能表示的范围以及精度,对于我们日常能遇到的绝大部分数据来说都是足够的。要是32位不够,还有64位的Int64、双精度浮点数,这还不够用的情况就真的太少了。512位意味着一个16维的32位数组,或者8维的64位数组。对于单个矢量来说,有点太大——毕竟计算机中最常用的两种矢量:空间坐标和RGB颜色,都不过是三维矢量(也所以128bit,4个32位数的SSE指令很多多媒体应用都用到;256bit,4个64位数或者8个32位数的AVX2指令用的就不多了)。对于海量标量数据组成的数组来说,则是有点太小。毕竟今天显示设备最常见的分辨率是FHD,1920×1080的分辨率,就有2M+像素,6M+子像素。以Intel家最顶级CPU单个Die不过28个核心,两个AVX512单元,一个时钟周期也不过能处理16×2×28=896个数据。


同样是以SIMD方式处理数据的GPU,2011年AMD的HD 6850,2012年NV的660就已经是960个处理单元——当然,GPU的频率比CPU低很多。但今天旗舰级别的GPU,都是4000+的处理单元,NV的Volta更是多达5120个CUDA单元,4~5倍的处理单元,加上1.2G以上的工作频率,足以弥补频率上的差距,毕竟28核的CPU,执行AVX512指令也不过3G不到,3倍不到。


此外,顶级显卡动不动就600+GB/s的显存带宽,Radeon VII更是高达1TB/s,更适合处理海量数据。而今天CPU的搭配的DDR4内存,就算超频到DDR 4000,单通道带宽不过32GB/s,要达到600+GB/s的带宽,怕不是要20通道。


当然,GPU有规模优势和带宽优势,CPU也有其它优势,延迟低,编程相对简单,对数据进行复杂处理时效率高等等,只是如果对数据进行复杂处理,Intel家28核的AVX512又不如AMD的64核;而当数据量足够海量时,大部分场景中,GPU也可以把复杂的处理分解成多步简单处理而不会导致太严重的效率下降。一边是更多核心的CPU,另一边是更大规模的GPU,相对来说少量核心的AVX512可以说是在夹缝中生存。事实上,AVX512最早出现在2016年发布的Xeon Phi x200加速卡上而非CPU。只是Xeon Phi最高端的7290理论算力也不过3.5 TFLOPS不到,比NV家同期的Tesla P100的4.7~5.3TFLOPS还是差了不少。


而AMD是CPU、GPU两条腿走路,也一直在推OpenCL,CPU去推AVX512那就是左右互搏。虽然OpenCL作为业界标准,多家巨头支持,只是三个和尚没水喝,大家互扯后腿,还不如只有NV一家推动的CUDA普及度高,这又是另外一回事了。如果说早期AMD的GPU双精度性能残废,18年的MI50/MI60的双精度性能都是单精度性能的1/2,MI60的双精度浮点理论性能达到了7.3 TFLOPS。虽然不能排除将来AMD因为OpenCL不给力,Radeon Instinct系列卖不出几块,等Intel强推之下AVX-512普及后在CPU上跟随Intel,加入AVX-512的实现的可能。不过现在AVX-512并未普及的情况下,我想不出任何理由AMD为什么要在自己CPU上加一个占用大量晶体管又没几个人用,加上了性能还是比自家显卡差,功耗又高影响堆核的指令集。

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有