AMD Ryzen 7专题测试高卷帘栊看佳“锐”
2017-04-27
历史总是惊人的相似——历经10年,这句话在IT产业再一次被印证。如今AMD携Ryzen重回桌面高性能处理器市场的热闹场面,与10年前英特尔靠Core 2 Duo扭转乾坤如出一辙,只是主角与配角对调了身份。
Ryzen 7核心影像,对称的两个CCX及其4个核心清晰可见。
早在2003年,趁英特尔犹豫不定之际,AMD率先在x86平台引入x86-64指令集,实现了桌面平台从32位向64位计算的平滑过渡。向下兼容32位指令的策略,使得x86-64指令集迅速被行业所接受,成为事实意义上的行业标准。英特尔谋划已久的向桌面平台迁移IA64架构的计划彻底作废,只得通过交叉授权的方式跟进推出EM64T扩展指令集。此后3年间,可以说是英特尔历史上最困难的时期之一,超长流水线架构带来的高频低能,90nm工艺功耗撞墙,“胶水”双核,架构策略失误让英特尔尝尽“一着不慎,满盘皆输”的苦楚。
痛定思痛的英特尔在2006年拿出了Core微架构及相应的处理器Core 2 Duo,重新夺回了市场的主导权。之后凭借架构和制程工艺的双重优势,英特尔启动了仿佛军备竞赛一般的Tick-Tock战略,开始将AMD远远抛离。此时的AMD却做出了一个影响深远,并时至今日仍然难以评判得失的战略决策:收购ATI。斥巨资收购ATI后,AMD成为唯一一家能够同时提供高性能处理器和高性能图形芯片的公司,但双线作战也意味着腹背受敌,特别是曾经最给力的盟友英伟达(NVIDIA)变成了直接的竞争对手。。
为求生存,AMD壮士断腕决定出售旗下的晶圆制造厂(这个分离出去部分就是现今AMD的御用代工厂Global Founderies),从IDM(Integrated Design and Manufacture,整合设计与制造)彻底成为一家Fabless(无晶圆)公司。虽然AMD因此得以延续,但公司市值断崖式的下跌对研发投入依然造成了巨大的打击。只在K8基础上小修小补的K10架构以“Phenom”名号面世,便立即被英特尔进步巨大的Nehalem架构处理器打得找不着北。
然而真正的黑暗才即将到来:时值GPU通用计算蓬勃发展之机,AMD认为处理器与图形芯片的融合设计的APU才是发展方向,其中的CPU模块主要负责整数计算,而浮点应用交给更适合大规模并行处理的GPU模块。在这样的指导思想下,AMD为下一代处理器选择了集群多线程技术(Cluster-Base Multi-Threading,简称CMT)路线,意图通过理论上的高效率来实现对竞争对手的超越,并依靠CMT的小面积低成本优势来抵消代工厂的工艺劣势。由此而诞生的Bulldozer(推土机)架构采用多模块设计,每两个整数单元搭配1组浮点计算单元及相应的解码器和调度器封装为一个模块,4个这样的模块组成一颗完整的Bulldozer,残缺的浮点计算能力计划中将由强悍的GPU来补足。
理想很丰满,但现实很骨感。CPU+GPU的融合计算并未如期到来,低下的浮点性能沦为了Bulldozer及其衍生架构被竞争对手追打的痛点。全面的溃败几乎瞬间注定,实际应用性能“开倒车”让AMD在市场上节节败退,曾经与英特尔分庭抗礼的荣光消弭于无形,“i3秒全家,i5默秒全”的调侃虽然刺耳却也是现实的写照。2012年,思变的AMD请回了K8架构的主设计师Jim Keller,这位天才架构师如同救世主一般领导起全新微架构的研发工作,这一堵上AMD最后的尊严的架构,便是Zen,其实际产品,便是本文的主角Ryzen系列处理器,正式中文名称“锐龙”。
架构:不破不立
Zen微架构彻底推翻了Bulldozer架构所采用的CMT结构,采用与英特尔相同的SMP(对称多处理器)+SMT(同步多线程)结构。4颗完整的物理核心每颗配备512KB的L2 Cache(二级缓存),并搭配8MB共享L3 Cache(三级缓存)封装为一个模块,这样的一个模块被称为CPU Complex,简称CCX。两组CCX模块封装在一起,组成一颗完整的8核心16线程的Ryzen 7处理器。
Zen架构的核心功能框架。指令译码器性能有1.5~1.75倍的提升。
在Zen架构的设计之初,AMD便将设计重点放在了能效比上。这意味着Ryzen处理器将从指令效率和功耗两方面为用户带来新的惊喜。性能方面,Ryzen的早期目标是相比Bulldozer在IPC(Instruction Per Clock,即每个时钟周期内所执行的指令的数量,是决定处理器性能的最关键指标之一)上提升40%。这个夸张的目标(通常每一代处理器IPC提升在5%~15%)被更夸张的成果所替代,最终Ryzen的IPC相比前辈提升了惊人的52%!
实现这一成果的关键在于放弃共享浮点单元概念。Ryzen的每一个核心都拥有一对独立的128位乘法叠加运算单元(FMA),并允许两个FMA共同执行256b位长的AVX指令。同样翻倍的还有整数流水线上的算数逻辑单元和寻址单元。简单的说,相比与Bulldozer,Ryzen每一个核心能够调用的运算资源都翻了一番。當然,Ryzen相比英特尔的同时期产品仍然有些落后。Broadwell-E和Kaby Lake拥有两个完整的256位FAM单元可以执行512位长度的AVX指令,这意味着相同时钟周期内拥有比Ryzen高1倍的AVX指令浮点性能。当然这样的设计符合AMD的长期战略,毕竟AMD领导的HAS异构计算已经初现曙光,一旦获得行业的广泛认同,将迅速转化为平台的整体优势。
为了能够更高效地利用增加的运算资源,Zen架构中引入了被称为“神经网络预测(Neural Net Prediction)”的分支预测机构,AMD表示该“神经网络”能够通过系统过往的运行状况,逐渐学习预测程序的操作行为以不断提升预测的正确率。这个“神经网络”从属于Zen架构中的SenseMI技术,该技术同时还包括“精确功耗控制(Pure Power)”、“精准智能超频(Precision Boost)”、“扩展频率范围(Extended Frequency Range,简称XFR)”以及旨在提升缓存命中率的“智能预取(Smart Prefetch)”。
“精确功耗控制”指在处理器内部嵌入超过100个传感器,对电压、功耗以及温度进行精确控制,确保Ryzen时刻处于必要的最低功耗状态下。“精确智能超频”则取代了原有的Turbo Core,能够以毫秒级的相应时间对运行频率进行25MHz步进的提升,以满足不同应用对处理器主频的需求。XFR则在“精确智能超频”之上提供了额外的频率提升空间,前提是足够强大的散热效能。但实测Ryzen 7 1800X的XFR只能提供100MHz的频率上升空间,并且只在单线程模式下才能启用,因此目前来看只能说聊胜于无。
分批分期,围剿对手
目前首批正式发售的Ryzen 7系列处理器均采用完整的8核心16线程规格,包括Ryzen 71800X/1700X/1700。三款产品的核心完全一致,仅仅是通过运行频率来划分产品等级。后缀有“X”字样的提供对XFR技术的支持,并且不配备“信仰灯(Wraith)”散热器。
向下还有Ryzen 5/3,规格从6核心12线程逐渐降低至4核心,形成完整的针对竞争对手的产品分布,并将在4月份之后陆续正式发售。有意思的是,从目前得到的消息来看,即使是4核心的Ryzen 5系列处理器依然是采用2组CCX模块的封装方式,并不通过减少1个CCX模块来降低芯片成本和发热。如此的操作方式,究竟是因为不愿意增加拆分设计的成本,还是满血8核心的良品率太低的废物利用之举,目前还没有确切答案。
全系列Ryzen处理器均采用1331针脚的PGA封装方式,对应全新的AM4接口。与之匹配的300系列芯片组包括从高至低的X370、B350、A320以及X/B/A300等多种型号。X370面向发烧级玩家,提供了USB 3.1 Gen2、CrossFire/SLI多显卡支持以及不锁倍频等特性。B350则是性价比最高的型号,除去不支持多显卡并行以外与X370规格如出一辙。A320进一步取消了对超频的支持。X/B/A300是针对SFF设备推出的产品,USB 3.1 Gen2和多显卡都不提供,但除去A300之外均允许超频。
PCI-E通道的数量和规格将成为300系列芯片组的阿克琉斯之踵:8条PCI-E 2.0相比起英特尔200系列芯片组最高的24条PCI-E 3.0通道实在是显得有些寒酸。好在Ryzen处理器本身的20条PCI-E 3.0通道在单显卡时能够留给NVMe 固态硬盘4条PCI-E 3.0通道。
游戏测试:差距不大,偶尔“翻车”
虽然多核心处理器已经普及多年,但游戏针对多核心的优化在当前的游戏开发环境下依然是老大难问题。主流的游戏引擎已经尽可能分离逻辑线程、图形渲染线程、I/O线程等意图尽可能并行操作以利用多核心,但从游戏本身的实时交互特性来说,几乎没有办法实现一种通用的框架进行并行化处理。同时逻辑程序的设计和调试难度会随着线程数量的增加呈现几何级数的增长,因此为了同时保证开发效率和实际游戏体验,绝大多数游戏对多核心处理器的优化利用都非常有限。
开发历史越早的游戏,对多线程的利用率就越低,典型的例如《魔兽世界》和《英雄联盟》这两款高龄游戏,对两个以上的物理核心都无法有效利用。Ryzen 7 1800X在这两款游戏下的表现也已经被英特尔拿来调侃。然而游戏多线程并行化的趋势依然是大趋势,无论是微软还是游戏引擎开发商都在为此而不懈努力,2016年以来的新生游戏作品已经明显得提升了多核心处理器的使用效率。在较新的游戏中,Ryzen究竟表现如何呢?
大红大紫的《守望先锋》即是非常典型的能够充分利用4核心的游戏。游戏中Ryzen 7 1800X能够提供154.3fps的平均帧率,相比目前最佳游戏处理器Core i7-7700K仅落后约3.5%,最低5%的平均帧率更是仅落后1.9%。两者的帧渲染时间曲线基本重合,衡量曲线抖动情况的差异系数分别为8.63%和8.62%。拥有更多的10个核心的Core i7-6950X测试数据同样基本吻合。普通游戏玩家基本很难感受到3款不同处理器在游戏中带来的差异。
EA旗下的“寒霜”系列游戏引擎不仅在画面表现力上出类拔萃,更是程序多线程设计的先锋代表。基于“寒霜3”引擎的第一人称射击游戏《战地1》作为“2016年度最佳FPS游戏”,亦是目前对多线程处理器优化较好的游戏之一。平均帧率上,Ryzen 7 1800X在《战地1》中与Core i7-6950X打成平手,比主频优势明显的Core i7-7700K仅落后3.2%。比较大的差异体现在最低5%的平均帧率上,85.7fps的成绩落后Core i7-7700K约13.4%。在这种平均帧率能够超过90fps的射击游戏中,画面的稳定性对游戏体验带来的影响比帧率之间的差异可能要更为显著。Ryzen 7 1800X在《战地1》中的帧渲染时间曲线的差异系数达到了19.8%,相比之下Core i7-7700K僅有12.1%,意味着Ryzen 7 1800X的帧率波动更为剧烈,这在追求高帧率和高稳定性的FPS对战游戏中是不利的,而帧率波动则体现出可调用核心的性能冗余不足——处理器厂商们可以松口气了,至少在这里,性能仍然没有过剩,更高频率仍有市场。当然,在这个项目上Core i7-6950X的表现要更差劲一些,差异系数达到了21.3%。
《极限竞速:地平线3》(以下简称FH3)是目前PC平台竞速类游戏的画面代表作,其中精致的车辆模型,广袤的无缝地图以及多变的地形与气候系统都对计算性能提出了极其苛刻的需求。作为微软的自家孩子,理论上FH3应当是目前对DirectX 12应用最好的游戏(DirectX 12的最大改进之一即是优化游戏的多线程调度),但是携8核16线程之威的Ryzen 7 1800X却在该游戏中遭遇了“滑铁卢”——平均帧率仅为63.5fps,相较Core i7-7700K落后了1/4还要多,甚至与后者的最低5%平均帧率相差无几。3款处理器在FH3中的帧渲染曲线波动基本处于同一水平(竞速类游戏画面变化不剧烈,因此通常不会有剧烈波动的曲线表现),但Ryzen 7 1800X仍然是其中表现最差的。如此表现是否与AMD CEO苏姿丰女士所说的“Ryzen无法被Windows 10正确识别”有关,现在尚难以判定。毕竟Win 7/8/8.1皆无法运行FH3这款DirectX12游戏,只能静待Windows 10的“Game Mode”上线后再验证。
总体来说,Ryzen 7 1800X除却在个别游戏中会有“跌破眼镜”的表现之外,对于较新的3A级别大作,都具有良好的适应性。其测试成绩尽管依然无法比肩Core i7-7700K,但落差基本符合当前多核心处理器的预期表现,且基本不会对游戏体验造成明显影响。对于只是将游戏当作辅助应用的普通用户而言,Ryzen可以提供令人满意的游戏性能。而对于对高帧率和高稳定性有着无限追求的职业玩家来说,Core i7-7700K依然是更为稳妥的选择。
应用:优劣分明
同游戏相比,常规应用软件的整体环境更为复杂,因此Ryzen 7 1800X的“多核心性价比”策略,在实际应用中呈现出明显的两极分化效应,且与同样多核心的Core i7-6950X还不尽相同。
例如如使用Photoshop CC 2017进行照片处理。测试通过录制脚本对一张15MB人像进行一系列操作,脚本中所涉及操作及滤镜,均遵循Adobe官方说明排除了支持GPU加速的操作,并在软件中关闭GPU加速。Photoshop在大多数操作中均是非常典型的单线程软件,对处理器主频的敏感程度远高于核心或线程数量,因此在该环节中Core i7-7700K毫无疑问拿到了最佳表现,而Ryzen 7 1800X则落后约25%,与频率低得多的Core i7-6950X相差无几。
然而Core i7-6950X凭借多线程在Lightroom的100张RAW转换JPEG批处理操作中搬回一城,拔得头筹。Ryzen 7 1800X却被核心数量少一半的Core i7-7700K继续“吊打”。考虑到WinRAR测试中,Ryzen 7 1800X同样表现不佳,也许意味着在密集型整数运算权重高的应用中,Zen架构恐怕都不乐观。
在浮点密集型运算应用中,Ryzen 7 1800X终于扬眉吐气:在主流渲染工具KeyShot 6中,渲染完成一张1600×1200分辨率的CG仅耗时203s,领先Core i7-7700K高达28.0%;在Adobe Media Encoder CC将一段700MB 1080p分辨率的MPEG2视频文件压缩转换为720pH.264编码的MP4文件测试中,Ryzen 7 1800X耗时仅76s,领先Core i7-7700K约26.9%。
行业应用领域,英特尔多年来建立的深度优化优势可谓根深蒂固,即使在K8时代,AMD也未能站的上风,Ryzen自然也难以占得便宜。例如在Solidworks 2017的测试中,Ryzen 7 1800X在处理器操作上耗时40s,而Core i7-7700K和Core i7-6950X分別耗时27.8s和32.1s;模拟计算中Ryzen 7 1800X耗时55.3s,另外两款产品则只有39.8s和45.0s,领先幅度都非常可观。
复杂的应用场景,在大多数情况下对Ryzen还谈不上友善。这其中架构本身的限制和优化问题各分背多少“锅”还难以一概而论。但软件特别是行业应用类优化远非一日之功,因此对于3D建模操作、图像、音频处理等细分行业的用户来说,目前的Ryzen并非很好的选择。而对于线程利用率非常高的,例如建筑/装修效果图渲染、中小型视频渲染/转码等应用来说,Ryzen 7 1800X以低一半的价格,近乎1/3的整体平台采购成本,提供了与英特尔消费级别旗舰型号产品相近的性能表现,是非常具有性价比的方案。
仅是先锋官 翻身还需再努力
Ryzen系列处理器相比前代产品巨大的进步幅度,以及对比竞品出色的规格/价格比(因为实际应用情况太过复杂,我们特意不使用“性价比”一词),让人很难不对处于困境中的AMD充满敬意甚至拍手叫好。这也是在产业链条中处于绝对劣势的消费者对于多年来缺乏竞争的桌面处理器市场的一种抗争的声音。
审视产品本身,Ryzen对于普通用户更多的是提供了不同平台的选择权——当前的日常应用负载即使是入门级处理器都能很好的满足需求,而对于办公、网页浏览等应用来说,通常主频提升带来的优势更直观和显著。Ryzen7系列处理器给出来的“多核心”解决方案,在日常应用下恐怕难有用武之地,除去游戏领域未来可期。
Ryzen处理器最大的潜在客户是中小型的建筑设计公司、家装公司、小型动画和视频工作室这样的处于起步的中小型企业,在资金不充裕,又对并行计算性能有着极度渴求的情况下,并行计算性能强悍的Ryzen7堪称是久旱中的甘霖,无论是节约采购预算还是在同样预算下换来更多的计算性能,都无疑是他们所需要的。
对于AMD来说,在高性能桌面处理器市场缺席多年后,终于重返舞台。无论是消费者的翘首期盼,还是友商的严阵以待,都意味着Ryzen 7作为AMD反击的先锋官,已经出色的完成了使命。最终AMD是继续高歌猛进还是沦为昙花一现,还要看更主流规格的的Ryzen 5/3是否能够在应用中与英特尔的Core i5/i3分庭抗礼。从上面测试中的单线程同频性能来看,Ryzen与同时期的Kaby Lake相比依然有着不容忽视的差距,好消息是Core i5在主频上比较保守,意味着Ryzen5面对的竞争压力并不大。坏消息同样是对方在主频上比较保守,考虑到英特尔在14nm上的工艺优化愈发成熟,意味着很容易通过增加主频来提升Core i5的产品竞争力。对此Ryzen恐怕应对乏力,毕竟GlobalFounderies的14nm LPP工艺在频率上本就不擅长。
战地1帧率曲线。
Ryzen 7的成功同样还会给整机OEM厂商以信心,促进其推出基于Ryzen平台的整机产品。考虑到AMD已经明确表示AM4接口将稳定延续多代产品,这显然将降低OEM厂商在芯片组上的采购和库存压力。反观英特尔即将面临下一轮接口更替大潮,未来的处理器平台、接口和芯片组之间的对应关系将更加纷繁复杂。此消彼长之间,倘若Ryzen能够在性能和消费者口碑接近英特尔,OEM厂商对于推动Ryzen机型的销售必将不遗余力。如果再能于移动平台上凭借Zen架构的APU产品分一杯羹,才是AMD真正收复失地与赚大钱的机会。
Ryzen为沉寂许久的桌面处理器市场再度带来了竞争的味道,这才是最重要的。
帧渲染时间:即每1帧画面渲染所消耗的时间。常用计量单位为毫秒(ms)。因为可以精确到每1帧的实际生成时间,所以可以更为准确的判定是否在这一画面帧中出现了卡顿的现象。同时由于帧渲染时间的单位缩减到毫秒级别,因此数据的采样率要比帧率高得多。
以30fps为流畅标准,则每1帧的平均生成时间约为33.3ms。帧渲染时间低于该数值的,即为流畅帧,在测试采样数据中,低于该时间标准的画面帧占采样总帧数的比例,即“流暢帧百分比”,同理,渲染时间低于16.7ms(等效帧率60fps)的画面帧占总帧数的比例即为“极流畅帧比例”。
人眼对于连贯画面的普遍最低需求为15fps,换算为每一帧的平均生成时间约为66.7ms,帧渲染时间超过该数值的,即为卡顿帧,在测试采样数据中,超过该时间标准的画面帧占总帧数的比例,即卡顿帧百分比。
帧渲染时间的差异系数为采样数据标准差与平均值的百分比,用来衡量帧渲染时间曲线的抖动情况,差异系数越大,意味着帧渲染时间和帧率抖动越剧烈,游戏体验越差。差异系数越小,则曲线越趋于平滑,游戏体验越好。差异系数的总体水平与游戏引擎关系较大,不同游戏之间的差异系数不可比较。
最低5%平均帧率:传统游戏测试中通常使用的“最低帧率“偶然性较高,特别是在联网游戏中,有可能因为网络延迟造成某一帧出现过低帧率从而影响对硬件实际性能的判断。因此目前逐渐开始引入”最低5%平均帧率”这一概念,即所有采样帧中帧率数值最低的5%的平均值。通过扩大数据取样范围来抵消偶然性因素,从而更准确的反映出测试硬件的实际性能表现。