amd b450芯片组世界观︱当神话破灭,AMD的粉丝将看清怎样的事实

博弈的艺术 AMD RYZEN 7锐龙处理器深度测试
编者按:作为AMD粉丝精神领袖,Pro-A大师在本文约稿时就宣称:别人会写的内容,我不写。别人跑过的测试,我不跑。别人写透写明白的内容,我不写。于是有了本文。 只要你稍微关注PC硬件的发展,就不难发现关于AMD翻身作主的论调时不时就会出现。这样论调出现的时候,往往还伴随AMD即将问世新品的各种谣言。从桑德斯时代开始,AMD就从未停止过对Intel的挑战。尽管几十年的争夺并没有让AMD占据上风,但在RYZEN发布这个重要时刻,我们依然有必要回顾RYZEN的前世今生,向处理器行业的孤胆枪手致敬。 &从K7到RYZEN 永不妥协的博弈 &1999,速龙初试 &作为曾经Intel的代工厂,AMD真正独立自助获得完整的CPU架构是从K7开始的。在此之前,486DX、5X86、K6、K6-2等产品都采用了和Intel一致的前端总线以及CPU插槽。 由于Intel在奔腾2处理器上引入了Slot 1插槽并完全封闭了前端总线设计,迫使AMD第一次从头开始设计一款CPU。在这样的情况下由DEC Alpha 21264架构衍生而来的K7横空出世。AMD将K7处理器命名为了Athlon,由此拉开了速龙品牌长达10年的生命周期。
在K7上,AMD直接沿用了来自DEC Alpha 21264架构的EV6总线,并且使用了0.25微米工艺。首发代号Pluto的Athlon处理器第一次在综合性能上全面超越初代奔腾3处理器。AMD Athlon的异军突起并没有完全撼动英特尔王朝,但在两强争夺下Cyrix、IDT、全美达等纷纷成为炮灰,直接导致x86处理器进入了两强争霸时代。
“在芯片设计的核心技术上,我们同英特尔旗鼓相当。“——AMD时任CEO杰里&桑德斯(Jerry Sanders) 2003,大锤崛起 通过K7,AMD第一次获得了完整的CPU架构和总线设计经验。到了K7的继任者K8上,AMD显然需要更进一步。尽管代号Hammer(大锤)的K8处理器在微架构上与K7一脉相承,但却突破性的将内存控制器放在了CPU内部,直接消除了前端总线瓶颈。而X86-64的引入,也让X86的4GB内存寻址瓶颈之争尘埃落定。 在K8身上,AMD充分展现了以小博大的智慧——通过极低成本的方式在x86平台上引入了64位支持,彻底堵死了英特尔IA-64安腾的桌面征途。同时K8桌面处理器Athlon64还将对手Intel Pentium 4处理器逼向了死角。由于Intel 90纳米工艺撞墙,Pentium 4处理器止步于4GHz,最终未能取得对Athlon 64的胜利。时任Intel CEO的贝瑞特也被迫下跪道歉。
时至今日,包括Windows在内的许多软件都对X86实现64位支持的方法统称为AMD64或X64,而不是Intel被迫跟进的EM64T。K8处理器的大获成功也让AMD从2003年起进入了前所未有的鼎盛时期。
“回首过去5年,计算领域的每一项重大创新都来自AMD,没有一项来自英特尔。”——AMD时任CEO鲁毅智 (Hector Ruiz) 2006,收购冶天 &一旦你在某个业务上获得成功,最简单的方法是复制这种成功到其他领域。Intel在很早以前就拥有了图形芯片设计和制造能力,在NVIDIA诞生以前,Intel i740图形芯片甚至一度称霸市场。直到今天,Intel依然牢牢占据图形芯片市场70%以上的份额。 在K8获得成功之后,Intel开始通过Core 2 Duo处理器扭转战局。此时的AMD认为除了处理器,图形芯片的设计制造整合能力也至关重要。日AMD斥资54亿美元收购了ATI冶天科技,由此获得了高端GPU、集成图形核心IGP,移动GPU的设计和生产能力。并迅速推出了集成显卡的AMD K8主板芯片组Radeon IGP。 小说中盖茨比最终无法赢取白富美,短暂辉煌的AMD迅速遭遇了Intel Core 2 Duo、Intel Core 2 Quad的反扑,CPU、GPU制霸梦想也随之破灭。更要命的是,收购ATI带来的巨额投资很快会遭遇报应,让AMD跌入深渊。
&“我们已经是这个领域名副其实的领导者。”——ATI冶天科技创始人、前董事长、CEO何国源 2009,断臂求生 &K7开始自力更生,K8翻身作主,收购ATi获得GPU设计制造能力,但挑战者AMD的营收依然远不日老对手英特尔。收购ATI的54亿美元几乎耗尽了K7、K8竞争优势积攒下来的家底。随后AMD遭遇了英特尔全方位的产品反扑和价格战。AMD股票遭遇了断崖式下跌——AMD股票价格从日的40.54美元下跌到了日的2.03元,股市的剧烈波动迫使AMD断臂求生。 日,在AMD股价达到历史最低点的一个月后,时任AMD CEO的鲁毅智依然决定将旗下的晶圆制造厂卖给阿布扎比先进技术投资公司( ,Advanced Technology Investment Company)。ATIC买下AMD晶圆厂之后,将其命名为GLOBAL FOUNDRIES(格罗方德)。至此,AMD创始人,号称硅谷牛仔的桑德斯再也无法自豪的宣称有Fab才算真男人了。
在出售Fab同时,AMD还将旗下移动图形芯片业务Imageon出售给了高通公司,随后高通在Imageon基础上拿出了第一代Adreno GPU。时至今日高通Adreno GPU已经制霸了移动市场,市场规模远超x86 CPU。 在断臂求生的同时,AMD在CPU研发上也开始畏首畏脚。曾经代号K8L的CPU被AMD强行更改代号为K10。并在最后的又更名为AMD 10h(第10代处理器架构)。尽管最终奕龙Phenom相对Ahtlon64处理器有不少提升,但随后还是被英特尔代号Nehalem的Core i7处理器打得满地找牙。被AMD寄予厚望的融合CPU和GPU的FUSION计划,也因为Intel凭借海量生产能力买处理器送内置GPU的策略彻底破产。从2009年开始,AMD被迫不断收缩,将中端以上处理器市场拱手相让。究竟没有没比卖掉Fab和Imageon更好的求生之道?收购ATI是不是真的打开了潘多拉魔盒?至今依然争议不断。
“如果和阿布扎比的交易没有成功,AMD就无法生存下来。” ——AMD时任CEO鲁毅智(Hector Ruiz) &2011,误入歧途 &从AMD K7开始到K10,我们都可以深刻看到Jim Keller以及其团队从DEC Alpha带来的大量传承。2008年,整个处理器行业开始广泛讨论多线程的未来究竟是CMT还是SMP/SMT,Intel毫无意外的在X86上选择了SMP+SMT,通过超线程(SMT)、增加相同架构的处理器核心(SMP)来提升处理器的多线程处理能力。而AMD似乎从CMT上看到了弯道超车的机会。代号推土机Bulldozer的AMD Phenom继任者抛弃了K7~K10的代号,直接以推土机、打桩机等工程机械命名。 事实上推土机并非AMD临时起意,根据AMD内部人士透露,推土机这样的CMT架构处理器在AMD内部已经研究许久后放弃,之所以在K10之后又拿来推向市场,除了受到同是CMT架构的SUN UtraSparc T1处理器鼓励外,还看重了CMT处理器更小面积更低成本的优势。
和任何其他X86处理器不同,AMD推土机架构以及后来的打桩机、挖掘机架构都采用了基于CMT理念的单处理多模块设计。在AMD推土机内部,每2个整数执行单元才配有1个浮点处理单元,同时2个浮点单元还需共享解码器和调度器。AMD的理由是日常PC应用有80%的运算是整数,只有20%的运算是浮点。随着GPU的发展,以后所有浮点运算都有可能卸载到GPU上。 2个整数单元共享1个浮点运算单元的设计,让AMD推土机上来就宣称自己是首个8核心桌面处理器,而在实际表现上功耗更大的推土机被4核心8线程的Core i7 2600K完全压制。许多消费者甚至将AMD告上法庭,认为其宣称的8核心处理器存在欺诈。理想很丰满,现实很骨干,同样采用CMT架构的SUN UltraSPARC T1遭遇滑铁卢直接导致SUN破产保护,AMD选择的CMT道路也走进了死胡同。
“AMD是说到做到的公司。” ——AMD时任CEO Rory Read 2017,来去之间 从2007年开始,AMD就遭遇了英特尔的全面打压。推土机选用了CMT架构更是断送了随后多年的反击机会。从2007年开始,AMD已经的生存空间在迅速缩小。产品竞争力也日渐下降。I3秒全家的场景不仅出现在段子里,还在现实中天天上演。
推土机彻底失败后,AMD找回处理器架构老将Jim Keller。Jim Keller是CPU设计领域天神Daniel W. Dobberpuhl的嫡传弟子,Daniel设计的DEC Alpha(ALPHA ISA)、StrongARM(ARM ISA)、PWRficient(Power ISA)处理器架构至今依然深刻的影响整个处理器行业。 1998年前Jim Keller还在DEC工作,参与设计了Alpha 处理器,为处理器设计积累了宝贵的经验。然后其在1998年加入了AMD,首先是小试牛刀,参与设计了K7设计,然后又主导了K8微架构的设计,而x86-64指令集和HyperTransport总线技术则是K8微架构的副产品。毫无疑问Jim Keller的设计将AMD带到了巅峰,改变了PC CPU业界的力量对比格局, 既然已经到了巅峰,英雄需要功成身退。在99年K8设计大体完成之时,产品上市之前,Jim Keller离开了AMD,追随Daniel W. Dobberpuhl加入SiByte&研究基于MIPS的Gbps网路接口界面,2000年SiByte&被博通(Boardcom)收购,他出任首席技术官到2004年。 随后Daniel W. Dobberpuhl于2003年创办P.A Semi,Jim Keller在2004年加入了P.A. Semi,出任工程技术副总,在2008年Apple为了增强自己的芯片研发能力,花费278亿美元高价收购了P.A. Semi这家无晶圆厂的轻资产公司,很大程度就是为了收购以Daniel W. Dobberpuhl、Jim Keller为核心的研发团队。
Jim Keller和他的设计团队也不负众望,为Apple设计了A4/A5 SoC,让Apple摆脱了对三星蜂鸟处理器的依赖。Jim Keller团队在设计A4/A5 SoC的同时顺带将处理器从标准ARM Cortex A8微架构迁移到Apple自主微架构SWIFT,使其在拥有更好的性能/能效比。虽然iPhone成功的核心是卓绝的工业设计、交互设计和生态,但Daniel W. Dobberpuhl和Jim Keller主导的SoC也是立下了汗马功劳。 2012年,Jim Keller毅然离开了收入颇丰的Apple,又再次回到老东家AMD的怀抱。他就像AMD的救世英雄一样,担负起全新微架构处理器的开发,这个全新架构就是Zen,除了Zen,Jim Keller还主导了AMD的ARM64架构K12的开发。 2016 年初,Zen的架构已经基本定型,Jim Keller就如一个打完胜仗的将军,再次隐退,从AMD离职,加入Tesla,出任自动驾驶硬件部门的工程副总,在全新的领域开始自己新的征途。Zen的后续扫尾工作则交给了CTO Mark Papermaster(纸面大师……)
ZEN的诞生我们不能仅仅记得领袖Jim Keller,还有更多基层的Staff,如左前的Mike Clark, 团队Leader Suzanne Plummer,后排从左到右依次是 Teja Singh, Lyndal Curry, Mike Tuuk, Farhan Rahman, Andy Halliday, Matt Crum, Mike Bates 和Joshua Bell,他们的工作也同样值得尊敬和赞美。
“随着我们步入2017年,AMD做好了充分准备,在未来十多年中,将按时推出最强的高性能计算和图形产品组合。”——现任AMD CEO Lisa Su苏姿丰 禅,万物的平衡 所谓的微架构(microarchitecture),是指 CPU 或者芯片中算术、逻辑、数据传输等单元的设计,相较而言,大家时常提起的架构在计算机科学中其实是指指令集(ISA)。微架构和硬件(具体的物理设计、封装技术等)是架构实现的两个 层面)——例如 x86 是架构,Zen 是支持当前 x86 指令集及扩展指令的微架构,RYZEN 是 Zen 的硬件实现。 按照 AMD 的资料,Zen 最大的变化是摒弃了 Bulldozer 引入的 CMT(集簇式多线程),转而采用 Intel 的 SMT 多线程技术,如果你经历过当年的 K8 vs P4 之争,相信在看到 Zen 的时候或多或少都有点时光错乱的感觉。 CMT 并非 AMD 独创,更早之前由 Sun (后被 Oracle 收购)推出的 UltraSPARC T 系列(代号 Niagara 或者说尼亚加拉),就是 CMT 处理器。它的单核性能非常弱(2007 年发布的 UltraSparc T2 在单核性能上只是相当于 90 年代早期的水平),CMT 玩的套路就是想凭借大量低耗电弱核的弱核来和传统强核处理器抗衡。 Sun 的 T 系列从设计伊始就是完全冲着低功耗服务器而来,主打多内核、大吞吐、高周边集成,而 AMD 的主要市场还是在桌面上,Bulldozer 的设计理念并不符合桌面市场的应用需求,加上一系列的产品实现失误,Bulldozer 及其衍生产品是碰了一鼻子灰,导致 AMD 不仅丧失了桌面市场连带服务器市场也统统沦陷。 Bulldozer 系列的失败是多方面(例如包括 cache 速度、耗电等具体的产品实现、周边配套、产品策略、软件生态等)的,但是 CMT 被认为是最大问题所在,最后 AMD 还为此被人告上法院说其有诈骗之嫌。 下面先让我们看看过去 10 年里 AMD 处理器的微架构简图(简图就是指减少了部分单元的绘制,因此并非 100% 精确,例如分支预测单元在 Bulldozer、Steamroller 以及 Zen 里都是脱耦式设计,也就是和 L1 指令高速缓存并不直接相连),透过这几张图我们可以大致了解 Zen 的变化。
AMD 的 Bulldozer(推土机,2011 年) 属于 K10 微架构的接替者,它衍生了三个后续的微架构,分别是 Piledriver(打桩机,2012 年)、Steamroller(蒸汽压路机,2014 年)、Excavator(挖掘机,2015 年)。
Bulldozer 以及其后的三个衍生微架构同属于 AMD 的 Family 15h 系列,其中 Bulldozer 系列的 CPUID 型号编码为 00h-01h,Piledriver 系列是 02h 和 10h-1Fh,Steamroller 系列是 30h-3Fh,Excavator 系列有 60h-6Fh 以及 70h-7Fh。 Bulldozer 和 Piledriver 的微架构基本相同,后者主要是增强了指令集的支持以及个别单元的增强;而 Steamroller 则是 Bulldozer 的真正改进版,例如: Steemroller CMT 模块内有两个 4 路 x86 解码器,解码器不再共享以提高单线程性能; Steamroller 在解码器后引入了 loop buffer(循环缓存器),里面存放已解码的循环微操作可跨过解码器,只要循环内的指令不超过 4 条,Steamroller 就可以在一个周期内完成一次迭代,不过这样的技术在 Intel 2004 年代号 Dothan 的微架构版 Pentium M 上已经引入; 整数指令调度器的条目数(或者说项数)从 Bulldozer 的 40 条微操作增加到 48 条(浮点指令调度器维持在 60 条),可提升乱序执行的可调度微操作数量; 由于减少了浮点单元,因此 Steamroller 牺牲了一些浮点吞吐性能。 相较之下,Zen 微架构采用了 SMT 多线程技术,每个内核都有完全独立的资源(例如 L1/L2 高速缓存、分支预测器、微操作高速缓存、浮点单元等),在拥有比 K8/K10 更多的资源情况下,SMT 技术可以确保有效使用这些资源,下面这个简表反映了 Zen 微架构的主要改进点。
& Zen 这个名字直译过来就是“禅”,据闻是由 AMD 的高级院士及领衔架构师 Michael Clark 选定,其内在含义是微处理器中万物的平衡:晶体管配置/管芯面积、时钟/频率约束、电力约束、新指令等诸多因素的平衡实现。 无独有偶的是,华硕公司也有采用 Zen 来命名的产品,例如 ZenBook,同样是取“优雅平衡”之意。 在内核方面,Zen 引入了 &Op Cache(微操作高速缓存),该模块可以有效提升大多数指令流性能并且绕过潜在的大量重复性长周期操作。更大的微操作派发、更大的结果回退、更大的调度器、更好的分支预测,使得 Zen 可以维持更持久的高吞吐率并以最高效的序列实现乱序执行。Zen 引入的硬件双线程以及能让功能单元保持充分利用的全序列化同样会提升多线程应用的性能。 在高速缓存方面,Zen 拥有更快的预拾取器,确保线程可以高速缓存中获得所需的数据。Bulldozer 时代最被诟病的问题就是高速缓存子系统,这次 AMD 表示 Zen 的 L1-L2 Cache 带宽提升了一倍,L3 则是提升至 5 倍。 AMD 在 2015 年推出了基于 Excavator 微架构的 Carrizo APU,该处理器采用了大量激进的节电措施,Zen 也引入了这样的节电措施甚至在更多的供电平面上采用,例如其中的前端(拾取、解码等工位)以及后端都能按需实现门控,例如 &Op Cache、栈操作引擎、传送指令消除(透过调整指向寄存器的指针而非以往那样透过高耗电的调度器执行 Move 指令)。
上图是 WikiChip 提供的 Zen 微架构细节图,基本上是按照 AMD 在 2016 年第 28 届 Hotchips 技术大会上公布的资料绘制,类似的版本还有后藤弘茂在 pcwatch 上绘制的版本。 从上图可以看出,Zen 采用的分支预测器和 Bulldozer 类似,采用脱耦式设计(分支预测器与指令高速缓存没有直接链接),它的每个 BTB(分支目标缓存,存放着一条分支之后下一条指令的预测地址,让 CPU 可以在无需进行计算跳转地址的情况下知道要跳转的地址,直接执行载入指令,简单来说就是为了减少分支预测失误导致的性能惩罚。不过如果出错的话,BTB 会被刷新,所有的指令都被清空,重新执行载入操作)条目存放有两个分支,但是具体多少条目目前尚未有公开的资料。 可以参考的是,Bulldozer 的 L1 BTB 具备 128 组 4 路条目,合计 512 条目;L2 BTB Bulldozer 是 1024 组 5 路条目,合计 5120 个条目,至于 Steamroller 的 L2 BTB 被认为合计大约 10240 个条目。当然,Zen 现在是每个内核都有自己的分支预测器,而上一代则是两个内核共享一个预测器。 Zen 的指令调度器采用整数、浮点分离式设计,这是 K7 以来就一直秉承的风格(AMD K6 以及现在的 Intel 处理器是整数浮点都是同一个调度器),其中整数调度器的指令或者说微操作数重排序缓存(I-ROB)有 6*14 = 84 个条目(Steamroller 是 48 个,Bulldozer 是 40 个),重命名寄存器规模是 168 个;浮点调度器的重排序缓存也从 Steamroller 的 60 个增加到 96 个。 Zen 可以每个周期实现 8 个运算结果返回或者说写回,达到 Steamroller 的两倍。 Zen 微架构探究——前端(Front-End)
对现在的 CPU 来说,所谓的前端(front-end)就是指流水线中取指(fetch)、解码(decode)、分发(dispatch)三个阶段,其中取指包含的单元一般有 L1 指令高速缓存、TLB(转址旁路缓存器)、分支预测器等。 取指 前面提到 Zen 采用脱耦式的分支预测器,预测器并不直接挂到代码或者说指令高速缓存,这样的好处是可以对即将到来的指令指针进行推测将其存放到一个队列中,同时也能嗅探出直接和间接目标。 前面提到,AMD 并未透露 Zen 的分支目标缓存(BTB)大小,只是说它属于大 BTB,每个条目可存放两个分支。 分支预测器中的转址旁路缓存(TLB)会存放最近的物理与虚拟内存地址的转译,用来就缩短载入时延,Zen 的 TLB 分为指令 TLB(ITLB,见上图)和数据 TLB(DTLB,稍后会介绍)。 指令 TLB 采用了三级层次,其中 8 条目的 L0 以及 64 条目 L1 支持任意页面大小,而 512 条目的 L2 TLB 就支持 4KiB 和 25KiB 大小的页面但是不支持 1GiB 的页面。 TLB 对性能的影响不容小觑,当年 AMD Phenom 的 B2 版本存在一个 TLB 瑕疵,为此 AMD 弄了个软件补丁来修复这个问题,但是性能会下降 10% 到 30%,直到后来 B3 版才彻底修正了这个问题。 在取指阶段时,如果指令是最近被使用过的,就会配上一个微标签并由微操作高速缓存(&Op-Cache)设定,否则的话,该指令会被放置在指令高速缓存中以备下一步的解码处理。 其他指令需要透过 L/S 单元放置以便在接下来的周期执行,L1 指令高速缓存可以以每个周期 32 个字节的带宽从 L2 高速缓存获得这些指令。 解码及分发 指令高速缓存接下来会将代码发送至解码器,后者最快可以实现每个周期四条 x86 指令的解码。解码器可以在快速路径里将微操作进行融合处理,如此一来虽然传输到微操作队列(&Op Queue)里是一条微操作但是实际上可能是两条指令组合而成,但是这些微操作会在抵达调度器后,重新拆开成两条微操作。这样的目的是让微操作队列可以塞更多的微操作从而尽可能提高吞吐能力。 栈引擎(Stack Engine)位于微操作队列和分发器(Dispatch)之间,对于像 push、pop 等栈操作,栈引擎可以在知道上一个周期的地址,就以低耗电的方式生成地址,让系统节省掉 AGU 计算地址和往返高速缓存的电力。 Zen 的分发器可以实现最高每个周期 6 个微操作的派发,其中给整数调度器是每周期 6 条,给浮点调度器是每周期 4 条,整数操作和浮点操作可以在同一个周期里进行派发以实现派发吞吐率最大化。 Zen 内部用于 &Op-Cache 的操作码非常紧凑,在大多数的情况下和 x86 操作相当,这意味着 &Op-Cache 的空间可以被充分利用。 Zen 微架构探究——后端(Back-End)
处理器的后端包括了调度与执行、载入/存储等模块,和英特尔的设计不同,Zen 或者说 AMD 自 K7 以来处理器的整数和浮点执行资源是分离式的,有各自独立的调度器和执行流水线。 下图所示是根据 AMD 提交的 GCC 补丁信息而推测的 Zen 各个执行端口指令执行能力图:
现在的乱序执行处理器会在解码器和执行单元之间设置一个重排序缓存(ROB),可以让指令乱序执行,然后依照程序原有的顺序递交计算结果,在写结果的时候,指令的结果会暂时存放在 ROB 里,之后指令执行的结果再被存储到寄存器或者系统内存中,如果其他指令急切需要该结果,那么 ROB 就可以直接为其传输所需的数据。 我们对 Zen 和 KabyLake 的 ROB 进行了测试:
从测试结果来看,Intel KabyLake 的 ROB 时延要比 Zen 快差不多 100 个周期,而在容量上两者的测试结果符合官方的资料(Zen:180 条目,KabyLake:224 条目)。 整数单元 其中整数执行具有一个 168 条目的物理寄存器堆,可以提供给 4 个算术逻辑单元及两个地址生成单元使用(例如重命名),这样可以让 Zen 的内核每个周期进行 6 个微操作的发射调度,每个整数执行端口具有自己的 14 个条目的调度深度。作为对比,Intel 的 KabyLake 整数物理寄存器堆大小是 180 个。 四个算术逻辑单元中只有两个可以跑分支指令,另两个中的一个可以跑 IMUL(带符号乘法)操作、一个指令能跑 CRC 操作,不过 4 个整数执行流水线的具体差别需要待 AMD 的优化指南或者类似资料出来后才能确定。 Zen 还包含了可以用来追踪分支指令的差分检查点以及传输消除和冗余值消除等增强特性。 浮点单元 Zen 的浮点单元可以每个周期从分发单元获得 4 个微操作,拥有 160 个物理浮点寄存器堆(英特尔的 Skylake/KabyLake 的向量寄存器堆有 168 个)。 在浮点微操作抵达调度队列之前,会先抵达 Non-Scheduling Queue(NSQ),这个 NSQ 是一个等待缓存。这是因为浮点指令通常需要较长的时延,因此在分发单元的时候就会有一堆待命的微操作。NSQ 会尝试透过浮点指令队列化来减少这些排队,从而让分发器可以保持类似提供给整数流水线的分发水平。 此外,NSQ 还能提前对浮点指令内存组元进行处理,使其在抵达调度器队列的时候就已经就绪。 Zen 的浮点引擎有一条单独的流水线进行 128 位载入操作。 浮点调度器有 4 流水线(比 Excavator 多一条),都可以支持 128 位浮点操作,AMD 对 Zen 的浮点流水线设计也是依照 128 位来优化的。 SSE 系列以及 AVX 1/2 都获得了 Zen 支持,其中的 256 位指令是拆开成两个 128 位操作一次执行,然后重新将其融合。这样的实现方式让 Zen 在类似操作上落后于英特尔,后者现在都有专门的 256 位处理电路。Zen 还支持 SHA、AES 指令,透过两个 AES 单元实现,用于改进加密性能。 内存子系统 载入/存储单元由两个可以同时执行 L/S 指令的 AGU 管理。Zen 具有和 KabyLake 一样大(72 条目)、支持乱序载入的载入队列,而在存储队列方面 Zen 拥有 44 个条目(KabyLake 是 56 条目)。 Zen 采用了分离式的 TLB 数据流水线设计,数据高速缓存被填充的时候可以访问 TLB 标签,确定数据是否可用然后发送其地址到 L2 高速缓存开始提前进行预取。 Zen 可以每周期进行两条 Load 操作(每条可以处理 2*16 字节)以及每周期一条 Store 操作(1*16 字节)。 L1 TLB 可以支持所有页面尺寸,深度为 64 条目,L2 TLB 缺乏 1GiB 页面支持,深度为 1536 条目。 Zen 拥有 4 路组相联 64KiB L1 指令高速缓存以及 8 路组相联 32KiB L1 数据高速缓存,两高速缓存都能够以 32 字节/周期的带宽从 L2 高速缓存获取指令或者数据。 Zen 每个内核有自己独立的 L2 高速缓存,大小是 512 KiB,采用 8 路组相联,具有统一化(不区分指令和数据)、包容化(里面存放有 L1 高速缓存的指令和数据)、代码私有化的设计。 Zen 的内核之间有一个共享的 L3 高速缓存,L2 高速缓存可以每周期 32 字节的带宽从 L3 高速缓存读取和写入(双向总线,各向各周期 32字节)。 同时多线程(SMT) Zen 最大的改进就是引入了同时多线程(Simultaneous MultiThreading,SMT,也有人翻译作同步多线程)支持,该技术类似于 Intel 15 年前首次在 NetBurst 微架构体系的 Xeon 所引入的 Hyperthreading(原代号是 Jackson)技术。从技术角度而言,Zen 是一个正确的 SMT 处理器,各个内核均可以全程同时执行两个线程。
SMT 的目的是透过执行多线程实现资源的充分利用。 在单线程模式下,所有的资源都可以被该线程所使用,采用 SMT 后,Zen 的内核同时有两个线程,它会尝试为两个线程共享尽可能多的资源以平衡吞吐需求,并且按照软件的需求为每个线程提供适当的单元分配。 Zen 的各个单元可以根据执行的负荷动态地切换其资源。被两个线程竞争共享的资源(上图红色标记)包括有执行单元、调度器、寄存器堆、解码器、高速缓存(包括微操作高速缓存)。 以青色标记的载入队列、ITLB 以及 DTLB 等单元同样是竞争共享,但是需要 SMT 标记,也就是说,资源(例如队列深度)可以被两个线程共享,但是条目值(例如地址)只能被具有指定标记的线程访问。 以蓝色标记的分支预测器以及两个寄存器重命名/分配单元是以优先度算法来进行竞争共享的。Zen 提供了一个逻辑机制,可以让某个线程临时获得比其他线程优先度更高的资源分配。例如某个线程要对分支预测器进行清空,被赋予临时优先度的线程可以拾取到足够再次重新开始的指令数。此外,在分发器中也有类似的逻辑机制,可以确保两个线程具有高吞吐率以及执行单元的高使用率。 微架构实现细节对比总结 我们采用 AIAD64 5.8 4072 版进行了 Zen(Ryzen 7 1700X,这个微架构通常也被称作 ZenVer1)的指令时延、吞吐率测试,上表中的 MOV r32 到 VPCLMUL 等 20 条指令就是从其中 2000 多条指令中取出具有代表性的指令的测试结果,时延和吞吐率分别位于竖线的两侧,单位为周期。
时延,就是指一条指令所需的数据如果是需要等待另一条指令计算出来的,那么这个等待的周期数就是指令的时延(latency)。例如,如果一条指令的时延是 6 个周期,则意味着它需要等待另一条指令 6 个周期才能获得所需的数据。吞吐,就是指一条指令需要花多少个周期来执行。如果吞吐是 3 个周期,那就意味着这条指令所需要的计算时间是 3 个周期,大家平时常说的每秒多少条指令,就是用处理器的频率除以这个指令吞吐周期数获得的。上表中涉及到 ymm 寄存器的测试都是 AVX 指令,有 PS 后缀的表示单精度紧缩方式,有 PD 后缀表示双精度紧缩方式。 从测试结果,我们得出以下结论: 1、Zen 的 MOV 指令比 Skylake 略快 2、整数除法(IDIV)指令只需要 45|45 个周期,而 Excavator 需要 74|74,英特尔这边的 IDIV 落后不少。 3、AVX 加法、乘法、FMA 指令吞吐性能要比 Skylake 慢 50%。 4、AVX 除法指令和 SRQT 速度不错。 5、AES 指令比 Intel 更快。 接下来,让我们看看 Zen 和 KabyLake 在 x87 和 SSE 指令方面的时延、吞吐对比:
SSE 是游戏中比较常用的多媒体指令,从测试结果来看,SSE 加法、乘法指令两者相当,在有些情况下还有点优势,是在 SQRT 指令方面,Zen 要比 KabyLake 慢不少。 在 Pentium 4 或者说 Netburst 时代,大家经常提到的一个名词就是流水线深度,也就是流水线中细分了多少个工位,NetBurst 当时采用了 20 级流水线了,相较于同期也就是 10 级左右的其他处理器来说,采用这么长的流水线可以做到快很多的频率。 不过随之而来的问题是,较长的流水线深度对于乱序处理器而言,在遇到分支预测失败的时候,需要整个流水线清空,20 级流水线的分支预测惩罚一般是 20 个周期。 我们使用 Zen、KabyLake 以及 Broadwell 进行了分支预测失误惩罚的测试,结果如下:
& 上表中的左侧是以伪代码方式提供分支程序测试片段,以第 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 的处理器中,这个动作通常会被掩盖掉。 从上图中可以看到,这个 Test 6 的 Zen 测试结果是 12.36 个周期,加上 MOVZX 的 5 个周期,那这个测试的有效结果 17 个周期。 从测试结果我们得出以下结论: 1、Zen 的分支预测惩罚在 17 到 21 个周期左右,KabyLake 是 16 到 20 个周期,Broadwell 是 15 到 21 个周期。总体来说 Broadwell 的分支惩罚普遍更低些,大概是 15 个周期左右,KabyLake 略高,为 17 个周期左右,Zen 的预测惩罚值普遍在 19 个周期左右。 我们通过测试推断&Zen 的流水线工位数应该是在 19 个左右,不过由于 &Op-Cache(微操作高速缓存)等因素,最低可以低至 17 个周期左右。 Zen 的 CPU 复合体(CPU Complex) Zen 采用名为 CPU 复合体(CPU Complex,简称 CCX)的形式进行内核组成,每个 CCX 包含有 4 个内核以及一块 L3 高速缓存,L3 高速缓存的容量是 8MiB,采用 16 路组相联和独占(相对 L2 高速缓存)设计。
L3 高速缓存以低序交错地址的方式被切为 4 块,每个内核配有 2MiB L3 高速缓存,内核在访问各个 L3 片块的时候时延都是一样的,不过 Zen 的 L3 采用的是牺牲式(类似于 K8)。 就具体的处理器型号而言,一个 8 核处理器,是由两个 CCX 结合而成。需要注意的是,在 Zen 中,L3 高速缓存并非最后一级高速缓存(Last Level Cache,LLC),因为 16MiB L3 高速缓存是由两块分离的 L3 高速缓存组成,两个 CCX 之间不存在统一的 L3 高速缓存,不过 AMD 表示两个 CCX 之间有专门设计的一致性线路实现 CCX 以及内存控制器和周边 IO 的连接。
上图是 Zen 管芯图中单个内核的布局图,它的面积是 7 平方毫米,其中 L2 高速缓存大约是 1.5 平方毫米。图中标注了分支预测器、指令高速缓存、解码器、调度器、浮点单元、整数单元、载入/存取单元以及 L1 数据缓存以及 L2 高速缓存。 CCX 的面积是 44 平方毫米,其中 8MiB L3 高速缓存面积是 16 平方毫米,由 14 亿晶体管组成。与之相比,Intel 同样是 14 纳米工艺制程节点的 SkyLake 内核部分(不考虑 Uncore)的面积是 49 平方毫米。如果这样比较的话,Zen 四个内核的 CCX 比 Skylake 四内核小大约 8.3%。理论上 Zen 内核部分成本也会低 10.2%,但是这样的比较其实并没有多少意义(如果说这是为了表明成本更低,但是芯片的成本绝对不是这么简单的事情,例如销量,冗余分装等都是丝毫不亚于面积的因素,此外两个处理器本身在功能实现上也有很大差别,例如 Intel 的 CPU 还支持 Zen 目前尚未完全对等特性的 vPro)。
上图是 Zen 处理器 8 核版的管芯图,面积大约是 195 平方毫米,英特尔 14 纳米的 Broadwell-E(包括足本的 10 核版 i7-6950X 以及屏蔽两核的 8 核版 i7-6900K/i7-6800K 等)管芯面积是 246.3 平方毫米,后者的原生内核规模是 10 内核并且是 4 内存通道,所以如果考虑功能特性的话, 8 核版 Zen 在芯片成本潜力上并没有特别的优势。 1亿美元分手费的背后,AMD和他的女友 在制程方面,AMD Zen 采用格罗方德(GLOBALFOUNDRIES,由于缩写是 GF,所以有网友戏称为女朋友)的 14 纳米 FinFET 制程生产,从线宽上而言和英特尔属于同一代制程节点。 当然这仅仅是在线宽上,英特尔早在2015年的boardwell就已经是14nm。英特尔早期是Tick-Tock策略,交替迭代升级架构和工艺。2015年的Boardwell是升级工艺,而2016年的skylake是升级架构,继续维持14nm工艺,但随着晶圆厂生产线的成本大幅攀升(当然还有AMD的不给力),英特尔将Tick-Tock放缓,变成了Tick-Tock-Refresh,那么今年的Kabylake仅仅是Refresh? 其实不然,今年的Kabylake采用全新的14FF+工艺,具体特性和性能与2年前的14nm不可同日而语。
GF的14nm和英特尔的14nm不是一个层级,AMD自己也深知,在ISSCC的PPT上其也坦诚的将Zen的工艺同竞品A进行了对比,在CPP、Fin Pitch和Metal Pitch上依然差距明显。
从这张图看就更为明显,英特尔的2015年的第一代14nm密度就远远要高于同代的三星/GF 14nm工艺。更不用说台漏电的16FF了。而Kabylake改进的14FF+虽然线宽未变,但在性能上按照英特尔的说法又有12%的提升,这样的提升最为明显的就是频率的提升,7700K的睿频频率从6700K的4.2GHz一举提升到4.5GHz,而超频能力的提升仅仅是工艺提升的副产品,现在英特尔的工艺又将AMD和他的女友又再次抛离。
由于制程和英特尔还是存在差距,AMD在芯片设计上也为性能和功耗做了很多细节上的优化。AMD在RYZEN上布置了超过1300个关键路径监视器,48个片上高速电源监视器,20个热量二极管和9个高速下落检测器,通过这些传感器的监测数据,RYZEN的AFVS自适应频率电压系统会对电压和频率进行快速调节,对性能和功耗进行优化。并且这样的调节是可以针对每个核心的不同负载/温度进行调节,更为灵活。 AMD和GF虽然已经离婚,降级成为女友,并不是一家人,但其之间的关系还是紧密异于常人。但由于Zen的诞生。AMD就开始担心GF并不能完全满足更为膨胀的需求。因此AMD在稍早前向GF支付了一亿美元,用来修改代工协议,从原有的排他代工全部产品,改成不再独占,使得AMD可以找其他厂商代工芯片。AMD之所以愿意付出一亿美元的巨大代价,也要修改这个协议,很大程度也是看好Zen的未来预期,认为GF的现有14nm产能并不能满足Zen未来的巨大需求,究竟除了AMD现在的CPU和北极星,还要代工即将到来的VEGA和部分高通骁龙821,因此我们可以发现,AMD对于RYZEN是信心满满。其他第三方代工厂可能是三星半导体,究竟三星和GF在工艺和技术上有比较多的共通(都来自IBM),产能迁移比较方便。 初见ZEN 锐龙RYZEN X、1800X 按照 AMD 的计划,Zen 不仅用于取代 Family 15h 的 Bulldozer 微架构家族,而且还将取代完全针对低功耗市场的 Family 16h Bobcat 微架构家族(这个系列的微架构代号都是猫科动物,最新的微架构代号是 Puma 或者说美洲豹),这意味着为 Zen 不仅要考虑性能提升,而且还必须将耗电问题摆在非常重要的位置,因此 Zen 这个名字是充分体现了这个微架构系列的主要设计思想。
在 Zen 微架构下,根据具体的内核数和集成的模块,AMD 定下了 4 个内核代号,分别是: 其中,Summit Ridge 是 Zen 的第一波(3 月 2 日)上市产品,商标品牌名称为 RYZEN,分别为 RYZEN 7、RYZEN 5 和 RYZEN 3。 服务器版本的 Snowy Owl 据闻会集成 Vega GPU,在今年年第二季度推出,而 Naples 预期会在上半年推出,主要竞争对手是 Intel 基于 SkyLake-EX/EP V5 微架构的 Xeon V5 服务器/工作站处理器,后者确定和英特尔第二代 Xeon Phi(x200 系列,代号 Knight Landing/KNL,骑士登陆湾)一样支持桌面版 Skylake 尚未支持的 AVX512 扩展指令集(SkyLake-EX/EP 的 AVX-512 版本是 3.2,版本号看上去比 XeonPhi x200 的 3.1 更新一些,但具体的细节并不是这样的,它们都不能支持完整的 AVX512)。
针对桌面版本的 RYZEN 支持 AVX2,但是不支持 AVX512,Naples 和 Snowy Owl 可能也不会支持 AVX512。AVX 指令集是英特尔在 2008 年推出的 x86 指令集扩展,Sandy Bridge 是首款支持 AVX 的微架构,它将单指令的数据处理位宽从 SSE2 的 64 位提升到 128 位,而后来的 AVX2 更是提高到了 256 位并且支持 FMA 指令,RYZEN 可以支持 AVX2。 RYZEN 在扩展指令集基本和相同定位的 Intel SkyLake/KabyLake 相当,例如 SSE、SSE2、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、FMA、AES、SHA(SkyLake 不支持 SHA)以及 AMD 特有的 SSE4A,而 20 年前的 3DNow! 在 Bulldozer 时代已经不再支持,3DNow!是当年刚刚兴起 3D 游戏时候的产物,由于不遵循 IEEE754 的单精度要求,没有获得广泛支持。 在操作系统方面,AMD 表示 RYZEN 不再支持 Windows 8 以及版本更旧的 Windows 版本,毕竟是 10 年前的操作系统,Windows 必须是 Windows 10 以上。在 Linux 方面,RYZEN 需要内核为 Kernel 4.1(初步支持)或更新的版本,例如 2015 年 11 月发布 Fedora 23(Kernel 4.2)。从指令集的角度而言,Zen 跑旧版操作系统是没有问题的,不过由于旧版操作系统已经越来越少人使用,而硬件驱动程序的编写又相当复杂,验证测试耗时,因此 RYZEN 放弃旧操作系统是合情合理的。 前面说了这么多“废”话,开始进入正题,来看看RYZEN的实物。
上面三个就是本次测试的“猪脚”,RYZEN 7处理器 X和1700。
其还是差用针脚在CPU上的形式,一共有1331个针脚。其实我个人还是觉得针脚在socket上更为合理,即使断针更换socket就好,而不用整个CPU报废。
RYZEN 7的封装尺寸比LGA1151稍大,但还是明显小于HEDT的LGA2011。
再看看反面针脚,针脚中间没有其他元件。针脚数量是1311。针脚越多越正义,针脚越少越反动。
AM4接口主板自带两个耳朵,以前挂钩方式方式的散热器可以直接使用 ,而不需要特殊扣具(如大玄冰400),而那些比较高端的风冷或者水冷则需要专门的AM4扣具,AM4的孔距和AM3存在一点差别,在选购散热器的时候要特别注意。AM4插槽有单边固定压杆,但这个压杆缩紧的力度并不大,如果你散热器上硅脂涂抹太多,取下得时候不得要领,有可能会将CPU一起拔下,而产生断针弯针的惨剧。
本次首发的有三个型号,从低到 高分别是RYZEN 7 和1800X, 具体频率和其他规格如上表。三个RYZEN处理器在规格上比较接近,主要就是频率差别,另外1700的宣传TDP较低,仅为65W。
CPU-Z 1.78已经可以完整支持RYZEN,这个是零售版的CPU-Z,步进为1(量产版的杂鱼机),RYZEN 7的默认电压是1.35V,相对英特尔处理器而言这个电压很高。 内存支持规格方面,在目前手头的大多B350主板内存控制器仅能支持到双通道DDR4 2666,而从第三方主板资料看,上到3200应该问题不大,不过这需要后续验证。此外RYZEN 7直接支持ECC内存,而不像英特尔那样在消费级的处理器和主板芯片组上进行了限制,这点颇为厚道。
目前我们测试平台主板的BIOS对于XFR还是存在问题,以1700X为例,其基础频率为3.4GHz,理论情况在散热好的情况下,单线程负载可以加速到3.8GHz, 按照AMD的PPT具体说明是频率可以依据你散热状态进行自动调整,而无需用户进行干预。实际使用中短时间打开程序可以瞬时到3.6/3.7GHz(这个实现基础就是前面提及的AVFS自适应电压频率调节系统),但在单线程负载的测试中,频率在大多时候还是仅有3.5GHz,这样会影响默认频率下的单线程表现。我在这里使用的是360规格的一体式水冷,散热条件已经足够好。现在的情况,CPU在默认情况下实际可以使用的频率是基础频率+100MHz,那个看上去吓人的3.8GHz/4GHz的频率实际使用中并不能指望。 其实这样的问题并不是第一次,在Skylake+Z170首发的时候,就出现过这样的问题,稍后两个版本BIOS就修正了。因此后续RYZEN的单线程性能可能随着BIOS的更新,还有进一步提升的空间。 锐龙坐骑&ROG Crosshair迎来轮回 &
ROG可以说是最高端消费级主板的代表,但在大多数人印象中ROG都是R5E10,M9F、M9H之类英特尔芯片组的产品。但实际上ROG的起源是始于AMD主板CROSSHAIR。虽然其是10年以前的产品,其在10年前,就将SupremeFX游戏音效,热管供电散热,高级超频调节,LED氛围照明,Q-FAN风扇控制、主板开关,LED DEBUG这些现在依然看上去高大上的特性汇聚,并确定了ROG系列的基调和风格,一直延续至今。但后续AMD的ROG就断档,而被英特尔独占。这样的原因并不是华硕不愿意做AMD的ROG,而是AMD在之前很长一段时间烂泥扶不上墙,在产品性能/规格上并不能支撑其ROG的定位,导致AMD的ROG缺位多年。
而在RYZEN时代,AMD平台的ROG Crosshair再次回归,我们本次测试的主力平台就是采用X370芯片组的 Crosshair VI Hero.& 其是目前RYZEN平台的旗舰主板,各种接口和功能一应俱全,十分的豪华:12项供电,AURA RGB特效,支持SLI/CF,数以吨记的USB接口,SATA接口,BIOS清空,重启,开机快捷按钮,为超频玩家准备的裸机前置金属加强直插USB接口,几乎一切在其他ROG高端主板上的特征我们都可以在C6H上看见。
华硕次高端的X370 Pro,供电规模缩减到10项,USB/SATA接口数量也有一定缩减,快捷按键这些功能也被省略,更为实用主义。
除开旗舰的X370,还有稍低定位的B350和A320。X370针对发烧游戏用户,支持超频,CrossFire双卡,而B350和A320在规格上有所缩减。但这个缩减幅度相比英特尔芯片组更显厚道。针对主流用户的B350,主要是不支持多卡(仅限于AMD),但也支持超频,即使是针对入门级用户的A320,阉割了超频能力,但也厚道的支持RAID0/1/10,而在英特尔芯片组支持RAID则需要H170/H270以上了。当然,B350/A320在USB,SATA,PCIE通道数上也有一定缩减。
RYZEN CPU可以直接提供16个PCIE lanes,可以单卡16x,或者CF/SLI 8x+8x,而第三个PCIE为芯片组提供的4x,但速率仅为2.0。官方文档仅提及X370支持CF,实际销售的产品不少都支持SLI,其实这基本不是技术问题,而只是需要额外给NVIDIA授bao权hu费而已。另外甚至还有不少B350也支持CF,看来各个主板厂商都比AMD要激进大胆。 除了通常版型,AMD也很重视SFF小型机市场,专门针对这个目标群体,还会推出X300/B300和A300芯片组,其在规格上同X370/B350/A300类似,不过时间节点则需要稍晚了。 另外我要吐槽下AM4芯片组的型号,320/350/370,听上去像是英特尔250/270的下一代芯片组似的,感觉更为高大上,不仅可以对用户构成一定的误导,还可以让英特尔在下一代主板芯片组命名上带来一些麻烦,这完全是走英特尔的路,让英特尔无路可走。 其实这样的玩法对于AMD不是第一次,在90年代AMD的486/5&86在某些节点上甚至还要快于英特尔,由于美国商标法不支持将纯数字注册成商标,所以英特尔只能开拓Pentium品牌来避免AMD的型号的尾行。 对于绝大部分不需要多显卡SLI的用户而言,B350在功能上就可以同Z170/270媲美,但其在售价上更低,如果用户需要构建6核心甚至8核心的系统,RYZEN的平台整体性价比优点将会更为明显。 性能测试
我们本次的测试平台和参考对比平台下。我们主力测试的是RYZEN 1700X和1800X,1800X代表RYZEN 7的最强性能、而1700X这个次旗舰更具可玩性和性价比,也许会有更多玩家关注。
我们测试主要进行以下对比分析: 1800X和7700K的默认全核心设定性能对比 1800X和T的默认设定性能对比 1700X和T的4GHz (100&40)同频性能对比 其可以反馈超频性能对比,还有同频效能 将1700X屏蔽成4C8T和7700K 4GHz同频性能对比,其可以模拟RYZEN 5的性能,也可以比较ZEN和Kabylake同核心同频效能。 我们性能测试部分,主要分为理论测试,渲染测试,视频编码测试,实际日常应用测试,游戏测试,内存和存储测试几个部分。 RYZEN 7理论性能测试 &Super PI是个经典的CPU测试程序,我们使用其对PI进行3200万位的测算,其仅仅是考量处理器的单线程浮点性能。RYZEN 7相比Kabylake大概有25%的差距,这15%的差距虽然有部分是频率上的,但即使与相比同频的kabylake和Boardwell-e也依然有15%的差距,这说明ZEN架构的FPU性能还是有些孱弱。 Fritz Chess Benchmark是基于国际象棋软件Fritz 的独立电脑棋力测试程序,其偏向于整数和分支预测性能的测试。Fritz Chess Benchmark最多可以支持16个线程,并给出相对Pentium III 1G的性能倍数。Fritz Chess Benchmark单线程测试1800X大幅落后7700K,而多线程依靠核心数量搬回。1800X相比6900K大概有5%的性能差距,在同频同核心的情况下,RYZEN 7相比Boardwell-e和Kabylake大概差15%。主要原因是流水线长度的问题,虽然Zen的分支预测器答复改善,提高了命中率,但其流水线长度应该还是停留在Bulldozer的20级水平,这样在但是预测失败的情况下,就有大概20个指令集周期的惩罚,相比短流水线级别的boardwell-e/Kabylake的惩罚更大。 渲染性能 渲染测试部分我们准备了四个测试项目:
Keyshot 6的测试文件 Keyshot 6是一个通用的渲染软件, 基于LuxRender物理方程渲染引擎开发。根据物理方程模拟光线流,可以产生照片级别的逼真图像。在行业内应用广泛,我们使用子定义场景进行渲染测试,渲染完成时间越短越好。 Blender是AMD在RYZEN发布会上演示的御用软件,我们使用RYZEN LOGO进行测试,150%的默认渲染分辨率。测试成绩是渲染时间,结果越低越好。 Cinebench R15这个是基于Cinema 4D设计渲染软件的独立Benchmark,应用领域较窄,但其使用简单,群众基础好,大家喜闻乐见,现在基本已经是测试CPU性能的基准测试软件。 POV-RAY也是个渲染软件,但特性上比较偏向光线追踪,我们使用其自带的Benchmark进行单线程和多线程测试。
渲染类测试项目是可以完全充分利用多线程优势的,因此8C16T的RYZEN 7和6900K相比7700K优势十分明显。在8C VS 8C的正面对抗RYZEN 1800X在全部项目都优于6900K,而次高端的1700X和6900K也十分接近,互有胜负。并且在这后两个测试项目,RYZEN的多线程优势更大,多线程相比单线程的性能提升比更高,这与ZEN架构优化SMT设计有关系。 实用才是真道理:RYZEN 7的应用性能和PCMARK 实际应用性能测试主要包括三个部分,分别是Mozilla Kraken 1.1浏览器性能测试,7ZIP压缩和解压性能测试和x265视频编码性能测试:
Mozilla Kraken 1.1是测试浏览器JavaScript性能的Web测试,我们使用的是Chrome 56 x64进行测试。Mozilla Kraken 1.1主要还是考研的单线程性能,因此频率占优的7700K优势明显。 7ZIP是个GPL开源的压缩软件,其内核效率远高于WinRAR之类商业软件,并且对于多核心支持很好。我们使用自带benchmark进行测试。1800X和1700X得益于并发优势,明显领先7700K,但相对6900K有5-10%的差距。 视频编码性能我们使用x265 benchmark进行测试(测试下载:http://x265.ru/en/x265-hd-benchmark/),x265是采用GPL开源的编码器对于HEVC进行编码,编码完成时间的测试结果是越短越好。其对于多线程利用充分,并会利用AVX2等指令集,因此其对于RYZEN的AVX/AVX2指令集表现也是一次考验。前面提及ZEN处理 AVX2需要将256位指令集拆分成2个128位,而英特尔则有原生的256位处理电路,从这个测试看,这个问题的影响也并不大。1800X大幅领先,而1700X表现也和6900K接近,远高于7700K。
PCMARK 8是Futuremark开发的基于实际应用的测试,我们选择负载较高创新应用测试,其模拟网页浏览、视频聊天、照片处理、视频处理,音乐处理等日常应用场景,具体测试我们使用的是非加速路基,这样不使用GPU的Open CL加速能力,将性能应用的负载放在CPU端。日常应用其实大部分都是看重单线程性能,8核仅在多路视频群聊编码和音频处理有少许收益,大多日常应用还是看重单线程性能,因此高频的7700K优势明显。这说明日常使用高频4核才是王道。 玩家的Zen:RYZEN 7的游戏性能测试 & 首先是大家喜闻乐见的3Dmark,3Dmark我们测试了DX11 Firestrike/DX12 Timespy测试的物理测试部分。Firestrike物理测试是调用的Bullet Open Source Physics library进行最多32线程的柔性形体模拟,对于GPU负载很低,瓶颈在于CPU,而基于DX12的Timespy的物理测试,则是使,通过预设置的规则和参数是模拟生成羽化水晶,相对FSE的物理测试负载更高。这两个测试几乎没有GPU负载,是完全考验CPU性能。RYZEN 7在FSE测试表现不错,1800X小超6900K,而1700X无论是默认还是超频4GHz性能都和6900K十分接近,但Timespy的差距就比较大。 当然上面仅仅是接近游戏应用的理论测试,并不能代表实际真实的游戏性能。其实大多游戏对于CPU是不敏感的,i5 4590和i7 6950x实际并没多大差距。虽然在DX10、DX11、DX12 API更新的时候,微软和游戏开发商一直都反复强调新技术会怎么优化多核心利用,但实际能够利用多核心优势的游戏还是少之又少。游戏测试我们选择了Grand Thief Auto V,战地1、 全面战争战锤、古墓丽影崛起和文明这样五个在技术上有足够代表性,对于CPU性能有足够需求,同时又被大多玩家喜闻乐见的游戏进行测试。
Grand Thief Auto V我们使用游戏内图像设置成1080P 最高画质 4XMSAA进行测试,使用游戏自带benchmark进行测试,记录最后个场景的平均FPS进行比较。
战地1 大概可以吃掉8个线程 战地1在贴吧被描述成i5的末日,没有8个线程是搞不定的,实际也是如此,由于战地1自身并不带Benchmark,虽然单机负载还是低于多人游戏,但多人游戏场景不可重复,因此,我们使用单人战役的意大利任务,选取1分钟大范围战斗场景进行测试。 全面战争战锤使用的是DX12路径 最高特效 4X MSAA设置,使用的是游戏自带Benchmark。
文明6我们使用游戏内图像设置成1080P 最高画质 进行测试,使用游戏自带的AI性能测试,它模拟多个国家进行AI操作的所需的单回合时间。文明6可以利用16个线程,但这个利用程度并不充分。 虽然有些游戏需要用到8个线程,但这已经是极限。从 4C8T到8C16T对于游戏而言并无好处,更高的单核性能反而更为实际。这使得在大多游戏测试,RYZEN 7还是明显落后7700K和6900K;另外一个方面,可能是ZEN架构的FPU浮点运算能力同英特尔还是存在差距,直接影响了游戏性能。当然6900K在大多项目也没占到什么便宜,现在对于游戏,蛋多没鸟用,7700K才是王道。当然如果你要玩直播之类,8C16T还是会有明显收益的。 RYZEN 7的内存性能 按照AMD PPT的说法RYZEN内存最高可以支持到DDR4 2933,但目前由于各家大部分主板BIOS成熟度的限制,内存仅能上到2666MHz,并且兼容性问题不少,高频条降到也不能使用。当然高贵的玩家国度Crosshair VI Hero.是个例外,其可以支持到2933MHz的内存频率。我们使用AIDA64的内存带宽测试对三个平台各个频率带宽进行了测试,测试内存使用的是GSkill TridentZ RGB DDR4 3200 8GBx4 C16。
在去年测试AM4 APU的时候,当时B350+DDR4的内存带宽性能 大概就英特尔DDR3 1600的水平& ,这一度使得我担心ZEN的内存性能。但幸好结果证明我的担心是多余的。AIDA64的内存读写性能表现RYZEN 7要好于Kabylake,并且其带宽扩大随着频率提升更为明显,在高频2933时候甚至都摸得到100外频6900K的屁股。不过如果6900K跑125MHz外频,那带宽会在70000以上,这样暴力的带宽RYZEN还是无法企及的 。 其实话说过来,内存带宽大小仅仅是在AIDA 64带宽测试里好看,或者开机自检看见高频心理可以得以满足(如果是UEFI启动还看不到),实际应用性能差距还到1%,所以还是DON’T CARE吧。 软肋不在 RYZEN的存储性能测试 &之前AMD除了CPU性能,还有个软肋,就是芯片组影响的接口性能和磁盘性能。因此我们也对磁盘性能和接口性能进行了测试。我们使用SM961 256GB作为测试盘,空盘挂从盘测试X370和Z270的NVME存储性能,具体测试软件我们就简单的使用AS SSD Benchmark 1.9,虽然这个软件衡量SSD长期性能并不严谨,容易受到Cache和掉速问题的影响,但这种方法测试主板平台影响的突发性能是足够的,如果是使用IOMETER这样更为严谨和长期的测试方面,测试瓶颈反而会更为容易转移到SSD本身。 & 具体的测试结果,两平台基本持平,Kabylake+Z270平台单线程性能更高,但RYZEN+B350的并发性能更好,两者表现十分接近,这至少可以说明RYZEN平台在磁盘性能上并不存在瓶颈,达到了和英特尔平台同层级的性能。 RYZEN 7的超频/温度和功耗 X99平台,一般合理电压(高端塔式风冷或者240/280一体式水冷可以镇压的电压)大概在1.35V,这个电压一般可以上4GHz,稍好体质的大概4.1到4.2GHz。Z270+7700K 一般合理电压,配合120塔式散热器或者120一体式水冷,在1.35V基本盘在4.8GHz,如果碰见雕则可能上到5GHz,安稳的长期日常使用。 而RYZEN 7情况和X99类似,配合高端塔式风冷或者240/280一体式水冷大多可以稳定在4GHz频率,但电压要求比较高,基本需要1.5-1.55V。我们也尝试过1.5V电压的设定,虽然日常使用和Benchmark并没问题,但是Prime 95 Small FTTs FPU长时间测试并不能通过。 大多主板仅能支持到1.55V电压,而C6H可以支持更高,并有LN2液氮模式,但更高电压常规的风冷和水冷并无法镇压,仅仅是为那些液氮极限玩家准备,对于一般用户和玩家而言并无意义,因此我也没有准备测试。我超频主要测试的是1700X,X也做了简单的测试,没太大差别。我手头的1800X个体体制可能比1700X稍好,4.1GHz可以跑benchmark,但无法通过P95,因此基本都是止步4GHz,因此如果你准备超频话,不一定要多花钱买1800X,其实X并无本质差别。
华硕的BIOS完成度更高 功能更强大更稳定
我们测试了华硕,技嘉、微星三家的B350/X370主板,华硕的BIOS完成度更高,更为成熟,调节选项功能更为丰富,如提供了OC Tuner功能,系统可以自动适配调节电压,超频方面更为简单和稳定。因此你是菜鸟,在华硕的主板上简单开启TPU,系统就会自动的帮你超到3.7-3.8GHz(RYZEN可以将倍频以0.25倍为最小单位进行调节),同时设定好电压和其他参数,获取比3999元RYZEN 1800X更好的性能,十分省心。& 相比较而言微星的BIOS完成度要低不少& 和Radeon显卡的WattMan一样,AMD也为RYZEN提供了桌面的超频软件AMD RYZEN Master,用户可以设定不同的Profile,调节处理器的倍频,电压,内存频率和参数,还可以对物理核心进行屏蔽。这个软件使用很友好,唯一麻烦的就是需要通过提示的命令行开启。另外需要提及的是,而且单纯条件倍频,并不需要重启,十分方便。
&前面提及X370和B350在规格上十分接近,而且B350也支持超频,那是否说明找个便宜的B350来超RYZEN 7就够了么?实际我们测试表明,RYZEN 7超频对于主板供电有很高要求,如果使用6相供电无散热片的较低规格B350,1700X 默认设置Prime 95 small FTTs FPU 10分钟以上负载,我们使用热成像拍摄测试,MOS管大概温度在9x度,还是可以稳定运行。
但超频到4GHz P95温度就会上到120度左右,甚至更高,从而影响稳定性。供电对于CPU体制更早将会成为超频的瓶颈。因此RYZEN 7超频,一块高规格,如8相以上供电的主板还是有必要的。 虽然B350就支持超频,但B350的供电规模都比较小,如6-7相,想要选择更大供电规模的主板那就只能选择更为高价的X370了。 我们分别使用原装幽灵散热器/九州风神玄冰400和360一体式水冷分别测试了RYZEN 1700X在默认设置/4GHz设置下的整机功耗和温度。在待机情况下,RYZEN 1700X默认和超频的功耗控制还好,待机大概在55W-60W,和Kabylake表现类似,明显低于HEDT平台的水平。默认设置满载功耗要高于Kabylake的7700K,但还是稍低于HEDT。但超频后功耗会直线上升,到达260W水平。 温度方面,虽然RYZEN虽然为钎焊,但其核心电压较高,待机温度也和高科技硅脂的7700K类似,但默认频率满载功耗控制较好,特别是配合塔式风冷和一体式水冷的情况。但超频4GHz 加压1.55V的情况,风冷温度会上升到100度以上,如果在供电规模较低的B350主板上配合无法顾及供电散热的一体式水冷或者塔式风冷,可能会由于供电温度过高而无法稳定工作。 超频部分做个简单总结,如果你想超RYZEN 7,最好还是需要选择供电规格较高的X370主板,并配合240mm规格以上的水冷或者6热管/12CM以上的高端风冷才好尝试 。现在那些支持超频的B350更像是为未来的RYZEN 3/5准备的。 再来分析下超频能力的差距,RYZEN 7的实用极限4GHz,相比Kabylake的4.8-5GHz当然差距明显,而基本和Boardwell-e持平,主要有三个原因,一个是芯片架构,特别是流水线层级,Zen 19级左右过高的流水线长度对于超频有一定的负面影响;一个是芯片规模,大核心相比中规模核心必然更难提升,另一个是工艺:虽然RYZEN 7和Kabylake在线宽上都是14nm,但实际上Kabylake的14nm经过了大得改良,已经是第二代14FF+工艺,按照英特尔的说法性能相比之前的14nm有12%的提升。而GF的14nm的整体水平甚至还不能达到2年前Boardwell-e的水平,频率上不去也是在情理之中的。
Youtube上有老外对RYZEN 1700X做了开盖,证实是采用钎焊填充,在英特尔那边昂贵的HEDT平台才能享受这个待遇,而主流的Kabylake只有高科技硅脂而已。对于英特尔而言一方面这是对自己工艺的自信,另外一方面也是产品区隔的策略。而RYZEN的钎焊对于AMD而言是一种勤能补拙。 为RYZEN拍手叫好 &RYZEN 7在渲染部分性能突出,甚至优于老旧架构的HEDT X99平台,视频编码处理性能也不错,对于这些并行计算能力需求很高的领域,其性能还是有竞争力,特别是考虑平台整体持有成本,RYZEN的优势将更为明显。特别是对于家装公司、小型动画公司、渲染农场和视频处理工作室这样资金不太充裕,但又极度需求性能的SMB企业,RYZEN 7还是有很大吸引力。在NDA解禁后,我就会协同这类中小微企业进行这些行业的实际应用环境下的测试。 当然,这个仅仅是针对专业领域,对于一般消费级玩家和普通用户而言,这样的情况就存在差别。单纯从理论性能上而已,RYZEN 7多线程性能要高于Kabylake,定价也仅仅是持平或者稍高,从性价比上而言更为优秀。不过对于RYZEN 7的首要问题而言,大多消费者,甚至是发烧级的游戏玩家,都对于8C16T没有足够需求,这个才是首要问题。当然这个问题对于英特尔的HEDT X99/X299平台同样存在。即使是那些号称对于多线程深度优化的游戏而言,8C16T的优势也无从体现。能够充分体现多线程优势仅仅的前面提及的渲染,视频编码这样的专业领域。 对于用户体验影响更大的反而是单线程性能和图形性能,就如iPhone的处理器一样,虽然仅仅双核,多线程理论性能远不如那票骁龙和Exynos,但更高单核性能和更高的GPU规格,可以带来更佳的用户体验。 从应用需求而言,普通用户对于8C16T这样的高阶没足够需求,因此在现在和未来,RYZEN 5/3,这种针对主流用户的产品才是更为重要的关键点,或者说是更能触击用户需求的甜点。 RYZEN 7仅仅是吹响了AMD CPU崛起的号角,RYZEN 7仅仅是传令兵,而真正冲锋陷阵、攻城略地的还更多是接下来即将发布的RYZEN 5和RYZEN 3。现在AMD虽然兵力还是不如英特尔,但现在至少在技术兵力上已经是一个层级,可以进行真正面对面的博弈。 虽然RYZEN 5/3并不是首发,但我们也能从RYZEN 7一窥其面目。虽然Zen架构的单线程性能相比Skylake/Kabylake略低,但也属于堪用级别,这样使得现在的AMD能够同英特尔同台竞争。之前很长时间AMD对于英特尔而言在市场上完全不构成威胁,如果没有AMD英特尔反而会在反垄断托拉斯法上有很大的麻烦,而在 RYZEN推出后,英特尔就应该可以彻底的安心了。 摩尔定律早就失效,而架构和工艺迭代更新的tick-tock也早不能坚持。14nm从线宽上而言转眼已经过去了三代,而明年的coffee lake依然停滞在14nm的节点。这样慢速迭代早已经被消费者厌烦,英特尔而被戏称为“牙膏厂”。
现在英特尔也必然感受到更多的压力,必须要对现在的价格体系和今后的产品计划做出修改来应对。目前海外市场电商已经对英特尔处理器价格进行了调整。这样的变化对于任何消费者都是有利的,无论你是AFAN,还是IFAN,任何人都是值得为RYZEN的诞生拍手叫好。 本文由爱活网与宁美国度联手完成刊发。
您将要订阅:
27744位用户
爱活网崇尚科技进化生活,提供数码新品和创意设计,报道与生活相关的科技、IT行业资讯
【上一篇】:
【下一篇】:
相关文章:
猜你喜欢:
用微信扫描二维码分享至好友/朋友圈}

我要回帖

更多关于 amd芯片曝光多个漏洞 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信