AMD 在 2017 年引入了代号 Zen(禅)的 微架构以及基于这个 微架构的 Ryzen 桌面处理器,在 IPC 方面较该公司的上一代产品提升了 52%,打破了沉寂多时的处理器世界,而 AMD 在介绍 Zen 这个名字的缘由时曾经表示过这是为了强调新的微架构追求平衡的概念。
经历两代的演进后,AMD 在 Zen 3 实现了真正的性能逆转,将 Skylake 以及之后的 Rocket Lake 都斩落马下,风头是一时无两,不过它在Zen3 第一波桌面版发布的时候未能集成核显功能,从过往来看,这似乎不是什么大问题,因为 Zen 问世后,桌面版都是没有核显的,市场份额也在一路上升。
但是 Zen3 这次却因为缺少核显,在特殊的矿潮背景下,明明有半年的领先优势,却出现了桌面份额下滑的情况。矿潮特殊背景下,DIY 受到的冲击非常大,市场上根本买不到中高端显卡,面向中高端市场的 Zen3 桌面处理器显然受到了一定的冲击。
AMD 在2021 年下半年推出了基于 Zen3 的 APU Ryzen 5000G 系列,不过这时候它的对手已经是 Intel Alder Lake(12 代桌面酷睿),局面已经截然不同。根据摩根士丹利的分析师 Joseph Moore 的报告,AMD Ryzen PC 处理器的应收可能会出现大幅下滑,预测的幅度是和去年上半年相比同比下降 26%。
现在市场已经进入到了另一个特殊的节点,矿潮已经退去,美国政府则是对通胀进行强力干预,可以预见 PC 市场也会受到冲击,但是对用户来说,现在倒是一个不错的升级、购买 PC 的好时机。
而这次我们有了新的选择:来自 AMD 的 Zen4(禅四)和 Intel 的 Raptor Cove(速龙湾)。
Zen 4是 AMD 的第四代 Zen 系微架构。一般来说在同样工艺制程下,处理器厂商会开发出针对不同市场的若干款处理器芯片,它们可能是同一种微架构,也可能不一样,如果财力允许的话,一般都会是多个微架构。和 Intel 相比,AMD 的营收状况依然属于小弟,所以 AMD 选择了业界称之为 chiplet 的方式来满足桌面和服务器市场。
AMD 将计算 chiplet 称作 CCD,里面包含了 CPU 内核、L3 Cache 等单元,而集成了内存控制器和互连总线的周边 chiplet 分为面向普通消费者的 cIOD 和面向企业的 sIOD,sIOD 拥有更强大的输入输出能力,因此面积和成本远高于 cIOD。
下面的表格就是针对四种市场区间的 Zen4 微架构处理器划分:
我们这次的测试是其中面向桌面代号 Raphael 的 Ryzen 7000 系列:
上面表格中有一个细节是被隐藏的,那就是其中的两个 Ryzen 9 7000 采用了同构异频设计,例如 Ryzen 9 7950 处理器里,有 8 个内核的全核最高频率为 5.7 GHz,但是另外 8 个内核则是 5.38 GHz,见下图:
上图是 Ryzen 9 7950 关闭变频模式后(相当于锁定频率,这种工况主要用于需要稳定频率的底层测试)的状态图,此时处理器会一直在空跑 nop 指令,处理器相当于没有实际负载但是依然维持较高转速的发动机。
大家可以看到,其中的 0-7 编号内核频率为 5696 MHz,此时这 8 个内核耗电均为 3.75w 到 3.87 瓦。而编号 8 – 15 的内核为 5375 MHz,耗电均在 2.91 到 2.94 瓦。
两组的频率差距为 315 MHz 或者说低频核的 5.8%,而高频核的耗电则是低频核耗电的 1.3 倍。
这样设计的好处是什么呢?
首先,两组内核的微架构都是一样的,这意味着它们的 IPC 理论上没有本质的区别,两组内核的唯一区别就是频率和耗电。
其次,高频核和低频率的同构设计可以简化调度设计。众所周知,Intel 十二代处理器引入了 P-core + E-core 的设计,其中的 E-core 是来自低耗电产品线 Atom,Atom 是针对嵌入式低耗电设备的,性能远低于 P-core。在十二代酷睿发布的时候,只有 Windows 11 是提供了 Intel Thread Director 支持的,在当时其他操作系统例如 Linux 上,任务有可能会优先在 E-core 上运行,此时给这类用户的体验就非常糟糕。
而 Zen4 则没有这个问题,根据我的实测,不管是 Windows 11 还是 Linux Kernel 5.15,Zen4 都能将任务优先指派给高频内核,即使是指派给低频核,两者的实际性能也是差别不大。从桌面用户角度来看,Zen4 的高低频内核设计在大部分情况下都是最优解。
当然,从高低核之间的 30% 耗电来看,也可以看出 Zen4 为了这 6% 的频率所需要付出的代价。
从平台层面来看,Zen4 最大的改动是采用了名为 AM5 的全新插座,这个插座采用了 LGA 设计,引脚不再像 AM4 时代那样放在 CPU 上而是放到了插座上,好处是拆卸 CPU 散热器的时候不会再发生连根拔起的状况,缺点是对于现有的 AM4 主板来说是无法再提供 Zen4 支持了。
采用 AM5 后的另一个好处是实现了 DDR5 的支持,DDR5 内存频率要比 DDR4 快上不少,能够为大吞吐的应用(例如多核以及核显)提供更高的内存带宽,这次 AMD 在内存支持上相对比较激进,那就是只支持 DDR5 不再支持 DDR4,手头还有 DDR4 内存的玩家将无法在 AM5 主板上使用旧内存了。
DDR4-3600 2*16GB 内存模组价格走势:
DDR5-6000 2*16GB 内存模组价格走势:
DDR5 内存性能出色当然是好事,但是价格方面还是比较贵的,以 G.Skill 的幻锋戟 DDR5 6400 CL32 32 GB 套装为例,目前深水宝的价格 3499 元。
但是如果看亚马逊海外购的话,DDR5-6400 32GB 套装的价格可以低到 2300 的水平。
因此,虽然 DDR5 内存当下还比较高,但是随着 DDR5 平台的全面铺开以及模组厂推广重点转向 DDR5,DDR5 内存价格必然会降至大家能接受的程度。
虽然内存规格方面有较大的提升,但是无论是 CPU 还是 GPU,都会希望程序代码尽可能减少访存操作,究其原因是不管什么处理器,在访存的时候,都会发生出现处理器等待访存结果的情况。
这个情形有点类似于现实社会,例如你在家里吃饭的话,成本可能也就是 15 元,然后你到街边大排档可能是 30 元,但是当你到远一点的地方例如从广州到中山到吃顿同样的饭,花在路上的车费可能远高于你的饭钱——光是路费就达到数百元。
对于处理器来说,距离越远,耗电也越高。这个问题其实很早就引起业界重视,在 2015 年,NVIDIA 的首席科学家 Bill Dally 曾经在一个名为《Challenges for Future Computing Systems》的演讲中提到,DRAM 访存产生的片上耗电是 64-bit 双精度计算的 100倍。
那么 AMD Zen4 这次在访存的时候,片上的耗电情况如何呢?对于这个问题,我们可以使用内存带宽测试工具结合操作系统中提供的能源监控界面进行测量。
AMD Zen4:Ryzen 9 7950X、Ryzen 7700X
主板:ROG CROSSHAIR X670E HERO
内存:Teamgroup DDR5-6400 @ 6000MHz C40 16GB*2
AMD Zen3:Ryzen 7 5800X
主板:ROG STRIX X570-E GAMING
内存:TT Tough DDR4-3600 8GB * 4
Intel Alder Lake:Core i9 12900K
主板:Prime Z690-P
内存:Teamgroup DDR5-6400 @ 6400MHz C40 16GB*2
散热器:ProArtist GA5 / TT 钢影 TOUGHLIQUID 240(Core i7 11700K)
电源:Republic of Gamers Thor 850 / Toughpoewr PF1 850W(Core i7 11700K)
请注意,我们这里的内存频率,AMD DDR5 使用的是 6000MT/s,Intel 使用的是 6400MT/s,从耗电角度,6400MT/s 会略高一些,因为接口电压和控制器的频率都更高。
内存带宽测试工具来自 Clam Chowder 的 MemoryBandwidth,这是一个开源工具,有独立的耗电代号测试分支,但是这个分支我看到的时候只有 Intel 的 RAPL MSR 信息获取代码,缺乏 AMD 能源值获取的代码。
Intel 在多年前就提供了名为 RAPL 的电力监控界面,让操作系统或者程序透过读取某几个 MSR 的数值,经过简单换算后就能达到焦耳值,结合运行时间,就能得出 CPU 不同供电平面的功率数据。AMD 从 Zen 也开始跟进,将原来的 APM 电源监控方式更改为 RAPL,而且 AMD 的值是 64 位的,不需要像 Intel 32 位值那样在采样一段时间后需要绕回(warp around)计算。
为此,我对 MemoryBandwidth 源代码进行了简单的修改,透过 Linux sysfs 界面获取 RAPL 焦耳值。AMD 和 Intel 目前都提供了封装(Package)域和内核(Core)域的耗电数据,我在这里取的是 Package 域的数据。
按照 AMD 的说法,全片(Package)域的耗电数据已经包括了 IOD 的耗电值。
上图是 MemoryBandwidth 中的部分源码片段,红色框住的部分就是内存带宽实际测试调用,而绿色框住的部分就是我添加的耗电测试代码,如果你略懂 C 语言的话,就知道我在这里添加的耗电测试开销在这个尺度的测试负载下基本上是可以忽略的。
下面就让我们来看看测试结果。
从测试图表来看,Ryzen 9 7950X 以 AVX2 访存指令访存时,每比特数据需要消耗的电量大约是 145 皮焦耳,与上一代的 Ryzen 7 5800X(也是每比特大约 145 皮焦耳)相当。
Zen4 提供了 AVX512 支持,但是它的 L/S 单元 AVX512 指令吞吐能力只是 AVX2 的一半,所以它的 AVX512 访存性能和 AVX2 相当的,此时每比特的访存耗电大约是 163 皮焦耳。
Ryzen 7 7700X 的每比特访存耗电与 Ryzen 9 7950X、Ryzen 7 5800X 相当,都是大约 145 皮焦耳。
与之相比,Intel Core i9 12900K 全核发生访存的时候,每比特的耗电量平均为 370 皮焦耳,再上一代的 11700K 更是达到了平均每比特 721 皮焦耳。
为了进一步弄清楚 Intel Core i9 12900K 的访存耗电,我们透过指定内核的方式测试了 8 P-core 和 8 E-core 时的耗电,数据如下:
正如大家所看到的,12900K 8 P-core 的每比特访存耗电大约是 273 皮焦耳,而 8 E-core 的每比特访存耗电大约是 441 皮焦耳,E-core 虽然带着高效核的名字,但是它的访存耗电其实要比 P-core(性能内核)差不少,每比特的访存耗电比 P-core 大约高 61.5%,考虑到 P-core 的访存耗电本身就比 Zen4 高 88.3%,访存时的耗电的确要比 Zen4、Zen3 糟糕不少。
相较之下 Ryzen 9 7950X 的高频核和低频核在访存方面的耗电基本上是一样的。
可能有人会说 Intel 在这里用 DDR4-6400 是耗电更高的主因,但是从 11700K 和 5800X 都是 DDR4-3600 而 11700K 耗电显著更高的情况看,我觉得这可能更多的原因是和芯片工艺以及 AMD IOD 具有更低耗电特征有关。
为此,我追加了 DDR5-6000 设置下的 12900K 测试结果,此时相关的电压也更改为 BIOS默认设置值:
为了便于对比,我将横坐标的最小值更改为 8MB 起步,这样更方便观察访存(32MB 之后就是访存区域)的情况。
从测试结果来看,DDR5-6000 和 DDR5-6400 的结果是非常接近的,些微的起伏对我们的结论没有实际性的影响。
Zen4 和 Zen3 都采用了名为 chiplet 的多芯设计,CPU 内核放在 CCD 里,总线控制器、内存控制器以及 Zen4 引入的 RDNA2 GPU 核显都放在 IOD 里,CCD 和 IOD 使用不同的制程。
例如 Zen3 的 CCD 制程是台积电 7nm,Zen4 的 CCD 制程是 台积电 5nm,而它们的 IOD 分别是 12nm 和 6 nm。
可以看到,Zen4 的 IOD 在制程跨越方面是远高于 CCD 的变化,AMD 也特别强调了 Zen4 IOD 采用了先进低耗电架构,这些因素使得 AMD 有能力将 Zen4 的访存耗电维持在较低的水平。
访存耗电对实际整体耗电影响会有多大呢?
这个问题取决于具体的应用,有些应用的数据可能可以被高速缓存完全容纳,这时候访存耗电影响会较少,但是应用的数据是流式的,需要持续访存的,这时候访存耗电的影响就会比较明显。
从探查微架构的角度,我们还希望了解处理器每个周期的访存能力,这个能力涉及到微架构内部的 Load/Store 单元规模以及总线设计,由于处理器的变频或多或少都会干扰采集每周期数据的准确性,在这个测试中,我将处理器的频率一定固定为 4 GHz,然后把此时获得的内存带宽数据除以固定的处理器频率就能得出处理器每周期的访存能力。
从带宽测试结果来看,在单线程的时候,Zen4-7700X(AVX2)的访存性能大约是每周期 13 字节,Zen4-7950X(AVX2)略高一点是——每周期 14 字节,而此时 Golden Cove 是每周期 8 字节,Zen3 是每周期 9 字节。
在启用多线程后,单个 CCD 的 Zen4 的访存带宽是每周期 43 字节,两个 CCD 的 Zen4 是每周期 78 字节,Golden Cove 是每周期 58 字节,Zen3(单个 CCD 的 Ryzen 7 5800X)是每周期 53 字节。
前面测试的都是数据带宽,接下来让我们看看 Zen4 的取指或者说指令获取带宽。影响取指带宽的主要因素是 L1 I-Cache、解码器能力、指令并发执行能力以及运行结果写回能力。
以往我都是用 RMMA 来测试取指带宽,但是 RMMA 毕竟是 10 多年前的工具,有些老旧了,所以我这次加入了 Clam Microbenchmark 来实现这个测试,它提供了 4 字节指令(4 NOP)和 8 字节指令(8 NOPs)的取指带宽测试能力:
从测试结果来看,Zen4 能实现高达每周期 12 字节的取指带宽,这个取指带宽能力一直维持到 24KB 处才出现下拐,这意味着对于 Zen4 来说,理论上的前端最高 ILP 能力可以达到 12 条 nop 指令或者 6 条 x86 加法指令,诸如类似。
Clam Microbenchmark 目前只提供了 nop 指令的取指带宽,这可能体现不了一些更复杂指令的取指能力,为此我在这里还是补充了 RMMA 的 cmp 8 字节指令测试结果,见下图:
测试的代码片段长这样子:
正如大家所看到的样子,当出现更复杂指令的时候,取指带宽的赢家重新回到了 Golden Cove 这边,此时 Golden Cove 的取指带宽可以做到每周期 50 字节每周期,而 Zen4 此时和 Zen3 一样都是每周期 32 字节。
和 Zen3 相比 Zen4 的每周期 32 字节取指带宽可以维持到 32 KiB,而 Zen3 只能维持到 22 KiB,这意味着 Zen4 大约延长了 45%。按照 AMD 的介绍,Zen4 的微操作高速缓存大了大约 68%,从测试结果来看,基本吻合,虽然幅度不一样,但是这也是合理的范围内。
指令吞吐测试源自 Clam Microbenchmark,依照测试结果:
1、和 Zen3 相比,Zen4 的 nop 能力提升了一倍,类似的结果在前面的取指带宽中也能看到;
2、和 Zen3 相比,taken jmp 的能力提升了一倍多;
3、一比一混合 128-bit 向量加法、乘法的能力比 Zen3 提升了两倍;
4、Load/Store 能力没有变化,AVX-512 的 load/store 能力是 Cypress Cove 的一半,这应该是 Zen4 在实现 AVX512 没发生明显降频(不管执行的是哪一条 AVX-512 指令,都能实现全核维持 5.575 GHz)的主因;
5、在一些混合指令的场合 Zen4 是做了改进的。
现代处理器都采用了多级工位设计,大家把这种多级工位设计成为流水线化或者管线化。
流水线深度和处理器频率延伸能力、分支预测失败惩罚有密切关系。
一般来说,流水线工位越细分,各个工位的时间片就越短,处理器的频率看起来越就越高,但是工位越多,分支预测缺失导致的性能损失也就越多。例如 5 级工位的流水线遇到分支预测缺失,可能也就是损失 5 个处理器周期,但是如果是 20 级流水线可能损失的 CPU 周期就会达到 20 个。
现在的内核流水线设计异常复杂,不同指令流向经过的流水线工位数可能是不一样的。
为了探测 Zen4 的流水线深度,我使用了多种代码来测试。
下表中的左侧是以伪代码方式提供分支程序测试片段,以第 7 个测试(Test 6)为例:
Test 6, N= 1, 8 br, MOVZX XOR ; if (c & mask) { REP-N(c^=v[c-256]) } REP-2(c^=v[c-260])
这段伪代码中包含了一个 MOVZX 内存载入操作指令,根据处理器的不同,它可能需要额外的 5 到 6 个周期(可能更少)来执行,在支持乱序执行、乱序 L/S 的处理器中,这个动作占用的流水线工位通常会被掩盖掉。
Zen4 的频率虽然拉高了 1 GHz(全核 4.5 -GHz > 5.5 GHz),但是从上面的分支预测缺失惩罚结果来看,Zen4 的流水线深度相对于 Zen3 来说基本并没有增加,个别情况下甚至出现了惩罚下降的情况。
例如编号 20、22、24、25、29、30、31、32、35、36、37、38、39、59、60、61、62、67,都出现了 1个周期甚至两个周期的惩罚降低,有理由相信 AMD 分支预测缺失惩罚方面在 Zen3 基础上做了进一步的优化,上面 70 个分支预测模式里,也就是只有编号 64、65 证明 Zen4(Zen3)是接近 19 级流水线,其他情况下,更像是13 到 15 级流水线。
分支预测维持流水线充盈的重要性能手段,但是对于现在的长流水线处理器来说,分支预测失败的话对性能惩罚会非常高,因为这意味着运算结果要被抛弃并且流水线要被洗刷,即使是 1% 的命中缺失对性能来说也是非常致命的,当然这也意味着多增加 1% 的命中率收益会非常大。
现在的处理器在内部提供了性能计数器,可以让我们了解处理器运行某个程序消耗的周期数、指令数、分支指令数、分支命中失败指令数等数据,我这里在 Linux 下对 CPU2017 的 intrate 测试包进行了分支预测数据采集。
这次我们使用 SPEC CPU2017 1.18 版进行分支缺失率测试,编译器更新为 GCC 12.2,内存堆分配器Jemalloc 为 5.3.0,编译器的优化参数统一为:
-Ofast -march=x86-64 -mtune=core-avx2 -mfma -mavx -mavx2
-fno-finite-math-only -fno-unsafe-math-optimizations -fcommon
第二行主要是满足 -Ofast 的设置。
众所周知,之前我的 CPU2017 测试都是使用 -march=native,这样的设置能让编译器自动调用 GCC 开发者为不同微架构预置的最佳化编译参数,但是缺点是不同微架构的优化参数可能会有出入,这会导致编译出来的二进制代码有一定甚至较大的出入,在这种情况下做一些分析会出现运行指令差别较大而导致的微架构分析偏差。
所以在这次我选择了 -march=x86-64 -mtune=core-avx2 -mfma -mavx -mavx2 的优化开关,根据我的观察,这个设置得出来的总成绩和 -march=native 非常接近,所以这个优化设置集无论对底层分析还是应用级性能对比,都是可以接受的。
分别以整数和浮点测试分组统计分支命中缺失率的话,Zen4 的分支预测缺失率平均为 1.68% 和 0.44%,而 Zen3 为 1.76% 和 0.58%,Golden Cove 是 1.81% 和0.50%,Zen4 的缺失率是 Golden Cove 的 92.3% 和 88%。
如果按照每百万指令分支预测缺失率(Branch MPKI)的话,Zen4 是 Golden Cove 的 93.1% 和 88%,和 Zen3 相比则是 95.6% 和 75.2%。
Zen4 的分支预测器在浮点测试中的效果要更好一点,特别是 507_bwaves_r、507.cactuBSSN_r、511.povray_r、549.fotonik3d_r、554.roms_r 等子项目比 Zen3 有明显的改善。
Golden Cove 在 519.lbm_r 测试中有不错的表现,但是由于这个测试项目的分支指令占比只有 1%,是整个 CPU2017 里分支指令最少的,每一百万条指令也就是预测缺失 0.03 条指令 ,所以对分支预测缺失在这个子项目中对性能的影响并不会很大。
在整数测试集中,Zen4 的主要亮眼之处是 525.x264_r,分支预测缺失率做到了 Golden Cove 的 80% 和 Zen3 的 88.7%。
数据整理中,传统 nop 测量方式无法判定 Zen4 的 ROB 规模(数据上看几乎没有起伏的曲线),已经使用新的方法完成测试。
核间时延反映了各个内核数据交换的性能,这个问题随着 Zen1 问世再次在桌面领域引起大家的关注,这次我继续引入该测试,测试结果如下(四方热点图是物理内核之间的时延,条状热点图是内核启用 SMT 后物理线程之间的时延):
从测试结果来看,Ryzen 7 7950X 同一个 CCD 内的时延大约是 16-21 纳秒(高频核比低频核快 1 纳秒),两个 CCD 之间的时延大约是 76-81 纳秒,同一内核内的线程时延是 6.5-6.6 纳秒和 6.9 纳秒。
如果考虑到频率上的提升,Zen4 两个 CCD 之间的时延基本维持 Ryzen 9 5950X 的水平。
考虑到 Core i9 12900K 是单芯片,它在这里表现出来的 22-29 纳秒 P-core 时延虽然中规中矩,但是还是比 Zen3/Zen4 差一些。
x265 是当前开源社区最受欢迎的编码器之一,它采用 HEVC 编码标准,使用了手工汇编优化,支持多线程,在这个测试中,测试的片段是 ducks_take_off_2160p50.y4m,编码参数是 --preset slow --crf 28 --ctu 64 --profile main10,非常普通但是画质、码率均衡性非常不错的设置。
从测试结果来看, 7950X 的帧率达到了 12900K 的 1.43 倍,但是耗电方面前者是后者 89%,7950X 或者说 Zen4 的优势可能源自其分支预测能力更强,它的分支预测缺失率只有 2.58%,而 12900K P-core 的分支预测缺失率是 3.08%,E-core 则是 3.48%。
7z 是我经常使用的文件打包、压缩工具,它内置了一个基准测试,支持多线程。
从测试结果来看,7950X 的性能大约是 12900K 的 1.43 倍,是 5800X 的 2.2 倍。
如果看指令特性的话,Zen4 在这个测试中的分支预测缺失率比 Zen3 差一些,和 12900K 的 P-core 相当,分支预测缺失率在这里并不是造成性能差别的主要原因。
根据耗电结果、前面的访存/耗电测试以及后台观察到的内存占用来看,我觉得在这个测试中的性能差别可能很大程度上来自于访存特性的差别。
CPU 2017 是非盈利机构 SPEC(标准性能评估公司)推出的 CPU 性能评估套件,SPEC 成立于 1998 年,会员包括 Intel、AMD、IBM、DELL、联想、华硕、技嘉等业界大公司,每隔大约 10 年就会推出一版新的 CPU 性能评估套件,CPU 2017 是该机构在 2017 年推出的,是所有处理器、电脑厂商做处理器性能评估的最重要手段之一(如果不是使用上有一定门槛,上面这句话的“之一”是可以省略的)。
SPEC CPU 的特点是由各个机构提供实际应用的源码,它的每一个子项目其实都是源自真实应用修改而来,其修改主要是针对可移植性和遵循的语言标准,例如 x264 的真实版本采用了大量的汇编代码,但是这样的形式不利于移植到不同指令集架构上测试,因此 CPU 2017 中的 x264 采用的是纯 C 语言版本。
和上一版本 CPU 2006 相比,CPU 2017 的代码已经全面更新,虽然依然使用 C/C++ 和 Fortran,但是相对以前的版本来说,已经变成了多语言的大混装。Fortran 语言同时出现在浮点和整数测试集,而非像以往那样只出现在浮点测试集。
CPU 2017 的规则更加严谨,speed 测试集允许使用 OpenMP 多线程处理,主要测试较大数据集和较大访存压力下的单任务多线程性能,而 rate 测试集则只允许单线程,禁止自动并行化,但是允许以多任务的方式跑多个 rate 测试,目的是测试吞吐率,单个 rate 任务的访存压力要比 speed 小很多。
不过 speed 测试集也不是全部项目都支持多线程,只有浮点密集型的 fpspeed 所有项目支持多线程,整数密集型的 intspeed 10 个子项目中只有最后的 657.xz_s(数据压缩)是支持多线程的。
这样的规则让以往 CPU 2006 以及更早版本中常见的编译器自动并行化“优化”手段被禁止使用,减少了测试结果的混乱(测试如果使用了编译器自动并行化后,实际上变成了编译器比拼),提高了可比性。
从测试结果来看,Ryzen 7 7700X 比 Ryzen 7 5800X 有明显的提升,单线程整数平均提升了 22%,浮点提升 19%。
在多线程方面,Ryzen 9 7950X 在 intspeed 和 fpspeed测试中分别比 Intel 当前的 Core i9 12900K 快了 10% 和 6%。
Zen4 在 Zen3 的基础上进行了大量改进:
1、 频率显著提升,名义最高频率从 4850MHz 提升到了 5880MHz,全核在运行 CPU2017 多线程的时候基本都能维持在 5.5GHz;
2、 集成了 RDNA2 核显,能显著增加产品的适用场合,给用户更多的选择;
3、 新架构实现了更高的 IPC,有力改善了和 Intel 竞品抗衡的,不过真正的决战可能还需要等几个星期,据闻 Intel 的十三代处理器解禁时间是在 10 月 20 日;
4、 采用了新平台和 DDR5 内存,虽然这会带来使用成本的提升,但是从长远来看,这一步是必须迈出去的,对用户来说,也是利大于弊。
Zen4 在 AMD 产品战略中属于继往开来的产品,延续了 Zen 的平衡哲学理念,同时为未来的 Zen5 甚至 Zen 6 开启了全新的平台,其战略角度来说,意义不亚于当年的 Zen。
从测试结果来看,Intel 的酷睿 12 代已经被 Zen4 斩落马下,那么是否值得马上就冲,我相信最简单的回答还是先看看 20 天后的酷睿十三表现,但是这样的回答肯定不够让你满意,我觉得你需要考虑的因素有三点:
1、现有的平台是否真的不够用?如果不够的话,那新的 Zen4 的确可以再全方位提升你的使用体验。
2、然后是预算的问题,Zen4 加上主板下来 ,没有 4、5000 可能是下不来的(Ryzen 9 7950X 4799 元、Ryzen 9 7900X 3799 元、Ryzen 7 7700X 2799 元和 Ryzen 5 7600X 2099 元,加上主板和内存,5000 起步应该跑不了了),你必须确保这个预算是你能接受的范围。
3、刚需,迫切的刚需。
更新:
2022-09-28:更新了 11700K 的 c2c 特点图;修正了 CPU2017 fprate、intspeed 的图表。
2022-09-26:追加了 7z、x265 的测试结果。
上一篇:云计算的特征