18

代差的碾压 ——AMD Zen 3处理器暨ROG C8DH知乎首发评测

 3 years ago
source link: https://zhuanlan.zhihu.com/p/277540071
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文主笔为CHO(陈寅初)和Cloud。其中CHO为PCPOP创始首席评测,Gzeasy创始人,超过20年的核心组件评测经验。Cloud则在某整机厂从事系统评估和设计工作,资深评测工程师。另:本文无任何利益关系,纯工作范围内的深度评测。

DIY的政治正确

AMD Yes在中国的DIY圈基本就是政治正确。其核心原因是AMD处理器相比intel能够在更低的价格,获得更多的核心,并在类似鲁大师,Cinebench这样的测试软件中获得更好的性能。

更高的得分/更低的价格=更好的性价比= AMD YES

nU7nQnu.jpg!mobile

Zen 2时代AMD得益于“更好的性价比”在零售市场就翻了身(上图是我618时候,京东平台自营intel 9+10代对AMD处理器月销量统计对比)。但鲁大师,Cinebench这样的测试软件性能更多表现是多线程性能,而多线程性能更多代表的是理论性能或者说是生产力性能,而和日常应用体验和游戏表现是脱节的。这种脱节的主要原因有两点,第一是相对较低的频率(Zen 2的IPC相比Skylake其实并没太大问题),第二是Zen 2的CCX架构,这种架构虽然能够更为容易堆多核心,但跨CCX L3通信性能就会大幅下降,这问题影响对游戏这样的重度需要核心通讯的应用就十分明显。

EvuyIbn.jpg!mobile

当然,Zen 2的这些问题AMD自己也是心知肚明的,因此在下一代的Zen 3上致力解决这些问题,首先是去掉了4核一个CCX的设计,而改成8个,这将显著提升游戏性能,同时原有16+16MB的分割L3也变成了32MB统一的L3,另外单个核心的IPC也提升了19%。这样改变我们本文会分成Zen 3的微架构、Zen 3的整体架构/平台,Zen 3的生产力性能和Zen 3的游戏性能4个方面对Zen 3进行解读,最后再给与读者选择建议。在架构方面我们将纯理论,而在生产力测试和游戏测试又完全基于实际应用,贴近用户的真实应用环境。

VVR7zeA.jpg!mobile

另外这代苏妈Zen 3的售价也超过intel,颠覆了AMD一贯核足价优的传统印象,甚至有些AFAN觉得有点难以接受,我们也将在本文通过数据来说明Zen 3性能带来的价值是否能够支持其高昂的价格。

本文篇幅较长,完整阅读大概需要20分钟以上的时间,目录如下:

Zen 3的微架构

Zen 3的整体架构

Zen 3平台 CROSSHAIR VIII DRAK HERO解析

Zen 3的生产力性能

Zen 3的游戏性能

Zen3的购买建议

Zen 3 的点点滴滴——从指令集说起

随着笔记本这边的 Zen2 产品线命名为 Ryzen 4000 系列后,Ryzen 5000 系列也就自然而然的成为了 Zen 3 的产品型号了。

第一波的 Zen 3 主要针对高端产品,它们分别是 Ryzen 7 5800X、Ryzen 9 5900X、Ryzen 9 5900X,此外还有针对中高端的 Ryzen 5 5600X,先放个简单的对比表:

zu2yQnB.jpg!mobile

对于 AMD 来说,Ryzen 5000 系列的主要任务与 Intel 的十系列(内核步进代号 CometLake)台式处理器竞争,因此其性能必须达到相当甚至更好的水平。

CometLake 的最高端产品为 Core i9 10900K,微架构可以追溯至 5 年前(2015 年 8 月)的 SkyLake(各编译器里 CometLake 对应的微架构旗标就是 skylake),属于 SkyLake 的第七版步进,Zen 3 面对的就是这个潜力一挖再挖的微架构,最初采用 Skylake 的产品被称作第六代 Core(酷睿),是十系列四代之前的产品了。

SkyLake 微架构发展:SkyLake->KabyLake->CoffeeLake->AmberLake->WhiskeyLake->CoffeeLake 更新->CometLake

BVzqInA.jpg!mobile

而在 Zen 3 这边 AMD 较早之前给开源编译器组织 CNU 和 LLVM 递交了名为znver3 的编译器开关,其中有若干条新指令。

首先是目前 Intel 并未公开支持的:

INVLPGB – 可以在刷新整个 TLB 的情况下更新指定的 TLB 条目。

TLBSYNC – 这条指令是为了确保逻辑处理器执行了 INVLPGB 指令后,系统中所有逻辑处理器都实现相应的同步。

SNP – SNP 其实由 PSMASH、PVALIDATE、RMPUPDATE、RMPADJUST 四条指令组成。这里涉及到 Reverse Map Table(逆向映射页表)的概念,RMP 是为了方便实现页表回收或者迁移的机制,SNP 的作用就是实现对 RMP 操作的加速。

然后是 Intel 目前已经支持的:

VAES – 向量 AES 指令。

VPCLMULQDQ – 对两个 quadwords 数据进行无进位相乘操作,在 64 位系统中,quadword 的长度是 256 位。这条指令被认为 Intel AVX 512 中同类指令的 256 位版本。

INVPCID – 主要用于避免额外的 TLB 刷新,Intel 在 2010 年代就提供了该指令的支持,它被引起关注主要是因为 2018 年的时候,使用它可以减少 Meltdown 危机导致的性能开销。

OSPKE – 操作系统相关的密钥指令。

其中对性能有影响的主要是前面的 5 条指令,不过目前最新的 GCC 正式版 10.2 并未提供 znver3 旗标,GNU 这边需要到明年正式发布的 GCC 11.0 才会提供,LLVM 则需要 12.0。

换而言之,除非是使用汇编代码,目前的 GCC/Clang 编译器只能使用 znver2 来编译,在 Zen 3 上会有轻微的性能发挥问题,这些零星的新指令算不上重要的扩展。行文至此,AMD 自己的 AOCC 编译器依然停留在 2.2 版(基于 Clang 10 和旧 Flang 的 AMD 官方优化版)。

从 CometLake 可以看出,如果没有什么重要的改动,编译器一般不会去增加微架构旗标,包括 Intel 自己的编译器也都没有为 SkyLake 后的架构改版增加微架构优化旗标。

而到了 AMD Zen 这边,每一代微架构基本上都有一个新的旗标对应,Zen+ 虽然没有直接的旗标,但是根据我在 Ryzen 5 3550H 的实测,它使用 znver2 跑 SPEC CPU 2006/2017 时候的性能也会有一定的性能提升。

改用新的微架构旗标有提升,说明了三件事,一个是微架构有变化,另一个是编译器方面有优化,而处理器旗标的提交都是处理器厂商自己提交的,所以 AMD 软件团队基本上是跟得上节奏的,奈何软件开发的确是一件需要考虑方方面面的事情,所以还需要时间来实现。

VRRB32Z.jpg!mobile

上面两个表格就是 CPU 2017 四组测试集的介绍,5 字头的都是 rate 测试、6 字头的都是 speed 测试,rate 不允许多线程或者自动并行化,但是可以同时跑多个相同实例的方式执行。speed 只有 fpspeed 是全部支持多线程,intspeed 只有 657.xz_s 支持多线程。

657.xz_s 的内存开销是 CPU 2017 单个子测试中名义最高的,根据观察起码需要 16GB 内存,但是实际上 fpspeed 对系统内存的需求更高,32 GB 内存的系统跑 fpspeed 会比 16 GB 内存快上一截。

我这次主要使用 gcc/g++/gfortran 10.2 的 GCC 三套件外加 Jemalloc 内存分配库进行测试,采用 GCC 而不是 ICC、AOCC、LLVM 的原因有三点:

1、GNU 这边有完整的 gfortran 实现,LLVM 那边的 Flang/F18 目前缺乏 codegen,只有语义等环节,AMD 的 AOCC 在页面介绍说是 LLVM 10,但是根据 Flang/F18 开发人员 Kiran Chandramohan 给我的回信,AOCC 的 Flang 其实是基于老 Flang(并入 LLVM 之前)的,所以 LLVM 的工具集并不完整,不适合作为我们的测试使用。GCC 的性能比比 AOCC 更快,。

2、Intel 编译器也是一个不错的选择,根据我的实测,跑起来会两边其实差不多,ICC 浮点会快一点点,整数一样。我们希望尽量公平一点,所以在区别极小的情况下,一律使用 GCC。此外,GCC 有些特性是我觉得很有用的,例如它提供了读取 native 微架构旗标时实际调用了哪些优化开关的功能。

3、GCC 10.2 和当年我初次接触 的 GCC 4 相比已经有非常巨大的进步,不管是代码生成质量还是兼容性、文档和技术支持,都让我可以有把握排除一些测试中遇到的问题,例如 GCC 10 引入了一些优化开关的问题,经过查找文档后我自己解决,而 SPEC 那边也在稍早公布了相应的解决方案。

Zen 3 内核的提升重点——Load/Store

按照计算机科学的划分,指令集架构(ISA)定义了指令的格式和功能,而微架构(microarchtecture)定义了处理器的内部构成。

微架构一般以流程布局图的形式展现,其中会有各种路径和功能单元,例如高速指令缓存、动态分支预测器、解码器、指令调度器、逻辑计算单元、浮点计算单元、载入/保存单元、高速数据缓存以及系统总线。

现代的微架构中,内核的概念通常是按照存储层次来划分——从寄存器到 L2 Cache 这个级别的单元集成被称作“内核”,芯片中的其余部分(包括 L3 Cache、内存控制器、系统总线)一般称之为 Uncore。这是现代方式的划分,但如果是 i386 这种“远古”时代的处理器按照官方规格连 Cache 都没有集成,需要在主板上安装昂贵的 SRAM 颗粒,这种原始物种的内核相对而言是光溜溜的。

对于微架构的改动,我们先从“内核”谈起,先放看看 AMD官方的 Zen 2和Zen 3 内核微架构对比图:

3Ir67z3.jpg!mobile

正如你所看到的那样,从“大”的方面来说,Zen 3 相对 Zen 2 内核的主要区别是 Load/Store 性能的变化:

从 Zen 2 每周期 2 Loads + 1 Stores 提升到了 Zen 3 的每周期 3 Loads + 2 Stores,幅度分别为位 +50% 和 + 100%。

众所周知,x86 是采用寄存器-内存(register-memory)的指令集架构,各种类型的算术指令既可以运行于寄存器也可以直接运行于内存上。不过,这是什么意思呢?

例如,x86 常见的指令类型(为了方便,我这里使用伪指令):

add Reg_A, MemAddr_var_1;

这是一条加法指令,将内存源地址 var_1 里的值和目的寄存器 A 的值相加,计算结果存放在寄存器 A 中,同一条指令里既有寄存器,也有内存。

内存地址_var_1 指向的值可能在物理内存或者高速缓存中,如果是后者就可以显著减少访存导致的性能下降。

寄存器属于最接近计算单元的存储资源,时延一般是 0 或者 1 周期,而内存需要访存指令,时延可能会高到 100 到数百个周期以上。

这是 CISC 指令集的特点之一,与之相对应的 RISC 指令集里,运算指令的源和目的数都必须位于寄存器中,寄存器的值需要另外透过 Load/Store 指令从内存加载(Load)或者向内存(Store)保存,上面的伪指令改为 RISC 来写的话,可能就是这样了:

ldr Reg_B, MemAddr_var_1

add Reg_A, Reg_B;

当然这是指令集层面的,对于现在的 x86 处理器来说,指令中的内存访问操作其实也是透过专门的 Load/Store 指令单元(LSU)来实现,不管哪种指令集架构,LSU 都直接影响程序运行表现。

Load/Store 属于内存操作,因此增加 Load/Store 单元,主要改善的是涉及内存密集型的操作,具体得看程序里的动态 Load/Store 指令占比,L/S 动态指令占比越高 L/S 单元性能表现影响应该越大,当然因为涉及到内存,所以 L1 D-Cache、L2 Cache、L3 Cache、硬件预拾取器、主内存以及它们的总线等也会有相应的影响。

空口无凭,大家先来看看我使用 AMD Ryzen 7 3800X 在 SPEC CPU 2017 中 INTRate(整数密集型)测试集单线程模式下实测测试时的动态指令类型分布,数据采集源自处理器的事件计数器。

软件配置说明:SPEC CPU 2017 1.1;

编译器/ 库/操作系统:gcc/g++/gfortran 10.2 + Jemalloc 5.2.1,Ubuntu 20.04 Kennel 5.4;

编译器主要优化旗标为 znver2、-Ofast;

我们这里先用 rate 测试集为例,提供该测试集中分支指令、L/S 指令比率和占比情况:

SPEC CPU 2017 intrate 整数测试集特性,数据采用 CPU 厂商的性能事件计数器采集统计:

eUzQB3j.jpg!mobile

SPEC CPU 2017 fprate 浮点数测试集特性:

mae6nuF.jpg!mobile

(单位说明,GInst:十亿条指令;x:倍数)

正如你所看到的,在 CPU2017 中,L/S 指令的动态指令数(处理器实际执行的指令数,非编译后的二进制静态指令数)占比平均超过了 45%,引入更多的 L/S 单元能让处理器有效提高指令并行度。

整数和浮点测试集的 LT/ST 指令比率的几何平均值分别为 3.1x 和 4.6x,这说明 Load 单元的数量应该尽量设计为比 Store 单元更多才合理,目前大部分处理器都是如此,在 Zen 3 中这个比例是 1.5x 或者说 3:2。

值得一提的是,我们在测试 SPEC CPU 的时候采用的 Jemalloc 是一个内存分配器。

C 和 C++ 的内存资源分为静态内存和动态内存,前者使用栈的方式进行分配(静态变量存活的生命周期取决于函数或者所在域的生命周期),分配的内存大小在初始化后就固定不变的,出于性能优化的目的,如果编译器这边不设置专门的参数,其大小一般很小,例如几十 KiB,优势是性能比较容易优化。

而动态内存则相对灵活许多,其大小可以用变量的方式设定,

相对于 gcc/g++ 内建的内存分配器可以在一些测试中提供更出色的内存性能。

在更早之前的 CPU20XX 系列官方测试榜单上,内存分配器基本上是 SmartHeap 的天下,smartheap 是收费的库,价格非常贵,这使得我以前跑 CPU20XX 的时候只能各种羡慕与好奇,直到后来出现了 Facebook 推出开源的 Jemalloc 后情况才有变化。微软这边也做了一个 mimalloc,据闻性能也不错,有时间再看。

AMD 的文档在前面的架构图基础上提供了更多的细节,下面根据他们提供的列表展开 Zen 3 微架构的介绍。

前端(取指、动态分支预测、解码等)

前端各工位主要设计目标:更快的指令拾取,尤其是分支类指令以及长指令,Zen 3 进行了如下改进:

L1 分支目标缓存(L1 BTB)大小加倍到 1024 条目,实现更快的分支时延;

提升了分支预测器的带宽;

更快地从预测失误中恢复;

“不冒泡”预测能力让“背对背”预测可以更快更好地处理分支代码;

op cache 取指测序更快;

op cache 流水线的切换粒度更精细。

处理器的流水线可以分为取指、解码、执行、写回四个工位,其中前端(front-end)是指取指和解码,执行和写回被称为后端(back-end)。

对于现在的超标量流水线处理器说,每个周期可以执行多条指令,前端需要为后端提供匹配的取指、解码能力,同时为了保证流水线闲置执行单元不浪费,人们还引入了分支预测单元,根据预测结果决定是否将下一条指令先派发给后端闲置的单元执行,待分支确定是否选中后再决定是否保留计算结果或者重置流水线。

op cache 也被称作 micro-op cache 或者 L0 I-Cache,它里面存放的是若干段处理器认为会被近期重复使用的微操作(micro-ops),所谓的微操作是 x86 处理器为了简化后端设计引入的处理器本机指令,是已经经过解码器解码的长度固定的本机指令。

在循环语句里的指令在很多情况下都是不断重复的,这些指令以微操作的方式放在 uop cache 后,后面重复执行这些操作的话,就无须经过解码器这个工位,直接发往后端的队列里等待发射执行。

uop cache 在 x86 上的原型是当年 Pentium 4 引入的 Trace Cache,Trache Cache 需要消耗大量的芯片面积,但是这是提高超长流水线架构处理器性能重要的一环。在 Pentium 4 终止后,Trace Cache 的瘦身版就以 uop cache 的形式引入,AMD 在 Zen 上面也引入了该技术。

那么 Zen 3 经过上面的措施后,对解码能力、分支预测能力以及 op cache 的实际改进如何呢?我们先来看看解码部分的实测性能。

NjqQzq.jpg!mobileeYvQnma.jpg!mobile

非常有意思的测试结果。

从测试结果来看,Zen 3 在单字节指令时候的解码、执行能力达到了真正的每周期 6 指令,当然这样简单的指令可能实际意义不是很大,先看着乐吧,它至少证明了前后端的单元规模在简单指令的情况下,是可以满足每周期 6 指令的吞吐要求。

到了 8 个字节长度的指令时,虽然 Zen3 依然是只有每周期 32 字节(相当于每周期两条长度为 8 字节的 x86 指令)的解码带宽结果,但是维持每周期 32 字节的能力已经从 Zen2 时代的 15 KiB 平移到了 22 KiB 字节,这相当于 7 KiB,达到了 i7 9900K 的两倍,可能的解释是 op cache 大小或者等效大小增加了 7 KiB。

在更早之前,网上有一篇 AMD 美国研究院 Jagadish B. Kotra 和 John Kalamatianos 撰写的预印刷论文《Improving the Utilization of Micro-operation Caches in x86 Processors》,里面介绍的是透过减少未操作高速缓存碎片,从而实现的微操作高速缓存压缩,实现了性能提升。

AMD 前面提到的 uop cache 切换粒度更小可能与此有关,因为类似的情况在单字节指令(NOP)中并未出现,而长字节指令更容易被压缩。当然目前还没得到官方回复的情况下,这些纯属个人猜测。

接下来,让我们看看 Zen 3 在分支预测能力的变化,这里采用 SPEC CPU2017 Intrate 来对比:

RBbA7r.jpg!mobileYRbYNf6.jpg!mobile

我们同样采用处理器厂商提供的硬件事件计数器记录下三款处理器运行 SPEC CPU2017 时候的分支预测失误率数据。理论上,这个世界不可能存在完美的分支预测器,但是可以尽量接近 0% 的预测失误率。

一旦分支预测失败,流水线就会被洗刷重置,流水线有多长,就会损失与流水线工位数相当的周期数,例如流水线长度是 20 级的话,出现分支预测失败,就会至少损失掉 20 个周期的性能。也就是说,当出现一条分支指令预测失败的话,性能损失将会放大 20 倍。

假设动态指令中分支指令占比 20%,里面有 1% 的分支指令预测失败,至少要损失整体 2% 的性能,但如果其中有访存等动作,实际的性能损失可能是这个数字的 10 倍以上,例如实际整体性能可能要损失 10% 到 30%。

从测试结果来看,我们认为 Zen 3 的动态分支虽然有变动,但是整体的预测准确度和 Zen 2 差不多,Zen 2 在 549 和 554 中有更好的表现,而 Zen 3 在 511 和 538 中有较高的表现。

和 Intel 目前最新的 CometLake 相比(我们测试的是 Core i9 10900K),AMD Zen 2/Zen3 的动态分支预测准确度明显要高出不少,这里点个赞。

前端部分有了解码和分支预测性能,好像写的差不多了,不过我想这里插播一下流水线深度测试,看看 Zen 2 的流水线到底有多少个工位。

这是有原因的,它和分支预测失败导致的性能开销以及频率延伸能力有一定的关系,而 AMD 和英特尔现在都没有公布这方面的数据,这次的 Zen 3 测试指南中只是有一句模棱两可的话语:更快地从预测失误中恢复。

下表中的左侧是以伪代码方式提供分支程序测试片段,以第 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 的处理器中,这个动作占用的流水线工位通常会被掩盖掉。

7fMjAv.jpg!mobile

从测试结果来看,Test 6 的 Zen 3、Zen2、Zen 1 测试结果分别是 8.21、12.22、12.30 个周期,加上 MOVZX 的 5 个周期,那这个测试的 Zen 3、Zen 2、Zen 1 有效结果就是分别是 13、17、17 个周期。

Zen 3 的等效流水线工位是 14-18 级左右,普遍减少了 4 个工位!

测试结果完全出乎我的意料——没想到 Zen 到了第三代的时候居然出现了流水线工位减少的情况,流水线工位减少,意味着分支预测失败的惩罚更低,随之而来的是频率延伸能力可能更低,但是最终产品来看,Zen 3 系列的全核加速频率并不比 Zen 2 弱甚至要更快。

这说明了一点:AMD 在缩短流水线工位的同时透过优化电路、制程等措施,实现了更高的频率。

执行引擎(重排序、指令派发、运算单元、回退等等):

主要设计目标:降低时延、扩充单元,实现更高的指令级并行(ILP),Zen 3 作了如下的改进。

为整数操作提供独立的分支和存储拾取单元,相对于上一代的 Zen 2 增加了三个,达到了 10 指令发射能力;

更大的整数指令窗口,相对于 Zen 2 增加了 32 条目;

降低了个别浮点和整数指令的时延;

浮点内存操作单元增加了两个,浮点流水线派发和发射能力提升到 6 指令;

浮点 FMA 指令时延缩短了 1 个周期。

对于执行引擎,我们测试了 ReOrder Buffer、指令吞吐时延等数据。

很多乱序执行处理器都采用了名为 Re-Order Buffer(重排序缓存)的技术,使指令在乱序执行后能够按照原来的顺序提交结果。指令在以乱序方式执行后,其结果会被存放在 ROB 中,然后会被写回到寄存器或者内存中,如果有其它指令马上需要该结果,ROB 可以直接向所需的数据。简而言之,ROB 的大小对于确保有足够的乱序驻留指令以及动态分支预测的恢复,对提升指令集并行度有不可忽视的作用。

我这里使用 Travis Downs 的 rob size 工具来测试,测试结果如下:

FB36JfZ.jpg!mobileuqYVr2Y.jpg!mobileuIF7Vje.jpg!mobile

正如你所看到的那样,Zen 3 的整数 ROB 大小已经从 Zen 2 的 224 提高到了 256,这是一个不错的提升,意味着 Zen 3 能够提供多 32 条指令或者说微操作的乱序执行能力。

现在让我们看看指令时延和吞吐的测试结果,测试数据源自 AIDA64,不过由于篇幅有限,而采样的指令数据高到 4600 项,我们只能采用只选取若干我们认为比较重要的指令,例如赋值(mov)、位移(shift)、加法(add)、乘法(mul)、FMA、除法(div)、平方根(sqrt)以及与之对应的单精度(xxxxPS)、双精度模式(xxxxPD),此外还有 AES 等指令,测试结果以 时延|吞吐 的方式展现,单位是周期。

测试结果如下:

Fbqeq2E.jpg!mobile

在 x86 中,mov 和 lea 都属于赋值指令,这里测试的是寄存器赋值。其他的指令大家应该都比较熟悉,相关的文档也有介绍,例如 VPMUL 指令可以在这里找到解释。

mov 指令方面,Zen 3 有 15% 的吞吐提升,而 lea 指令的吞吐则提升了一倍。

FMA 指令如 AMD 介绍的那样,时延降低了 1 个周期,与 Intel 的 FMA 指令时延相当了。

向量除法和 Zen2 相比吞吐性能提升了一倍;

平方根和 Zen2 相比吞吐性能提升了 30%;

AES 和 Zen2 相比指令吞吐性能提升了一倍。

让我们再看看物理寄存器堆(register file)大小。

从 Cyrix 在 95 年发布的 Cyrix M1 处理器是史上第一款具备寄存器重命名和乱序执行能力的 x86 处理器算起,x86 处理器的乱序执行至今已经有 25 年了。

在绝大部分情况下,寄存器重命名不一定和乱序执行是挂钩,例如 Intel IA64 就有多达 128 个通用整数寄存器,虽然也涉及寄存器重命名的概念,但这是编译时的事情,在编译时做寄存器重命名也不见得都是好事(容易导致代码膨胀,降低指令高速缓存命中率)。

对于 x86-64 这种只有 16 个指令集架构寄存器的指令集架构而言,寄存器重命名是保障乱序执行必不可少的技术,要重命名,自然得需要有足够的物理寄存器才行,物理寄存器越多,可供重命名的资源也就越多,维持乱序执行的能力就越强。

我们使用 robsize 同样的测试程序进行了物理寄存器堆(PRF)大小的探测。这里说明一下,我们前面的 rob 大小探测使用的是 nop (空操作)指令,不占用任何寄存器,而接下来做的 PRF 大小推测测试,使用的是 add(加法)指令。

需要注意的是,物理寄存器堆里同时含有乱序执行中可用于推测执行的推测寄存器数量和已提交寄存器数量,因此这种测试方式不能把直观地把整个物理寄存器堆的大小给出来,它只能测量出可用于推测执行的寄存器数量。

eQnUviR.jpg!mobileIFJz2aI.jpg!mobileBnEfA3V.jpg!mobile

正如你所看到的那样,Zen 3 可用于推测执行的物理寄存器大小要比 Zen 2 小了 16 个.

按照官方的规格,Zen 2 的物理寄存器堆大小是 180 个,实测可用于推测执行的是 144 个,因此有 36 个不能用于推测执行,而到了 Zen 3 上,我预期其大小不应该少于 Zen 2,例如也都是 180 个,因此在 Zen 3 上不可用于推测执行的寄存器数量应该是 48 个。

Comet Lake 预期的物理寄存器数量应该是 180 个,实测可用于推测执行的是 144 个,有 36 个物理寄存器不能用于推测执行。

再看看浮点物理寄存器的情况,我们使用 AVX 指令来探测。

aIRjIvu.jpg!mobilenYNjaa3.jpg!mobileryIremN.jpg!mobile

三个微架构可用于推测执行的浮点物理寄存器大小相当,都是 144 个。

三个微架构都不支持 AVX-512,所以这次就不用考虑测试 zmm/ymm 寄存器的共享问题了。

3、Load/Store 单元或者说内存子系统:

主要设计目标:扩建+更快的预拾取,以支持增强了的执行工位。

更高带宽,满足更大、更快的执行工位带宽需求;

Load 单元 +1;

Store 单元 +1;

更灵活的 L/S 操作;

内存相依性检测能力增强;

TLB 中的页表搜索器(table walker)增加了 4 个。

我们首先使用 uarch-bench 做了一些 LSU 相关的测试:

IjYNvqU.jpg!mobile

正如你所看到的,Zen 3 的实测 store 性能达到了每周期两个,对于相同目标地址的内存操作(里面混合了 load 和 store 指令),现在只需要 1 个周期就能完成,而 Zen 2 需要 7 个周期,我相信除了增加 LSU 外,Zen 3 还有一些别的优化措施实现这个能力。

我这次采用 SPEC CPU2017 进行对比,首先,我们使用同频率 4GHz 来测试,其中插播一片 10 年前的 Core i7 2600K:

7zIvAr.jpg!mobileUv2emuv.jpg!mobilefuaUfub.jpg!mobileaIRRNjI.jpg!mobile

我们采用了 4GHZ 同频的目的是为了便于比较 IPC。

在整数 rate 1copy 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 22%、42%、22% 和 52%。

在浮点 rate 1copy 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 13%、28%、20% 和 78%。

在整数 speed 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 23%、43%、21% 和 60%。

在浮点 speed 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 5%、16%、0% 和 188%。

以上是纯 IPC 方面的提升幅度。

对于在运行于默认频率(含自动加速)的测试,代表了大家日常的应用感受。

默认频率( CPU 自我放飞了),关闭超线程:

aIb2ui3.jpg!mobile6rMnay.jpg!mobileemyAjqz.jpg!mobileeM73M3f.jpg!mobile

在整数 rate 1copy 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 32%、59%、慢 17% 和 80%。

在浮点 rate 1copy 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 20%、41%、15% 和 110%。

在整数 speed 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 33%、59%、17% 和 89%。

在浮点 speed 测试中,Ryzen 7 5800X 的同频性能比 Ryzen 7 3800X、Ryzen 7 2700X、Core i9 10900K、Core I7 2600K 快大约 10%、23%、4% 和 207%。

透过这次针对 Zen 3 微架构测试,大家可以了解到,Zen 3 在很多细节上的变化:

1、LSU 单元各增加一个;

2、L3 Cache 合体,对游戏等应用将会有显著的提升;

3、诸多指令的时延和吞吐能力获得提升;

4、流水线长度缩短了;

5、uop cache 有重大优化;

6、指令窗口增加到 256 条目;

7、物理寄存器堆可用于推测执行的资源减少了。

这些诸多的改变,对于 Zen 3 来说,反映到 SPEC CPU 2017 中,最显著的提升领域是整数性能,单线程下,同频比 Zen 2 大约提升了 22%,浮点相对较少,是 13%,和 Comet Lake 比整数大约快大约 22%,浮点大约快 20%。由于 Comet Lake 具有 10 个内核,所以在多线程浮点中,两者同频性能相当。

默认频率规格下,Ryzen 7 5800X 的提升幅度更大,单线程下整数和浮点分别比 3800X 快大于 32% 和 21%,时隔 一年,这是非常大的提升了(斜眼 Intel)。

从CCX到CCD

在解析完微架构之后,再来看看整体架构。先让我们温习下Zen 2整体架构特点。

Zen 2是采用的Chiplet的多芯片方式进行构建,桌面级的Zen 2可以有2个封装的处理器芯片,每个处理器芯片可以有 8个核心,这8个核心被分成2个CCX组,每个组4个核心共享16MB L3缓存,一共32MB缓存。不同CCX的核心通讯需要通过IF总线访问CIOD,再回到另外CCX的核心。内存控制器和其他外围的PCIE HUB也在外部的CIOD中。

zuAnEfA.jpg!mobile

这样设计的优势是Zen 2可以以Chiplet的方式以更为低的难度和成本扩展核心数量,缺点是由于要访问核心外的CIOD芯片,跨CCX核心通讯和内存通讯性能差,延迟和耗时大。多封装的设计处于对于成本的考量,这个得失还是可以接受,Zen 2设计的主要缺陷就是单芯片双CCX的设计,这样设计会导致两个问题,第一个问题是跨CCX核心通讯性能差,究竟要去CIOD外部芯片绕一大圈,第二个问题是,虽然一个芯片有32MB L3缓存,但由于CCX一个核心只能使用一半的16MB L3,并且两个L3还需要一致性同步,这进一步的降低了L3性能。

rEBbAjq.jpg!mobile

而Zen 3在整体架构上就解决了CCX设计问题,单个芯片就不再分CCX,8个核心在一起,共享32MB缓存,这样单个芯片的所有核心就可以直接访问同封装的所有核心,而不用再去CIOD绕一大圈,同时所有核心都可以使用全部的32MB缓存。不过跨封装的核心访问和内存访问还是要经过CIOD,还是有Zen 2的老问题。

6VZZvaU.jpg!mobile

上图是Zen 2的Die,一个Die有2个CCX,每个CCX 4个核心,4个核心对应的L3缓存是由十字形的Crossbar总线连接的,Crossbar是所有核心两两都互相直连,4个核心之间都可以直接通讯,路径短,这样的Crossbar基本就是从推土机上延续下来的。

myuQb2b.jpg!mobile

但Crossbar的两两互联,4个核心还好就是6个通路,但随着核心数的增加,通路需求就膨胀起来,6个核心需要15条,8个核心全部两两相通这就夸张到28条,这完全是个排列组合的问题。继续用Crossbar在复杂度上就不可能可以接受,因此Zen 3也改成了和Skylake一样的Ring环形总线。但这个环是个怎么样的环,就是个更为复杂的问题,甚至并不是像Skylake那样的单环。

EJbUFnU.jpg!mobile

我们使用Cache 2 Cache测试不同核心的L3缓存一致性耗时(关闭SMT),3950X(FCLK 1733 内存1866MHz)同CCX耗时大概在55ns(平均近似),而跨核心和跨CCX一样,都在157ns水平。

而5950X是8个核心一个CCD,不再分CCX,单个CCD内的核心耗时40ns(平均近似),而垮CCD则也为157,和Zen 2差不多。Zen 2相同Chiplet不同CCX核心互相通讯,还是要通过IF去CIOD转一圈,而Zen 3同Chipet都可以互相通信。另外需要注意的是,RingBus相比Crossbar一致性耗时也应该是有差别的,Crossbar其实应该比较平均,在相同条件下也应该更快,Ring有一定的顺序性,路径比较长,时长变化差别也更大,但实际测试Zen 3还是更快,这个应该还是和L3性能有关系。

FRbmmi6.jpg!mobile

并且对于5600X/5800X这样单Chiplet处理器影响更大,所有核心都可以直接通讯,而没之前3600/3700X/3800X的跨CCX性能下降的问题。其实大部分用户都会选择8核心或者以下的型号,这个完全无跨CCX的提升其实意义更为重大。

3qqAVfr.jpg!mobile

上面是最佳性能点的测试,此外我们还测试了不同内存频率、FCLK对于性能的影响。

我们现在用的C2C精度不足以继续细致分析,再改为使用 Intel 的 Memory Latency Checker 3.9(AMD 内部也是使用这个工具)进行该测试:

rqQnAvv.jpg!mobile

Memory Latency Checker 中有一个 –c2c 的测试开关,可以用于指定测试不同内核之间进行数据交换的时延。

它提供了两种测试模式,分别是 HITM 和 HIT,我们使用的指令分别类似于以下的样子:

mlc –c2c_latency -c0 -w1 -b200000 -C128

写入线程绑定到 1 号内核 1 上,在其 L2 cache 中对 128 KiB 的数据进行修改,然后数据传输到 0 号内核上,由于数据块处于 M 状态,因此嗅探响应会将它设定为 Hit-Modified 状态,然后数据块才会从 cache 传输到“请求者”。之后,控制权转回到做写入操作的 1 号内核,该内核会把操作窗口移动到参数 b 指定的缓存(大小为 200 KiB)中的另一个 128KiB 数据块上,然后重复上述的处理至完成。

和:

mlc –c2c_latency -c0 -w1 -b200000 -C128 -H

类似上面的操作,但是 1 号内核不做数据修改处理,它会绑定并读取参数 -b 指定的缓存到自己的 L2 Cache,然后将控制移交给 0 号内核做读取操作。此时参数 -b 指定的 200KiB 数据已经被读取至 1 号内核中,其状态被设置为 E 状态,嗅探响应会被设定为 Hit-Clean(HIT),数据块会从该 cache 传输到请求者(0 号内核)里。

从我们的测试来看,Zen 2 的 L2 cache 数据交换操作时延在 4 号到 7 号出现接近 300 个周期的时延,到了 Zen 3 这边,时延降低到了 100 周期的视频,现在的速度相当于是以前的 3 倍。

比较特别的是,Zen 3 的时延有一个特点,那就是第 0、2、4、6 号的数据交换时延是相对较快的,都在 90 周期以内(HITM 模式),然后 1、3、5、7 的时延会高一些,大约高 6 到 17 个周期,幅度还 20 个周期。相较而言,CometLake 的内核数据共享时延基本上都在 63 到 75 周期,幅度在 12 周期。

可以这么认为,在芯片级的内核间交换时延方面,AMD 已经有长足的进步,但是和 Intel 的最新处理器相比,仍然有一点差距。

内存频率影响

Zen 2内存存在一个甜点频率,其内存控制器频率存在一个和IF总线频率FLCK同步的问题,FCLK体质好的可以到1900MHz,那内存控制器也是运行1900MHz,内存就跑在3800MHz。(当然部分体质较差的U只能跑1866,那内存同步就是3733MHz)。如果内存频率超过3800MHz,那FLCK就会变成异步模式,频率为内存控制器频率的一半,虽然内存带宽上升,但IF总线的速度砍半,这样会直接导致跨CCX核心通讯性能大幅下降。因此Zen 2内存跑在4000、4266性能是不升反降,3800就是完美的甜点频率。

rYNbErE.jpg!mobile

Zen 3也是采用相同的设计,但FCLK上限从1800提升到了2000,这就意味着内存可以跑到4000MHz。经过我们实际测试,体质好的可以到2033MHz,则内存可以同步到4066MHz。我这4颗Zen 3虽然2033 FLCK可以点亮,但5900X/5950X会出现高负载重启的问题,实际5900X可用稳定运行在2000MHz,而5950X 2000都不能完全稳定,从我这手上的4颗初步看来核心数越高,FCLK就越难稳定。

fqQrUfe.jpg!mobileZZRrAzn.jpg!mobile

我们将Zen2/3还有Renoir 4750G进行内存带宽和延迟对比(内存设置参数为20-19-19-39),使用的是工具是AIDA 64 6.30。Zen 2的FCLK拐点是1900MHz,FLCK不能超过1900MHz,内存频率再高FLCK就是是半速。带宽带宽和内存延迟都不升反降。而Zen 3在同频相比Zen 2内存带宽差不多,但可以上到2033的FCLK,这样还是可以获得更大的带宽。内存延迟方面,在同频Zen 3相比Zen 2还是有10ns的优势。

另外5600X/5800X单CCD的型号内存写带宽是减半的,原因是是将写入带宽从CCD->IOD从32B/cyc降低到16B/cyc,而读取带宽保持在完全32B/cyc,这个和Zen 2是一样的。

Renoir没有采用chiplet分开分装,而是采用传统内存控制器和核心都是在一起的单封装,这样内存控制器和FLCK都是采用新工艺新设计可以上到更高的频率。但由于L3容量小,其内存带宽在同频略差于Zen2/3,尽在2000以上频率有少许优势,延迟方面的情况也差不多。

nMfEz2.jpg!mobile

Zen 3工艺方面现在并没什么定论,早期PPT写的是7nm+。TSMC 7nm改进工艺有两种,第一种是N7P,N7P是最开始7nm的工艺概率优化,大概可以在相同功耗下提升7%的性能,Zen 2在今年某个时间点频率性能大概好了0.2GHz,我一直就怀疑上了N7P。而N7+则是使用EUV的大改工艺,密度可以提高20%,同性能可以降低15%的功耗,或者在同功耗提升10%的性能。

Zen 3相比Zen 2在核心规模扩大的情况,频率大概还是提升0.2GHz的,这样的提升幅度还是比较明显。但官方资料仅仅写的是7nm工艺,并没有说明是DUV还是EUV。一般理解7nm+就应该是N7+。但至今anandtech对AMD CTO的采访中,Papermater说道:

MP: It is in fact the core is in the same 7nm node, meaning that the process design kit [the PDK] is the same. So if you look at the transistors, they have the same design guidelines from the fab. What happens of course in any semiconductor fabrication node is that they are able to make adjustments in the manufacturing process so that of course is what they’ve done, for yield improvements and such. For every quarter, the process variation is reduced over time. When you hear ‘minor variations’ of 7nm, that is what is being referred to.

Papermater大概意思就是说Zen 3还是使用相同的工艺节点,还是相同的工艺设计方案。不过工艺会在后续做小的优化改进,这个意思应该是说Zen 3还应该是7nm DUV。

f26JbmJ.jpg!mobile

再来看看我们的主角,Ryzen 5000系列CPU,依次是5600X/5800X/5900X/5950X,接口和封装没有任何变化。生产日期在20年36-38周,大概就是10月。

UjymAvM.jpg!mobile

Ryzen 5000系列相比3000系列相同定位的产品核心数量和缓存容量都没有变化,频率基本都有一点拉高。我们手头的5800X/5600X FCLK可以上2033,5900X是2000,5950X是1966,后面如果没有特别说明,就都是按这个FCLK设置进行测试。

B550还是X570?

Zen 3配套的芯片组并没有更新,高端依然是X570,再加上前两月发布并没多久的B550和A520。并且预期到明年B450也将支持,这个时间主要取决于主板厂商更新BIOS的速度。主板点亮需要AGESA combo V2 PI 1.0.8.0,注意这个仅仅是点亮,如果效能和功能都没大问题需要AGESA combo V2 PI 1.1.0.0以上版本。

QNJBVz6.jpg!mobile

不更新芯片组的主要原因是X570的规格在去年推出的时候就过于超前了,除开CPU直连的PCIE 4.0 16X和一组M2 4X Gen 2,X570芯片组整体也是由4X PCIE 4.0连接,下面还可以外挂M.2 4X Gen4和其他一堆接口。唯一的问题就是X570芯片组功耗太大,首发的X570芯片组上都加有风扇。

b2y63me.jpg!mobile

其实B550芯片组虽然其相比X570,南桥的连接从PCIE 4.0缩减到3.0,南桥下的M2不再是Gen 4,可扩展接口数量也有缩减,但其规格也高于Z490。

ey6bYjq.jpg!mobile

本次测试Zen 3全部4颗处理器,从5600X到5950X,对比组有Zen 2的3700X/3900X/3950X。和intel对应的10600K/10700K/10900K。

本次的测试主板是ROG的CROSSHAIR VIII DARK HERO和STRIX Z490-A GAMING。游戏测试部分为了使得CPU性能可以充分发挥,就直接顶到了RTX 3090,电源和散热也是使用的ROG全家桶。850W雷神虽然不太宽裕但也够用,而龙神360也基本代表通常散热方式的最高水平。

uAfaAzI.jpg!mobile

为了避免内存带宽成为瓶颈,我们选择的是TT的Toughram RGB DDR4 4400 8GBx2,采用三星特挑Bdie颗粒,intel平台小参数设置为19-19-19-39,而AMD平台设置为20-19-19-39。

玩家国度CROSSHAIR VIII DARK HERO解析

我们本次评测平台的主要主板是CROSSHAIR VIII DARK HERO,她是之前C8H的改版,大部分主板基本都没有Refresh的资格,之前基本只有X99/X299这样生命周期很长的型号有此待遇。

rayMNjM.jpg!mobile

DARK和原版C8H外观上的最大差别是原有的银色镜面改成了暗色镜面。但整体设计语言还是延续之前HERO系列一贯的设计,金属和玻璃材质的混合应用,再用45度的斜线进行切割。

nuiyIzU.jpg!mobile

C8DH相比Z490的M12H对比,虽然细节上有些差别,但设计语言的保持一致。

3QbYfi7.jpg!mobile

CPU接口部分,我们可以看见OPTIMEM III的标识,采用T型拓展,对2DIMM上高频有更好的优化。

6Zjeaar.jpg!mobilemIbAvyy.jpg!mobile

供电部分,由16个德州仪器的CSD95410RRB组成的7相供电,单个CSD95410RRB可以承担90A水平的电流,而之前老版C8H的IR3555是60A水平。

re2aeq3.jpg!mobile

供电控制器依然是ASP1405I,这个方案在之前多个高阶的Z490/X570上使用过,十分成熟的方案。

buiauyZ.jpg!mobile

C8DH的CPU供电为8+4 pin,由于Zen 3使用的是低功耗的7nm工艺,整体功耗基本不到200W,8+4 Pin可以提供432W安全功率就已经有十分充足的余量了。另外8Pin添加了ProCool金属外壳,这样可以降低端子的温度,进一步提升供电的稳定性。

rYnAVrn.jpg!mobile

CPU接口下M.2散热片也是采用的是金属和玻璃的混合材质,在深邃的黑之中下沉DARK HERO的亮白色LOGO,给人感觉十分有质感,甚至让人产生想舔一下的冲动。

67nueez.jpg!mobile

电源24pin旁边有电压测量点,虽然一般玩家用不上,但对于专业的极限超频玩家,相比软件的传感器读数,他们还是更为信任万用表LED上跳动的数字。24Pin左侧是前置USB 3.1 Gen2 Type-C接口,而右上是开关/重启物理按键。数字显示的Q-Code灯,在Debug上也能提供更为准确的信息,更好的定位问题,这对于我这样喜欢折腾的玩家很有用。

7v6jErY.jpg!mobile

CPU接口下M.2散热片也是采用的是金属和玻璃的混合材质,在深邃的黑之中下沉DARK HERO的亮白色LOGO,给人感觉十分有质感,甚至让人产生想舔一下的冲动。

7ni6fe6.jpg!mobile

底部基本延续了之前C8H的布局,除开AURA 12V和5V接口各一组,还有安全启动/快速重试、慢速启动按钮,还有LN2液氮模式跳线,这些功能是为高端发烧玩家定制,他们在极限超频时候,需要解禁主板BIOS不必要的禁锢,也需要反复的尝试和重置,这些小功能可以让他们折腾方便不少。

qqmYN3I.jpg!mobile

C8DH提供了3条全长的PCIE,第一条为全速16X,第二条为8X,第三条为4X,一二条都为CPU直连,如果同时使用,第一条会被降速到8X。但需要注意的是PCI 4.0 8X的带宽也等于3.0 16X的带宽,哪怕是RTX 3090带宽也是足够的。NVIDIA在安培之后取消了SLI,只能支持DX12或者Vulkan原生多卡,这就基本宣判了游戏多卡的死刑,NVLINK也没什么意义。但第二个PCIE就可以有其他玩法,C8DH支持PCIE拆分,就可以加装Hyper M. 2这样的子卡扩展M.2或者U.2储存,这样NVME储存扩展起来就不会太拘束。

euQVZzf.jpg!mobile

由于X570的规格过高,导致规模和功耗大,使得之前的X570南桥上都有风扇(如右上角小图的老版C8H),对于那些噪音敏感用户而言就有点难以接受。而新版的C8DH去掉了风扇,改成沟壑纵横的被动散热。

eYBBNzr.jpg!mobile

这个沟壑还是有明显深度的,可以增加散热表面积。

BBv2qui.jpg!mobile

散热片其下是巨大的X570南桥芯片。

UfUfy2q.jpg!mobile

厚实的PCH散热片,究竟他需要压制20W的X570南桥。散热片上面的镂空部分是败家之眼背光的透光孔。

vmi2ae.jpg!mobile

我们将SN850 2TB接在C8DH南桥下的M.2,运行CrystalDiskMark 7.0进行负载,连续运行3次(上图是第一次运行后),PCH的温度从53上升到70度,而WD SN850 2TB最高温度92度,PCH温度虽然比主动散热高,但还是可以接受。

JZ77rq6.jpg!mobile

考虑现在显卡巨大的厚度,LOGO的位置也被下移,试图使得败家之眼的光辉不至于被遮挡。但主板部门的同仁相比也没料到隔壁显卡部门做的TUF RTX 3080/3090 2.5槽位仅仅是起步,STRIX的2.7槽还等着你。

7NBnuu6.jpg!mobile

下部的M.2可以支持22110长尺寸是SSD,我们本次测试使用的主SSD是浦科特M9P Plus 512GB,虽然还是PCIE 3.0,但其实际应用环境真实性能还是优于现在大部分的PCIE 4.0 SSD。

IrIrUzn.jpg!mobile

C8DH提供了12V和5V AURA接口各两组,其实一组的确不太够用,在接水冷后,就不太好接风扇或者机箱,要再找一转多也比较麻烦。

iQJVVnm.jpg!mobile

C8DH将IO COVER的照明区域LOGO从HERO换成了ROG,你更喜欢那个?

Afy2YrI.jpg!mobile

C8DH后部IO还是和老版的C8H一样丰满,布局也一样,蓝色是4个USB 3.0,红色的是7个USB 3.2 Gen 2,还有一个Type-C的Gen 2,这样多的USB也是得益于X570芯片组的规格,PCIE Lanes可以随便挥霍。左侧的两个按钮是Clear CMOS和BIOS Flashback。对于我这样喜欢折腾的玩家,Clear CMOS就可以方便不少,特别是超频FLCK熄火的时候,就不再用下显卡扣电池。BIOS Flashback对于C8DH而言,估计很少有机会用的上,如果你之前是使用的Zen 2+老C8H,再更新BIOS之前就卖掉了旧CPU,但无法点亮Zen 3的情况下,BIOS Flashback无U更新BIOS就可以救你一命。当然这个功能已经下放,现在TUF B550都有,不再是ROG的专属。

QbiAVvY.jpg!mobile

网络连接方面双网卡配置为intel i211千兆+Realtek 8125CG 2.5Gb,上图较小的芯片就是intel i211。

Irqayyu.jpg!mobile

中间的则是Realtek 8125CG,这个是2.5Gb网卡。再加一个AX200 Wifi 6无线网卡,虽然intel有更新的AX201,但其主要是对Comet Lake PCH做成本优化,在性能和规格上并没什么差别。

3MjIray.jpg!mobile

再来看看BIOS方面,我们本次测试使用的是2402 测试BIOS,其AGESA combo是V2 PI 1.1.0.0,AGESA combo V2 PI 1.0.8.0以上就可以点亮Zen 3,但问题不少,到了AGESA combo V2 PI 1.1.0.0功能才比较完善,这个优化是很考研板商水平的。

ziqayuU.jpg!mobile

内存频率和FCLK设置部分,前面说到Zen 3 FCLK一般可以上到2000-2033,内存同步频率就是DDR4 4000-4066。目前C8DH 没有AI超频功能和SP分。

iyMfYf.jpg!mobile

CPU、内存、SoC、VDDG、SB等电压部分。如果你FCLK上到一定频率稳定性有问题,可以尝试加高SOC电压提升稳定性。

fIB7Vz3.jpg!mobile

PBO设置部分,PBO就可以理解是AMD官方的自动超频部分,相比手动超频更为灵活,特别是非全核情况有更好的BOOST表现。

yaQJBfa.jpg!mobile

Digi+供电部分设置,可以修改防掉压和供电响应控制等设置。

NJJBJvM.jpg!mobile

板载设备设置部分,C8DH支持PCIE拆分,可以将PCIE拆分成多个4X,如使用华硕之家的Hyper M.2卡,这样可以大幅提升NVME高性能储存的扩展能力。

A7jMjaV.jpg!mobile

其他BIOS工具功能方面,支持安全擦除和Armoury Crate功能。 Armoury Crate可以通过UEFI安装然后自动下载驱动和应用,而不用再去官网一个一个下载安装。

eUbiuuq.jpg!mobile

生产力测试

前面我们进行了大量的理论性能测试和分析,而后面的第二阶段测试则是基本基于用户的真实应用环境,反应不同处理器在真实应用中的性能。

CINEBENCH R20渲染性能测试

Cinebench R20可以说是个喜闻乐见的测试项目,虽然不是完全基于实际应用,但群众基础好,很多人用R20衡量处理器性能。我们测试R20除了测试性能,也用来分析各个处理器的多核和单核的频率稳定性和PBO的问题。

vaMfu2M.jpg!mobile

5600X默认全核心4.1GHz,单线程4.6GHz不到,开启PBO单核心可以到4.5GHz,单核心可以到4.8。5600X默认频率很保守,开启PBO后收益很大。

5800X默认全核心4.5GHz,开启PBO后也是4.5GHz,本身默认较高没有什么空间,开启PBO后单核心可以从4.7到4.9,实际游戏时候多核心轻载也可以到4.8GHz,虽然对满载没什么变化,但实际游戏还是有提升。

5900X开启PBO后全核心从4.3提升到4.4,这对于12核心来说已经非常难得,之前3900X开启PBO大概也就4GHz出头。单核心默认就可以到4.8,在开启PBO提升很小。

5950X全核心默认3.8,开启PBO可以到4.1,单核心情况和5900X差不多,基本没明显变化,本身大概就可以到4.9以上,已经十分难得了。

Zen 3相比Zen 2开启PBO后全核心频率大概高0.1-0.2GHz,而非满载Boost大概可以高0.2-0.3GHz,并且这样的Boost可以长期停留,而不是瞬时。

Keyshot渲染性能测试

本次测试除了CineBench R20,我们其他测试项目都是基于实际运行环境,这样能够更为真实的体现处理器的性能。intel处理器是有PL的设置,10900K/10700K在默认设置,连续全核心负载56秒内是没功耗限制的,可以全负载运行,但过了56秒,功率就会被限制在125W的TDP以内,频率和性能会大幅下降。但大家常用的测试软件,如鲁大师,Cinebench R20全核心负载不到56秒就结束了,因此这些软件并不能完全反映处理器的真实性能。而intel将PL从28秒拿到56秒,其实就有一定为跑分软件优化的嫌疑。

eEvQ3ij.jpg!mobile

Keyshot我们选择一个比较简单的室内装潢渲染图,这个完成时间需要15-20分钟,intel处理器大部分时间都是处于功耗限制状态。10900K开始是4.88GHz,功耗接近200W,温度80多(室温大概15度),但在56秒后就被限制125W。

5600X默认是76W 4.1GHz,开启PBO可以达到107W,差不多4.8GHz。5600X由于低功耗,温度也很低很舒服,默认54,PBO也才74,使用起来很舒服,使用百元风冷或者120水冷就可以解决。

5800X由于全核心默认和PBO差不多,都在4.5GHz,这个其实就是Zen 3全核心稳定的极限,温度已经90度,这还是使用龙神360水冷的情况下。即使是实际游戏,360水冷也在70度水平,5800X是一颗热情似火的U。

5900X和5950X全核心满载默认都和5800X一样,都在140W水平,但核心更多,平均每个核心的功耗和温度都更低,反而温度更低。5950X开启PBO全核心4.1GHz,功耗大概184W,温度大概80不到。

这里再顺带提提超频,5600X/5800X PBO全核心4.5,5900X PBO 4.4就已经极限,再高就需要加电压,但Zen 3本身1.45V+的负载电压已经灰烬,再加电压需要付出的代价需要成指数的提高。并且即使锁频4.5,但就没了4.8、4.9GHz的Boost,实际应用的体验和游戏性能反而都是下降的,因此传统意超频并没意义。而PBO可以依据用户的散热负载情况,自动选择最为合适的频率,这样可以获得更好的性能和稳定,同时在功耗和散热上需要付出也更好,同时实现难度也更低,对于用户也更为友好。

FFMPEG编码性能测试

我们使用FFMPEG测试处理器的视频编码/AVX性能。FFMPEG是一款开源的编码软件,它功能强大,用途广泛,大量用于视频网站和商业软件(比如Youtube 、OBS和iTunes),也是许多音频和视频格式的标准编码/解码实现。这个软件使用完全依靠命令行。我们选择一个Sony_4K_HDR_Camp.mp4 4K HEVC HDR的视频,使用ffmpeg -i Sony_4K_HDR_Camp.mp4 -c:v libx264 -crf 18 -c:a copy sony.mkv命令将视频从HEVC转到x264编码。FFMPEG能够很好的支持AVX/AVX2甚至AVX512等先进指令集。

6viqQjN.jpg!mobile

FFMPEG的性能测试我们发现Zen 3的Ryzen 9性能是有问题的,5900X相对于3900X的领先幅度还不到频率差别,5950X甚至落后3950X。具体原因我们注意到Zen 3 CCD2的后面8个核心16个线程利用率存在问题,而3900X/3950X则不存在这样的问题,8核心的Zen 3相比Zen 2同频大概快13%。我们使用FFMPEG版本是4.3.1,看来还需要等待开发者对于Zen 3进行进一步的优化。

7ZIP压缩性能测试

7ZIP是著名压缩软件,我们使用其自带benchmark测试多线程,这个测试项目主要是考量整数性能,分支性能和多核延展性。

VRnYZ3v.jpg!mobile

7ZIP是对核心数量极其敏感的,性能完全随核心数量同步增长。当然Zen 3的优势不仅仅是核心数量,其效能也让人赞叹。5600X 6核心可以赶上8核心的10700K,8核心的5800X可以赶上10核心的10900K,在7ZIP项目,AMD完成了对intel的越级挑战。

游戏性能测试

INFVJfI.jpg!mobile

在开始游戏性能测试之前,我要先说说CPU/GPU性能和游戏FPS的关系。游戏的FPS是由CPU和GPU性能的下限决定。画面(技术)越好,画质设置越高,FPS越低的游戏瓶颈就在GPU。如古墓丽影,荒野大镖客救赎2。这些游戏采用先进的图像技术,使得瓶颈基本都在GPU。

而那些画面(技术)越差,或者画质设置越低,FPS高的游戏,瓶颈往往在CPU。如英雄联盟、CSGO.。守望先锋。绝地求生则基本在两者之间,如果是使用的全最高画质,那瓶颈就在GPU,但如果使用3MAX 2K分辨率,或者更低画质或者分辨率那就个重CPU游戏。

判断是不是CPU瓶颈的方法,不是看游戏时候的CPU占用率,CPU占用低不代表CPU够用,而是需要反过来看GPU占用率,如果游戏的GPU占用率长期比较低,那就证明你CPU性能相比GPU更是性能的瓶颈。当然GPU一直满载也不是说CPU性能就完全够用,想要细致分析,就需要看CPU FPS和GPU FPS的概念。

极限竞速地平线4处理器性能测试

vmQ7naa.jpg!mobile

地平线4的引擎效率很高,其性能表现相对于画面而言十分的出色。我们设置全最高画质,4X MSAA进行测试。其性能统计黄色的是GPU FPS,蓝色的是CPU渲染FPS,实际游戏的 FPS是由CPU FPS和GPU FPS的下限决定的,在2K分辨率下蓝色的CPU FPS完全在下,实际FPS的橙线就是蓝点的描边,就说实际游戏的FPS是被CPU限制的。

Rrmaiy3.jpg!mobile

而在4K分辨率下瓶颈就回到GPU端,CPU FPS蓝线基本还是原来水平,但GPU FPS的黄线就大幅下降了,实际游戏的FPS就是GPU的FPS,性能99.5%的时间都是被GPU限制。

6jUvmqR.jpg!mobile

再来看看具体性能,在1080P分辨率下,CPU性能的瓶颈十分明显,低默认频率的i7和Zen2相比Zen 3和i9有20%以上的差距,10900K超频5GHz和Zen 3基本持平,在2K分辨率CPU的影响减小,到4K差距就很小了。

反恐精英:全球攻势

CSGO是采用的十几年前的Source引擎,还是采用的DX9 API,其对于显卡要求不高,但对于处理器性能极其敏感。有可能有人认为200FPS和300FPS并没什么差别,反正都比显示器的刷新率高,但CSER却对FPS有种几乎偏执的追求,依然认为越高越好。我们使用控制台的timedemo命令行进行测试,测试场景为Dust 2。由于CSGO的GPU需求和负载很低,完全不构成瓶颈,1080P到4K的性能差别几乎可以忽略,我们仅仅列出4K MAX 4X MSAA的性能。

zMNNbez.jpg!mobile

Zen 3的CSGO超过了400FPS大关,5800X相比10900K 5GHz大概有14%的性能优势,甚至5600X都要快于10900K 5GHz,相比Zen 2更是提升了1/3之上。CSGO虽然会使用多个核心,但其完全是考验的单线程性能,游戏性能不会随核心数的增加而增加。

vqimAbv.jpg!mobile

特别是现在ROG都已经推出360Hz刷新率的PG259QN,这又进一步的推高了对CPU FPS的性能需求。用上面CSGO的测试数据看,5GHz的10900K勉强可以达到平均360FPS,但FPS是波动的,平均360FPS就意味着Min FPS不能稳定在360,而Zen 3平均400以上的FPS就可以在更多的时候稳定在360FPS以上。

英雄联盟

英雄联盟可以说是国内群众基础最好的电脑游戏,其瓶颈也完全在CPU。在1080P分辨率下RTX 3090核心频率大概才500-600MHz,而在4K分辨率下,核心频率也仅为1000出头。

不少整机产品描述上,都宣传LOL的帧率可以到200-300FPS,其实这样的宣传都是严重夸大的,虽然在开局出生点可以达到200甚至300,但在后端激烈战斗的情况下帧率基本要下降一半,我们选择一个召唤师峡谷的多人游戏Replay进行回放,使用自动镜头,游戏会选择战斗激烈的场景进行展示,整个过程是精确重复的。我们选择18分钟的200秒使用Fraps进行测试,记录平均和最低FPS。

QBzU3yn.jpg!mobile

之前10900K默认166FPS,超频5GHz可以到180FPS,而Zen 2基本就140FPS水平。如果考虑minFPS,那5GHz 10900K和Zen 3就可以绝对稳定在144FPS以上。英雄联盟对于核心数完全不敏感,完全吃单核心性能,

问为什么少了5900X?我测试掉了,想起来以后LOL经过了一次大更新,之前作为基准的回放不能继续使用。

本次部分游戏测试还会附带对比视频,选择3950X/5800X和5GHz的10900K进行对比,让读者能够更为了解我们的测试场景,我们使用RTSS定制了OSD,显示CPU和GPU的频率、使用率、功耗和温度信息,当然还有FPS和Frametime,并带有实时的FPS曲线。(OSD对游戏性能有轻微影响,具体测试是不带OSD进行的)

知乎视频 www.zhihu.com feYriu.png!mobile

有可能会问为什么这两个对比,显卡频率、功耗,温度怎么差这么多,测试不准不公平吧。其实占用和频率低的就是GPU性能被 CPU限制,不能充分发挥。就如英雄联盟在1080P分辨率下,由于CPU瓶颈,RTX3080大概只能运行500-600MHz频率,即使改到4K,3950X和10900K,GPU也只能跑到1000-1300MHz,而5800X则可以跑到1.5-2GHz的频率,显卡能够运行在更高的频率,游戏也才能有更高的帧数。5800X在运行英雄联盟的时候基本可以稳定在4.8GHz以上,虽然RTSS会偶尔显示3.2GHz,这其实是核心切换软件读数的问题。

绝地求生

绝地求生相比17-18年巅峰时刻已经凉了不少,但实际还是找不出一个流行程度比吃鸡更好的射击类电竞游戏。大多玩家吃鸡一般不会设置全最高画质,而是一般设置成纹理、视野距离和抗锯齿最高,其他最低,这样的设置能够在画质和性能之间能够较好的平衡,同时画面也较为干净方便索敌。甚至还有一些玩家设置的更低。测试我们使用游戏回放erangel海岛图过程,使用Fraps记录游戏最后270秒的平均/最低FPS,最后的决赛圈有大量的战斗,并且伴随大量的手雷烟雾弹使用,可以说是相对极端的游戏负载。

e6jUbub.jpg!mobile

在2K分辨率下绝大多数时间是CPU瓶颈,但这个瓶颈并不像前面的CSGO和英雄联盟那样明显,5800X相比10900K大概有10FPS以上的优势,相比Zen 2更是提升了35%。而在4K分辨率,游戏FPS的瓶颈逐渐转型GPU,但Zen 3的平均帧依然有一定优势。4K分辨率的最低FPS,就是在烟雾弹中的时候,完全是GPU负载瓶颈,不同处理器大概只有1-2FPS的差别。

知乎视频 www.zhihu.com feYriu.png!mobile

绝地求生的CPU负载和多线程利用要比英雄联盟高,所以实际运行频率稍低,基本在4.75GHz左右,5800XT在战斗场景,如在烟雾弹中,或使用光学瞄具的时候FPS要低于10900K 5GHz,而在跑路和CAMP时候FPS更高,整体的FPS稳定性5800XT稍差。

侠盗猎车手V

GTA V虽然是PS3/Xbox 360世代的游戏,但其凭借丰富的线上游戏内容至今长盛不衰,也成为第一个从PS3跨到PS5的游戏。我们图像设置为最高(不包括高BIAN级TAI设置),4X MSAA,使用游戏自带的Benchmark进行测试,选用场景4的FPS进行比较。

JRv6ju3.jpg!mobile

GTAV的Zen 3相比10900K 1080P分辨率性能基本打平,但相比Zen 2和默认的i5/i7还是有10-20FPS的优势,2K分辨率的优势缩窄,到4K分辨率完全是GPU瓶颈,所有处理器大概就一两帧的差距。

古墓丽影暗影

古墓丽影暗影支持RTX,对于GPU有极高的性能需求,RTX 3090也要借助DLSS才能勉强达到平均60FPS以上。那是不是说明这样的游戏对于处理器性能就无所谓呢?

古墓也提供了类似的CPU/GPU性能统计功能,我们使用最高画质和RTX设定进行测试,1080P为SMAAT2X,而4K开启DLSS接管抗锯齿,使用游戏自带的Benchmak进行测试。

古墓的测试有三个场景,前两个场景的GPU负载很高,而第三个场景,特别是前板端负载相对较轻。在2080TI时代1080p分辨率,在第三个场景前端GPU轻的时候,Zen 2的CPU FPS低于GPU,存在CPU瓶颈,而10900K则没有,但RTX3080/3090进一步拉高了GPU FPS,这样就对CPU性能提出了更高的要求,10900K的CPU FPS也出现瓶颈了。

YJjyUb.jpg!mobile

古墓丽影暗影1080P测试高频的10900K CPU FPS稍高,但Zen 3实际游戏的FPS更高。Zen 2 GPU在第三个场景负载不满,明显的CPU瓶颈。

2MveEf.jpg!mobile 知乎视频 www.zhihu.com feYriu.png!mobile

10900K 5GHz的GPU受限比率更高,就是说CPU受限比例更低。但就是Zen 3的FPS更高,表面原因是Zen 3平台的GPU FPS更高,大概有9-10FPS的差距。我也猜想是PCI-E 4.0 VS 3.0的影响,于是将5800X定频4GHz,3.0相比4.0大概有3FPS,整体2%的性能差距。这个2%不足以弥补两者之间的性能的差距,也许还有其他什么因素影响着。

荒野大镖客救赎2

荒野大镖客救赎2画面可以说是所有游戏的最高水平,巨大的开放世界地图但又不缺乏细节,还有实时的时间和天气变化,虽然不支持RTX,但其动态的光照表现基本优于所有的RTX游戏,画面整体完全可以说无敌。当然这样的无敌也是需要代价的,是完全GPU重载游戏。 我们使用游戏自带的Benchmark进行测试,画面设置为通常设置最高TAA,(不包括高BIAN级TAI设置),。虽然游戏支持MSAA,但现在RTX 3090的性能并不足以流畅运行4K MSAA。

2MBVjaA.jpg!mobile

荒野大镖客救赎2的Benchmark存在一定的随机性,可能会对性能产生影响,我们测试会提出意外的测试(如撞人或者卡住之类)。在1080P分辨率,10900K还是有稍微优势,Zen3基本和10700K差不多,Zen 2特别是2CCD的Ryzen 9表现相对较差。不过到了2K/4K分辨率,瓶颈完全在GPU,测试成绩差别基本是随机性产生的误差。

全战特洛伊

CA推出的全战三国由于中国题材在国内大获成功,而其续作全战特洛伊又将战场带回到古欧洲的经典时代,讲述特洛伊木马屠城的故事。游戏需要表现千人同屏甚至万人同屏的巨大战争场面,对于CPU性能有极高的负载。本游戏是intel赞助游戏,针对多核心有极好的优化,最多可以充分利用16核心32线程。但这样特洛伊在核心数更多的AMD Ryzen 9上面有更佳的性能表现,我们甚至可以说intel是为他人做了嫁衣。

AZZJVvU.jpg!mobile

特洛伊可以将Ryzen 9 5950X的16核心32线程长期吃掉80%以上,甚至接近90%,这是我见过最吃CPU的游戏。(象棋围棋之类除外)

虽然特洛伊从任务管理器看对于核心数需求很恐怖,但实际性能和核心数并不太敏感,甚至在intel平台出现了核数越多,性能越低倒吸的现象,具体原因不得而知。特洛伊也是唯一一个Zen 2小胜Comet Lake的游戏,而Zen 3,特别是5800X相比Comet-Lake有20%以上的性能优势。

知乎视频 www.zhihu.com feYriu.png!mobile

从视频看10900K的GPU占用率更高,但从GPU功耗看,10900K平台的3090大概300-320W,而5800X运行在330-350W,实际负载更高。另外频率方面5800X在全核心80%占用的情况下,还是可以Boost到4.7GHz,相比Zen 2的4.3GHz不到水平还是高多了。

Zen 3游戏性能大幅提升是IPC和频率共同提高的作用结果,之前Zen 2的Boost机制有点一刀切,完全的单线程才能到4.6-4.7GHz,但这样的情况日常很难碰见,类似游戏这样的多核心低负载也只能4.25GHz的水平。intel的Boost机制主要是依靠TDP控制,10900K游戏也可以Boost到4.9-5GHz,而Zen 3的Boost也被放开,特别是在开启PBO后游戏时候,基本都可以有4.8GHz左右,甚至更高。

ye2iUvZ.jpg!mobile

新的Boost机制摒弃了传统的全核、单核BOOST的概念,而是依据动态的线程数进行调整,并综合考虑插座功率、VRM热限制、VRM电流限制等因素,以1ms为单位进行动态调节。在开启PBO后,会BOOST更高的频率,并对应调高电压,在最高Boost状态电压甚至会到1.45V以上。(看什么看,说的就是你,我官方超频加压都给你加好了)。由于PBO需要考量的不仅仅是处理器的温度功耗,也需要考察主板VRM热限制、VRM电流限制的因素,因此如果你想Boost的更高,那还是有必要选择一款供电规格更高的主板,就如本文评测是ROG CROSSHAIR DARK HERO,供电相数更多,单相供电的负载就越低,同时更高性能的供电,效率更好,发热量也会更低,这样才能Boost到更高的频率。

灵魂问题:Zen 3应该怎么买

Zen 3相比Skylake有更好的游戏性能,这个是毫无疑问的。但作为游戏玩家的你需要什么样的处理器,则需要考虑多个方面,这个是需要平衡的问题。

B3ArIvy.jpg!mobile

用户的需求是游戏的FPS要高于显示器的刷新率,而游戏的FPS是由GPU FPS和CPU FPS的下限决定的。

如战地V、大表哥、古墓这些顶级画面的3A,对于GPU的需求更为贪婪,在CPU出现瓶颈之前,GPU就先趴下了,只要不是低分辨率低画质的设定瓶颈一般在GPU FPS,这类游戏的FPS并不会高。提升GPU FPS可以通过升级GPU,降低分辨率和画质来实现。

正对于处理器性能敏感的反而是英雄联盟、CSGO守望这样系统要求不高的电竞游戏,在显卡只要不太差的情况下,GPU FPS都是够用的,更多限制的是你的CPU FPS。并且电竞游戏的用户可能对FPS的需求比较高,特别是在配有高刷新率的电竞显示器的情况下,他们对于游戏的目标FPS就更高。这种情况想要提升FPS就只能更换CPU,由于GPU本来就不是瓶颈,降低分辨率和画质也只能提高本身溢出的GPU FPS,而下限的CPU也不会有明显改善。

我在这里说几个典型情况。

英雄联盟1050TI大概就可以满足1080P GPU 144 FPS,1660就可以满足2K 144FPS,但要稳定144 CPU FPS 大概还是需要i5 K、i7或者Zen 3以上处理器。

PUBG GPU需求更高,1080P 60FPS需要RX580或者1660级别,1080P 144需要2060或者以上级别。2K 144大概需要2070S/3070以上,而4K 144大概需要3080/3090。(3MAX的画质设置)。在GPU性能可以满足的情况下,想要达到144的CPU FPS,还是需要要i5 K、i7或者Zen 3以上处理器。

而对于我这样,用旗舰显卡,开2K/4K分辨率最高玩3A的,FPS 60就可以满足,其实主要需求还是在GPU。但买得起RTX 3080/3090的主,对于处理器的预算自然也不会太吝啬。

当然上面说的是一般化组合,玩家的游戏应用需求和硬件配备千差万别,

Zen 3内部游戏性能对比的问题,游戏性能更好的是5800X和5600X,主要原因应该是这2个是单CCD处理器,并没跨CCD访问性能下降的问题。因此对于纯粹的游戏用户我们更为推荐5800X和5600X。而对于那些有生产力需求,但也玩游戏的混合用户,虽然5950X/5900X的游戏性能相比5800X略有下降,但基本还是优于10900K,还是可以满足需求的。并且后续Ryzen Master更新Zen 3游戏模式,优化游戏核心调度后,Ryzen 9的游戏性能还是有进一步提升的余地。

再来回头说说生产力方面,其实在生产力方面性能,intel其实连Zen 2就不够打,Zen 2用chiplet的方式使得核心数扩展变成更为容易。在普通桌面平台,Ring到头10C20T的10900K自然是无法打 12C/16C的Ryzen 9。即使在核心数相同的情况下,Zen 2有更多的Port资源,使得在频率更低的情况下,还是可以维持差不多性能。而现在Zen 3 IPC相比Zen 2高了20%,也差不多比Skylake 也高了20%,intel自然是无法抗衡。

即使是HEDT平台10980XE,也仅有18核心,基本和3950X一个级别,自然也打不过16核心的5950X,更不用说Zen 3的HEDT。目前intel在已经公开的Roadmap上,在2021年结束前都没有新的HEDT,看来有些放弃治疗了。

全面的胜利

Fb6zYbN.jpg!mobile

AMD在Zen 3的发布会上宣传,AMD是1080p游戏的领先者,是核心架构IPC的领先者,是能效的领先者,是单线程性能的领先者,是多线程的领先者,是性价比的领先者,是向后兼容性的领先者。这次AMD除了性价比领先者,基本都没吹牛逼。这些领先最为关键的是核心架构IPC的领先。

在微架构层次上可以这样说,Zen是AMD在2017年做了个haswell水平的东西,Zen 2则是在在2019年做出了Skylake,而现在的Zen 3则是领先Skylake一代了。要知道Skylake是intel从2016年就开始使用的架构,缝缝补补这么多年下来。Intel新的IP设计其实早就完成,但这些设计基本都是基于10nm,但10nm一拖再拖,使得Skylake需要一直作为顶梁柱。很明显intel懈怠了,就如龟兔赛跑的兔一样。

q6jYru2.jpg!mobile

从现在公开的资料看,intel将在明年年初发布Rocket Lake-S,RKL-S采用的Cypress Cove IPC相比现在的Skylake大约提升2位数百分比(10%还是99%?),集显提升50%(有人在乎?) 独显和直连M2为PCIE 4.0(在2021年终于赶上2019年发布的X570),增加AVX-512和VNNI深度学习功能(消费级用户有人关心?)。即使这样,乐观估计也仅仅是持平Zen 3水平,此外RKL-S最多只有8核心,并且还是采用现在祖传的14nm工艺,但核心规模更大,这样的频率和功耗就不容乐观。Intel真正反击则要靠明年下半年的Alder Lake,Golden Cove更高的IPC,PCIE 5.0+DDR5.不过其核心是采用8+8的Big.Little,8个Gracemont小核心从现在发布的EVO系列产品看,大概也就是低频Skylake Pentium的水平。并且等到Alder Lake出来,Zen 4估计也差不多了。

本部分是小标题是Zen 3应该怎么买,而不是值不值得买,因为从前面的测试结果看,值得买是毫无疑问的。

uii6Bb6.jpg!mobile

这次5600X/5800X/5900X/5950X官方售价相比Zen 2都提高了50美元,这个涨幅对于基价高的R9还好,但对于基价比较低的R5/R7就有点难受,特别是对于5600X,价格从249涨到299,硬是涨了1/5,基本逼近i7 10700的价位。这样的价位,对于一些消费者而言就可能有点难以接受,即使可以接受,但也觉得不香了。

IbquArq.jpg!mobile

我在Chiphell发了个用户购买意向投票调查,有超过1000个用户参与,大部分用户都倾向于购买5950X/5900X,特别是意向购买5900X的的用户超过1/3,5950X也接近20%,而5600X意向购买大概只有15%,产生这样比例的原因还是AMD的价格策略,5900X单个核心的平均价格最低性价比最高。而且追新的用户消费能力往往比较强,已经初步展现出2005-2006年A64时代用户群高端化的端倪。

5600X现在官价2129,这个价格高于散片的10700F。但5600X可以提供比10900K更好的单线程性能和游戏性能,多线程生产力性能也不会比10700差,虽然价格比之前3600X贵了不少,其实还是有购买价值的。5600X再之下的价位就还是依靠Zen 2支撑。现在10600KF京东盒装仅为1299,这个价格很明显是被逼出来的。

5800X 3199的官价相比10700KF要贵600,其面对的不仅是10700K,而是2999的10850K,10850K的产品思路比较类似NVIDIA的2070 Super,就是将高一档次的产品稍微降低规格,卖到低一个级别的价位,这样不至于直接破坏原有的渠道价格体系。不过我们需要记住5800X是最强的游戏处理器,如果你和我一样就是个臭玩游戏的,5800X就是最佳选择。

5900X单个核心的平均价格最低,性价比最高,也是目前人气最高的型号,其4099定位和售价略微高于10900K。原有Zen 2或者10700K/10900K用户已经用了8C/10C,再升级总不能核心数越变越少,但5950X又有点贵,那5900X刚刚好,不少选择5900X的大概都是这样的心理。

5950X intel方面没有可以对位的产品,6049的价格相比3950X大概高了800。16C32T是最为合适有生产力需求的玩家,5950X是普通桌面平台最强的生产力处理器(不包括TRX40 HEDT平台),对于生产力用户,处理器是生成工具,更快的处理器就意味着更高的生产效率,能够赚更多的钱,因此6000的售价他们也不会吝啬。并且5950X依然还是可以提供十分优秀的游戏性能,这对于生产力为主,但也偶尔玩玩游戏的用户也是很有吸引力的。

当然,上面说的都是官方报价,实际淘宝渠道5600X/5800X差不多已经可以做到了1899/2899,如果买板+U套装还可以更低。但这次AMD的产品价位是明显高于intel的。但这样的高价,对于AMD而言也并不是第一次。对于玩硬件DIY有一定资历的玩家,应该对Athlon 64时代AMD的价格策略还是有深刻印象。

UVzEvu2.jpg!mobile

A64时代,AMD可以说全面吊打Netbrust的P4,凭借真双核,64位,无论是商用,生产力,还是游戏性能全面吊打,还有独家的SLI多卡支持,专为发烧玩家定制。

uyUNzeA.jpg!mobile

在当年和现在5900/5950定位类似的大概就要4000-6000,看上去和现在定价差不多,当然你需要考虑到这是2006年,货币购买力和现在有本质差别。并且AMD还开创性的搞了一个FX旗舰系列,售价可达万元水平。估计后面皮衣黄的Titan系列的产品定位就是受到AMD FX系列的启发。

AMD在产品性能绝对占优的情况下,价格策略就会比较膨胀,2005-2006年就是这样(当然再蹦跶不了几个月就被扣肉打回原形)。而现在又似乎Zen 3又让AMD再次回到有资格蹦跶的时代,价格又再次可以膨胀起来。你想想,现在可以多花一些买到intel下一代水平的产品,对于用户而言还是可以接受,因此AMD现在的确有这个膨胀的资格。

最后的购买建议:

强调一次,AMD Zen 3相较intel的Skylake现在是代差,这样代差的就如F-22打Su 27,J20打F-15一样,完全是全方面的碾压。在2000元以上价位,在现在的时间节点intel是没任何购买价值的,现在不选择Zen 3的唯一理由就是预算不够。

当然,你要明白,Zen3现在代差战胜的Skylake是2013年设计冻结,2015年就量产的架构,并不是太值得夸耀的。Zen 3其实并不是AMD做的太好,而是intel挤牙膏太怠情而已。intel怠情的核心原因是大多数新IP都是在10nm上开发,但高性能的10nm工艺慢于预期,再加上前些年AMD不给力。而大规模更换制程需要数以百亿美元的投入,这样会大幅降低利润率,intel自然也不慌不忙的想把14nm多利用几年,更长时间的停留在舒适区里。但现在Zen 3发力,使得intel不再敢继续怠情了,从现在intel和AMD公布的roadmap看,后续处理器架构迭代升级的速度会大大加快,两家都不可能像Skylake那样一个架构用5-6年,次次挤牙膏,后面玩家将迎来CPU发展的黄金时代。

6fmq2yy.jpg!mobile

至于Zen主板平台选择问题,B550和X570是市场定位不单纯是中端和高端的差别问题,其实也有很多高规格的B550,其在供电规模和功能方面好不逊色于类似价位的X570。当然这个是B550快马和X570中马比,完全同系列定位的X570还是要更为昂贵。X570相对B550的优势,在于接口扩展性方面,到PCH是PCIE 4X 4.0,更大带宽能够升级南桥下的M.2 NVME 4X到4.0,能够扩展更多的USB 3.1 Gen 2,更多的SATA。如果你没有太多扩展需求,特别是存储扩展需求,其实B550就够用,即使是你选择5950X,类似ROG STRIX B550-E GAMING这样高规格B550也完全没问题,如果你希望有更好的扩展能力,如双路GPU进行深度学习,或者用PCIE拆分扩展更多的NVME,那X570还是更好选择,就如我们本次评测的CROSSHAIR VIII DARK HERO。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK