华为海思Kirin 960芯片:细看其性能与功耗 by AnandTech
写在前面
趁着这波华为P10闪存事件的火热,咱来说说华为最新的麒麟960芯片。这篇文章是编译自AnandTech——其实一两个月之前就已经开始翻了,不过工作很忙一直到今天下午才搞定。
之所以编译海思Kirin 960芯片评测,倒不是因为华为最近站在风口浪尖,而是这颗芯片的确在某些方面表现得很有趣。因为Kirin 950被证明是华为历史上最成功的SoC——尤其是950能够以最高频率(两颗大核心)持续几乎无限制运行,说明其最高频率甚至都没到热平衡拐点,这是不多见的。
Kirin 960如何也就更让人更期待了。这篇文章很长,虽然并非纯技术流,看完全文依旧需要耐心。这里总结几个有趣的点:
1.Kirin 960总体性能肯定是比950更好的,但效能相对差了点。不过两颗大核以最高频率依旧能坚挺十几分钟,虽然比不上950,但也算十分优秀;
2.Kirin 960的功耗更高,这有点奇怪,因为A73核心理应比A72更省电才对;具体是什么原因,请从文章中找;
3.Kirin 960虽然功耗更高,但是Mate 9这款手机的续航表现却比Mate 8更好,所以很有趣;具体是什么原因,请从文章中找;
4.Kirin 960的Mali-G71 GPU性能综合表现达到或超过骁龙820/821的Adreno 530;
(补充:针对这一项,我这里提醒一下,仔细看成绩就会发现,峰值性能下Kirin 960的GPU是以骁龙821 GPU的两倍功耗才换来了接近的帧率。但以更低功率运行时,Kirin 960的GPU性能表现也并不差,且其实际游戏中的性能稳定性表现也是不错的,虽然的确还是以更高的功耗换来的。 )
5.但Kirin 960所用的这颗GPU,被AnandTech认为是他们评测过有史以来效能最差没有之一;且马力全开时的功率高到离谱;
就我个人观点,海思在Kirin 960之上是付出了看得到的努力的,即便可能由于工艺制程,以及为了飙峰值性能而存在一些问题,但其各方面的努力和表现都不该被一言带过。而且海思的处理器从早年的性能孱弱到如今,已经有了飞跃式的进步,海思已非当年的海思。最后再说一句:Kirin 960采用16FFC工艺可能并非海思所愿,引用一句高人的话,能让台积电叫爸爸的就只有苹果而已,更何况还有高通这个大客户在,Kirin 960只能在妥协中求生。
另外我也期望借这篇文章让更多对手机感兴趣的同学能够进一步沉迷到数据和理论的世界中。需要指出的是,译文对“效能”和“能效”这两个词进行了混用,表达同一个意思,即能耗的效率。但请注意,能效(Efficiency)需要与“能耗”(或功耗, Power/Energy)和“性能”(Performance)进行区分。
原本我想对各部分评测项作更为详细的一些解释,但实在没这个时间就作罢了。值得一提的是最新的华为P10也采用麒麟960 SoC,不过这篇Kirin 960的评测仅基于Mate 9——考虑到Mate 9的屏幕也明显更大,P10可能未必会有Mate 9这样的CPU稳定性表现。
以下是这篇文章的全文编译,文章原标题:《 HiSilicon Kirin 960: A Closer Look at Performance and Power 》 。如有编译错误,还请不吝指教。
-------------
海思Kirin 950对于华为来说的确是个出色的产品,不少华为旗舰手机都用上了这了95x SoC,包括Mate 8、P9和P9 Plus,以及荣耀8。其big.LITTLE组合方式包括四个A72与四个A53 CPU核心,采用台积电的16nm FF+ FinFET工艺制程,在性能和功耗方面表现出色。可以说,这是我们所见ARM IP实现最棒的产品之一。
950这么成功,我们也就很想知道Kirin 960的提升究竟如何了。我们在针对华为Mate 9(首款采用Kirin 960芯片)的测试中提到了它与Mate 8及其Kirin 950 SoC诸多方面的对比。在这篇文章中,我们会再做挖掘,回答一些遗留的问题:A73、A72和其他CPU核心之间的IPC(IPC是指每一时钟周期内执行了多少指令)对比如何?A73微架构变化对于存储性能有着怎样的影响?CPU效能是否提升?新增的GPU核心功耗如何?
Kirin 960是首款采用ARM最新A73 CPU核心的SoC,而Kirin 950先前也是首款采用ARM A72的SoC。其CPU核心频率相比Kirin 950略微提升:四个A53核心从1.81GHz提升到1.84GHz,四个A73核心则从(先前A72的)2.30GHz提升到2.36GHz。其最高频率相较Kirin 955 A72核心的2.52GHz要低,比ARM针对16nm设定的2.8GHz也更低。海思如此限制CPU频率的选择很有趣,也很慎重,这大概可以让GPU规模更大。
我们先前已经深度探讨了A73微架构,这里只对其中的一些重点进行总结。A73源自A17,并不属于A15/A57/A72 Austin家族。也就是说,A72和A73之间有着更为本质的区别,而并非只有小幅更新,尤其是在CPU前端。
最大的不同在于decoder(解码器)带宽缩减,相较A72的3-wide变成了2-wide。从纸面上来看这似乎是个降级,不过A72的取指块未能持续令decoder工作满载,所以A73缩减指令解码阶段对实际性能的影响可能并不会很大。
在许多情况下,A73的指令分配吞吐实际相较A72有提升。A73更短的流水线减少了前端延迟,针对decoder少了1-2个周期,解码绝大部分指令只需要1个周期,取指阶段不到1个周期。L1指令缓存在尺寸上翻倍,针对更佳的吞吐做了优化,取指块的改进能够减少指令Bubble。ARM还说A73采用全新的、更为准确的分支预测器,以及更大的BTAC(分支目标地址缓存)结构和用于加速分支预测的64-entry "micro-BTAC"。
另外前端还有其他的一些变化,所以总的来说A73相较A72已经有了不小的变化,两者采用的也是不同的设计理念。Austin家族(A72)以工业和低功耗服务器应用及移动领域为目标市场,而A73则特别着重于移动市场——power和area在设计中都有着更高的优先级。ARM表示,A73相比A72(相同工艺、相同频率)功耗低20%-30%,至多变小了25%(相同工艺,相同性能目标)。
至于Kirin 960的GPU,海思显然更着力于其性能。其前代SoC,如Kirin 950/955,都由于采用四核Mali而饱受诟病,三星Exynos SoC采用八核乃至十二核Mali核心,高通则为其Adreno GPU注入了更多的ALU资源。这其实不应该被过度苛责,因为Kirin 950的Mali-T880MP4 GPU是能够胜任绝大部分游戏的,而且是以可接受的帧率;实际上Mate 8(Kirin 950)、三星Galaxy S7 edge(骁龙820)以及Galaxy S7(Exyno 8890)在到达热平衡状态(译者注:就是稳定状态)时,彼此之间的实际性能差异是很小的。
不管是否为了回应那些批评的声音,还是为了针对VR/AR这样的未来场景做准备,海思极大增强了其Kirin 960的GPU峰值性能。Kirin 960不仅是首款采用ARM最新Mali-G71 GPU的SoC,其峰值频率已经达到1037MHz,相较950更小的GPU高出15%,核心数增加到8个。
Mali-G71采用ARM最新的Bifrost微架构,从先前依赖于ILP(指令级并行)的SIMD ISA,转向了当代桌面GPU架构那样TLP(线程级并行)的标量ISA。这里不打算做深度讲解,不过总的来说,这种变化实现了shader核心的优化利用,增强了吞吐和性能。ARM先前的Midgard微架构需要从一个单线程释放4条指令,并同时执行获取单个shader核心的完全利用——要持续如此是有难度的。相较而言,Bifrost能够在一个shader core之上将4个独立的线程组合起来,从每个执行一条单线程,这与当代图形和计算负载需求更为吻合。
我们已经了解了Kirin 960的设计初衷——期望CPU获得更高的效率,GPU则提供更出色的峰值性能,另外我们也对海思在硬件方面的变化做了些总结。接下来就一起来看看Kirin 960相比950/955与其他SoC,在性能与功耗方面的表现究竟如何。
CPU性能
首先通过一些合成测试(synthetic test)来看A73的整数和浮点运算IPC。随后我们再看看存储(memory)系统的变化是如何影响其延迟和带宽的。最终,在完成更低级别的测试之后,我们会看到华为Mate 9及其Kirin 960 SoC在跑真实负载的时候又是如何。
首先用SPECint2000来看A73的整数运算性能,SPECint2000是SPEC CPU2000基准测试的整数运算组成部分,由Standard Performance Evaluation Corporation公司开发。这份单线程测试成绩,可让我们对比竞品CPU微架构的IPC。下面这些得分不能作为很正规的参考数据,原本需要SPEC的监督,不过我们尽量选择合适的测试,令测试通过我们的内部认证。
SPECint2000测试得分,括号里的数字表示Kirin 960在这项测试中的成绩相较相应处理器更优或更糟百分之多少,以下同
Kirin 960的A73 CPU相比Kirin 950的A72平均快了11%。除了前文探讨前端改进,和接下来会提到的存储系统改进,A73的整型流水线也做了一些调整。A72有3个整数ALU,其中两个简单ALU,针对基本运算,例如加法和移位;还有一个专门的多周期ALU,针对复杂运算,如乘法、除法和乘法累加——而A73仅有2个整数运算ALU,负责基本和复杂运算。这对性能存在多方面的影响。比如说,A73的其中一个ALU处理除法时,仅有一个ALU能够处理乘法,所以如果执行乘法或者除法的话没什么大问题;不过如果一个ALU被一个多周期指令占用,便不能像A72专门的流水线那样执行简单指令了,这会造成性能方面的损失。乘法累加运算则要求A73的两条流水线,导致类似的性能损失。但也不尽然,执行并行运算或者采用某些其他复杂指令的工作负载,A73之上可能会产生相较A72双倍的执行吞吐。
需要注意的是,上面这张表并没有考虑到CPU频率方面的差异。Kirin 960的频率相比Kirin 950和骁龙821的优势不到3%,所以这个数字还是比较好比的,但和Exynos 7420比起来频率就高出12%了。下面这张表即消除了频率方面的差异做对比,将SPECint2000得分除以CPU频率,令IPC对比更直观。
每MHz的得分情况,分数更高越好
抛开A73和A72在微架构方面的实质性差异,A73的整数IPC只比A72高了11%,这应该是改进和妥协双方此消彼长的结果。假设ARM宣称的功耗降低是真的,那么这个结果就不差了。
而A73和A57之间的差距就增加到了29%。高通自己的Kryo核心整数性能落后于ARM A73和A72核心,和A57的IPC类似。
GeekBench 4,整数运算性能,单线程
升级版Geekbench 4有了新的整数运算测试项目。和SPECint2000结果类似,我们看到Kirin 960相比Kirin 950在多个测试项中表现出5%-15%的提升,但无法一概而论。Kirin 960实际上在某些测试中比Kirin 950更慢;在Canny和直方图均衡(Histogram Equalization)测试项中,A73甚至比Exynos 7420的A57还要慢。在JPEG、PDF渲染(PDF Rendering)和相机测试(Camera)中,也落后于高通的Kryo。Kirin 960表现不错的项目HMTL5 Parse、HTML5 DOM和SQLite都是比较普通的工作任务,在真实使用中应该会有不错的表现。
Geekbench 4,每MHz的整数运算性能得分,单线程,越高越好
上面这张图考虑到了CPU频率方面的差异,要直接比较IPC会更直观。总体看来,在这组任务中,A73相比A72仅提升了4%,相比A57则提升了12%——相比SPECint2000略低。不过从不同幅度变化来看,从Dijikstra的33.5%到Canny的16.1%,很难笼统地说A73的整数运算性能比A72好或差。
高通Kryo CPU虽然在不少Geekbench整数型测试项中有不错的成绩,但再度落后于A57。其总分受到了LLVM和HTML5 DOM悲剧性能表现的影响。
其中也加上了ARM A53的成绩——A73的整数IPC总体高出1.7-2倍,这就解释了为什么相较有2-4个大核心(A73/A72/A57)的SoC,八核A53 SoC要慢得多,尤其是在网页浏览的时候。
Geekbench 4,浮点运算性能,单线程
除了SPPF和Speech Recognition测试项例外,Kirin 960在Geekbench 4的浮点运算方面相比Kirin 950略慢。这就有点奇怪了,因为ARM宣称,A73的NEON执行单元相比A72的设计几乎没什么变化,特定指令减少延迟,提升NEON性能5%。另外考虑A73前端延迟更低,而且还提升了读取块和存储子系统,这个结果就更奇怪了。有可能是,部分测试得分受到A73解码阶段缩减的影响,不过测试都比较复杂,所以不能一概而论。不知其他SoC厂商的A73实施方案测试结果是否也会如此。
Geekbench 4,每MHz的浮点运算性能得分,越高越好
如果考虑CPU频率,Kirin 960的A73浮点IPC总体相较A72弱了3%-5%,但比A57强大约3%。这个成绩是各浮点子项得分取几何平均数,还是符合预期的。
在浮点运算表现方面,高通定制的Kryo核心显然是很抢眼的。虽说整数IPC都还没有ARM的A57出色,但在Geekbench 4中浮点IPC比A72高23%,尤其在Gaussian Blur和HDR测试项中有很强的表现。
存储性能
ARM在A73的存储系统(memory system,译者注:需要指出,memory并不是指内存,memory是个更宽泛的概念,Register寄存器、Cache缓存等都属于memory)方面进行了多项改进。L1缓存容量都有提升,指令缓存(I-cache)从48KB(A72)增加到64KB,数据缓存(D-cache)则容量翻翻到64KB。A73还有其他一些改进,比如取指的加强,这应该也能加强缓存性能。
A73和A72一样也有2个AGU(地址生成单元),不过先前A72的每个AGU专门用来进行load和store操作,而A73的这两个AGU分别都能进行load和store操作,这应该能够提升进入主系统存储的发射率。
CPU缓存与存储延迟表现,随机访问,越低越好
Kirin 960更大的64KB L1缓存延迟1.27ns,Kirin 950为1.74ns,提升27%——这个值相较两颗CPU频率2.6%的变化,表明A73的L1缓存的确是有提升的。L2缓存延迟原本应该是一样的,不过Kirin 960相比950在访问内存(main memory)时延迟有27%的提升,这应该是受惠于CPU部分更低的延迟。
存储带宽结果比较明确,Kirin 960在L1缓存读取带宽方面,相比Kirin 950提升最高30%,不过L1写入带宽更低,差距差不多也是这个值。Kirin 960的L2缓存带宽在读和写的带宽方面都更低,差距最多可达30%。
NEON指令读取带宽,两个线程,越高越好
NEON指令写入带宽,两个线程,越高越好
上面这两张图是采用两个线程进行NEON指令的读和写,这能够表现Kirin 960的存储带宽。在读取指令的时候,Kirin 960的L1缓存表现超过950,但一旦到了L2缓存带宽就会掉下来。在L1、L2的缓存写入方面,Kirin 950都比960更强,前者仅在写入系统存储的时候才比960带宽差。在缓存带宽方面的缩减,也解释了为什么在Geekbench 4的多项浮点测试中,Kirin 960表现略有退步。
Geekbench 4,存储性能,单线程
虽说Kirin 960的L1/L2缓存性能有各种此消彼长,但相较Kirin 950在利用系统存储方面还是有明确优势的。存储延迟提升25%,这与我们内部测试结果相同,存储带宽提升69%。A73的两个load/store AGU可能在这方面起到了很大的帮助,Mate 9更高的存储总线频率应该也是有帮助的。
系统性能
光看上面的跑分价值不算太大,接下来,就来看看Kirin 960的CPU和存储性能用到真实世界执行任务的表现如何。值得注意的是OEM厂商本身就是影响性能和续航平衡的因素,比如OEM厂商对于温度的限制、CPU调度器和DVFS行为设定——所以很多设备采用相同的SoC但性能还是存在差异的。
PCMark整体性能测试,得分越高越好
PCMark网页浏览测试,得分越高越好
PCMark写入测试,得分越高越好
PCMark数据操作测试,得分越高越好
PCMark包含多项真实负载测试,通过一般应用所用的Android API调用来对CPU、GPU、RAM和NAND闪存进行压力测试。华为Mate 9及其Kirin 960 SoC每一个项目都居于顶端,相比Mate 8和Kirin 950总体有15%的超越,相比性能最好的骁龙821手机——其优势也最多达到了20%。
在网页浏览(Web Browsing)测试中,Mate 9相较Mate 8优势仅有4%,但这仍是我们目前测试过最快的手机。整数性能本非Kryo CPU强项,在整数运算负载较重的测试中,所有采用骁龙820/821的手机都比采用ARM A72和A73 CPU SoC的设备弱——其中骁龙821手机中性能最好的是乐视Pro 3,相比Mate 8的这项成绩低了18%。
上面的写入(Writing)测试会进行各种操作,包括PDF处理和文件加密(都是整数运算负载),还有一些相关存储的操作,以及向内置NAND读取和写入一些文件,这会激发CPU大核心频繁、短暂的峰值表现。Mate 9在这方面的表现也不错,其性能优势较Mate 8达到23%。这项测试中,不同的骁龙820/821手机表现有较大差异;乐视Pro 3——骁龙821中性能最强的手机,相比Galaxy S7 edge快了40%。这再度表明其他硬件组件和OEM软件对用户体验存在的影响。
数据操作(Data Manipulation)测试项也是整数运算负载测试项,它评估的是从各种不同文件类型来解析数据块需要多久,并且与动态图表交互时记录下帧率。在这项测试中,Mate 9相比Mate 8快了30%,相比Pixel XL快了37%。
Kraken 1.1测试,单位毫秒,越低越好
WebXPRT 2015测试,得分越高越好
JetStream 1.1测试,得分越高越好
所有的骁龙820/821手机在Kraken JavaScript测试中都表现得不错,相比Mate 9有略微的领先优势。华为P9采用Kirin 955芯片,CPU频率多出7%,所以在Kraken和JetStream测试中和Mate 9表现差不多。Mate 9在WebXPRT 2015测试中领先11%,其他三项测试相比Mate 8也有10%-19%的提升。上表中唯一采用八核A53 CPU配置的手机Moto Z Play Droid,甚至没能达到Mate 9表现的一半,这与我们整数IPC测试中的成绩类似。
在上一部分更低一级针对CPU和存储的测试中,Kirin 960的成绩是一半一半的,在某些测试中优于Kirin 950,某些则有所落后。但在这部分的系统级测试中,采用真实世界负载任务测试,Mate 9和Kirin 960显然是赢家。在SoC和用户之间有很多硬件、软件层级,所以用SoC基准测试来测试系统性能,和用系统基准测试(如PCMark)来测试CPU性能是不够靠谱的。
CPU功耗与热稳定性
CPU功耗
Kirin 950的性能(performance)和效能(power efficiency,也可以说效率)是非常出色的,ARM又宣称其A73 CPU相较Kirin 950的A72核心,功耗低了20%-30%(相同制程、相同频率的情况下),所以有理由期待Kirin 960在能耗方便更好的表现。在了解差异之前,还是需要说明,ARM的纸面数据和真实实施方案之间还是有差别的,Kirin 960的A73核心就是具体实现,所以需要考虑许多因素——工艺和单元库选择,关键路径优化等,这些都会影响到处理器的效率。
为了了解CPU功耗,我们采用不同线程数来人为加载核心(译者注:原文是说用power virus来测试,直译就是功率病毒,这里可译作功耗程序)。借由每台设备自带的数据来做计算,从相应场景的总功率减去闲置功率(仅显示静态屏幕所需资源),得到表中所谓的Active Power消耗功率。这种统计方法并不完美,而且也没有可将既定块消耗资源单独出来的方式,比如SoC互联、内存控制器或者DRAM,所以下面这些数据包含了一些增量。下面的“1 Core”列数据更靠谱。
系统消耗功率,单位毫瓦(mW)
比较意外的是,Kirin 960的CPU大核心相较Kirin 950的A72消耗了更多资源,最大差距达到了43%!这和ARM自身制定A73的目标是相悖的,原本ARM宣称A73能够节约能耗,加强持续性能。我们无从了解,为何Kirin 960在最高频率下功率更高,这可能与工艺和实施方案都是有关的。
Kirin 950采用台积电的16FF+ FinFET工艺,不过针对Kirin 960,海思则转而采用台积电的16FFC FinFET工艺。更新版本的16FFC工艺减少了生产成本和die尺寸,令其在中端和低端市场更具竞争力。台积电还宣称,这种工艺能够低于0.6V运行,减少泄露和动态能耗,所以它很适合可穿戴设备和IoT产品。所以这是定位于对价格比较敏感的市场,外加超低功耗的可穿戴设备的,这种工艺倾向于采用更低的频率运行,而非像Kirin 960这样的2.36GHz频率。将定位性能更低、以更低电压和频率为目标的16FFC工艺,应用更高的频率,令其突破效能临界点,可能就是其功耗更高的原因所在。
Kirin 960和950的上述差异应该不止是工艺的关系。架构的具体实施方案在其中扮演更重要的角色。海思在16FF+工艺的Kirin 950的表现上很好,所以其效率也不错。要达到这样的表现本来就有难度,更何况还有16FF+与16FFC的差别,需求不同,工艺也不同。我们无从了解海思在这颗芯片上的表现与最优方案有多大差距,因为没有其他16FFC工艺的A73 CPU可作比较。
Kirin 960的峰值功率数值和Kirin 955(高频版Kirin 950)很接近。其单核方面的功率提升和Exynos 7420频率更低的A57核心接近,只少了50mW。
Kirin 960的A73核心相比骁龙820/821中的两个高性能Kryo核心功耗更低,最高为2.8W——后者最高为3.1-3.3W。骁龙的四颗核心中有两个是以更低频率运行的,功耗也更低,所以在3-4个核心一起运行的时候,Kirin 960的功耗优势就不存在了。
PCMark续航测试,单位小时,越高越好
华为Mate 9虽然在功率峰值状态的功耗更高,但在我们的电池续航测试中却表现得很不错。在WiFi网页浏览-屏幕长开测试中续航时间13.25小时,比Mate 8多出3个小时,而PCMark 2.0测试则接近10个小时,比Mate 8多出27%。续航成绩和我们在CPU功耗方面的数据是相悖的。
PCMark总的系统功率变化,单位瓦(W)
上图展示了Mate 9在跑PCMark 2.0性能测试的时候,总的系统功耗变化(所有无线信号全部切断,屏幕亮度降低至10nits)。除了某些情况下会形成功率峰值,总的功率维持在3W以下,一般都低于2W,也都远低于我们测试Kirin 960四个大核心并开时的5.3W。
(译者注:原文并没有对Power Comsumption与Energy Comsuption进行区分,文章中许多地方表达的“功耗”一词,意思和功率差不多,单位为瓦特或毫瓦;而文中出现“能耗”一词时,英文表达为Energy Consumption,则是指具体消耗了多少能量,单位为焦耳。1瓦特=1焦耳/秒。
但有时,文章对这两个词进行了混用;这里对功耗和能耗这两个中文表达的区分不够规范和严谨。文中不再作另外说明。)
展示这张图是因为我们日常使用的绝大部分应用行为,和PCMark都比较类似,从小核心到大核心的线程切换,还有DVFS工作令负载与CPU频率相匹配(不过绝大部分日常应用会表现出明显更多的CPU闲置时间,从这个角度来看,PCMark还是略显偏激)。许多任务负载也只用1-2个大核心,PCMark也是如此。在两个核心以最高频率运行的时候,Kirin 960相较950功耗多出754mW,而在开启四个核心的时候则多1601mW。所以说,虽然CPU效能是比较重要的,但还需要与具体日常使用中的工作负载相结合。
PCMark系统能耗(Energy Comsumption)对比,单位焦耳(J),越低越好
PCMark设备效能,每焦耳的得分,越高越好
光看功率值是不行的,一台设备可能比另一台设备功率更高,但完成任务的时间也更短,或者实际上其能耗更少,续航更久。对于上面两张图来说,手机的无线电都已关闭,显示屏亮度调整到仅10nits(常规最低设置)来减少不同屏幕尺寸和效能的屏幕对于结果的影响。
第一张图展示了手机运行PCMark 2.0性能测试时的总能耗,Mate 9相比Mate 8整体多出16%的能耗(虽然我们尽可能让屏幕的影响最小,P9的能耗还是比Mate 8略低,这和更小的屏幕尺寸可能也是有关系的)。视频和照片编辑测试项(Video和Photo Editing)会启用GPU,这类测试会表现出最大化差异;写入测试(Writing),会频繁用到CPU大核心,这项测试相比平均水准也会表现出更大的差异。乐视Pro3手机,及其骁龙821 SoC在数据操作与写入测试(Data Manipulation和Writing)中的确相比Mate 9能耗更大,用上了2个高性能的Kryo核心;不过在用到GPU的视频与照片编辑测试中,Mate 9和Kirin 960就没有优势了。
第二张图将PCMark的得分除以能耗,用以表现效能。由于Mate 9性能更出色,所以在写入(Writing)测试中,效能比Mate 8高出7%,在数据操作(Data Manipulation)测试中效能高出17%。不过Mate 9的GPU效能是这组测试中最差的,从视频与照片编辑测试(Video与Photo Editing)就能看得出来。相较之下乐视Pro3的Adreno 530 GPU在这些测试中效能就明显更好了。
显示屏亮度-功率曲线,亮度单位尼特(nit),功率单位毫瓦(mW)
虽然Kirin 960 SoC能耗更大,不过在PCMark的电池续航测试中,Mate 9相比Mate 8却续航更久,这么看来华为必然是在手机的其它部分减少了能耗。显示屏就成为最值得观察的部件,上图很清晰地展示了Mate 9的屏幕明显更省电。在200nits亮度下(我们用于电池测试的值),Mate 9功耗少了约19%。运行PCMark的时间,可转化为82J能量,基本消除了Mate 9和Mate 8之间102J的差距。我怀疑,这里显示屏功率方面的差异可能略大了一点,我们没有设备能够进行更准确的测试。这仍然无法完整地说明Mate 9功耗究竟省在了哪些地方,这也脱离了这篇文章讨论的范畴。
CPU热稳定性
我们的CPU调节测试,还是用上了前面的功耗程序(power virus),2个线程跑在2个A73大核心之上,跑大约30分钟。目标是要看设备维持CPU峰值性能的能力,也就是不对用户体验造成太大的影响。这也考验设备的散热能力,以及设备对于温度的安全限制。
CPU频率分布,横轴时间单位秒
Mate 8及其Kirin 950几乎能够毫无限制地让两颗A72核心维持住峰值性能,这可称得上牛逼了。Mate 9的表现就没有那么好了,因为Kirin 960用上了更高的功率。不过即便如此,Kirin 960依旧能够让两颗A73核心在峰值频率上运行11.3分钟,而且在20分钟的时间里对于频率的调整都没有对性能产生实际的影响,这仍然是非常出色的成绩。至少我没有想到其它手机的CPU工作负载,能够以这样的表现加载两颗大核心。所以仍然可以说,对Mate 9而言,CPU频率调节并不是个问题。这样一来,华为更小的手机,比如P10是否也能够有这样的表现就更值得观察了,毕竟更小的设备无法获得大设备那样的散热表现。
GPU功耗与热稳定性
GPU功耗
Kirin 960采用ARM最新的Mali-G71 GPU,先前的Kirin SoC为了平衡性能和功耗普遍用上了更少的GPU核心,这次Kirin 960的GPU也上了八个核心,显然是开始专注于峰值性能了。更多的核心也意味着更高的功率,持续性能表现可能是很多人关心的。
我们针对GPU功耗测试的方法和CPU部分是类似的。运行GFXBench Manhattan 3.1和T-Rex离屏性能测试(译者注:这里吐槽一句,不知道是哪个恶劣的译者首先把offscreen这个词翻译成了“离屏”,不仅难听到爆,而且一般国人也无法理解,还离屏,怎么不说离婚?),我们在运行每项测试时,从总的消耗功率(Active Power)中减去闲置功率,来计算系统负载功率——用的是每台设备自己提供的数据。
GFXBench曼哈顿3.1离屏能效表现,第二列为GPU的工艺制程,第三列为运行帧率-越高越好,第四列为平均功率-越低越好,第五列为每瓦特的帧率-越高越好
Mate 9的8.63W平均功率成为全组最高,对于智能手机的SoC而言的确是不大能接受的。GPU功耗这么高,就算同时只有1个A73 CPU核心跑在最高频率下,TDP都不可能不超过10W,这可能对于一台大型平板来说是可以接受的。Mate 9的GPU核心也达到了1037MHz,这也是不大合理的。相较而言,采用三星14LPE FinFET工艺的Exynos 7420,同样也是八核Mali GPU(不过是更老的Mali-T760),频率最高也就772MHz,这样才保持其平均功率低于5W。
Mate 9的平均功率相比Mate 8高出3.1倍,不过由于峰值性能也提升了差不多的量,能效基本也就持平了。高通骁龙820/821采用的Adreno 530 GPU在相同的负载下很轻易地达到了最佳效能;相较Kirin 960达到相同性能表现,前者只用了不到一半的功率。
GFXBench T-Rex离屏能效表现,由上至下顺序按照第五列的能效表现排名
在T-Rex测试中,Kirin 960的表现更糟,平均功率增加到9.51W,且GPU能效达到有史以来我们测试过所有设备的最低值。作为对比,三星Galaxy S7所用的Exynos 8890采用12核心Mali-T880 GPU,最高频率是650MHz,平均功率4.7W,能效高出了78%。
我们测试过的所有旗舰SoC,包括苹果、高通和三星,在这项测试中触顶也就5W的程度。即便如此,由于运行中温度升高,这些SoC都无法维持峰值性能较长时间。理想化的情况是手机在这项测试中功率低于4W,提升到5W以上是相当不合理的。
GFXBench曼哈顿ES 3.1/Metal电池续航测试,时间小时,越高越好
Kirin 960更高的功耗对于Mate 9游戏时的续航是有负面影响的。相较Mate 8,其运行时间少了1个小时,整体低了22%,这和Mate 9在测试中不对GPU频率进行适当的限制显然是有关的。所以,Mate 9在此项测试中的续航时间和其它旗舰手机相似(但其它手机电池容量更小),性能表现相当或更佳。为了进一步了解Kirin 960这种较高的GPU功耗,却在我们的游戏测试中表现出可接受的电池续航的原因,我们需要进一步探寻测试中其行为。
GPU热稳定性
GFXBench曼哈顿3.1/Metal性能稳定性曲线,横轴时间单位小时,纵轴帧率单位FPS,越高越好
GFXBench曼哈顿3.1/Metal系统总功率 vs GPU频率,橙色曲线代表系统功率,蓝色曲线代表GPU频率;横轴时间单位分钟,橙色曲线纵轴单位瓦特(W),蓝色曲线纵轴单位MHz
Mate 9在降低GPU频率之前,仅维持住了峰值性能约1分钟,8分钟后帧率掉到21fps,相较峰值降低38%。在大约30分钟后开始平稳,帧率保持在19fps上下,这个成绩依然比采用Kirin 950/955的手机更好——后者峰值帧率为11.5fps,平稳状态下是9-11fps。这样的表现和采用骁龙820/821的手机差不多,或者更好。比如说Moto Z Force Droid能够维持近18fps的峰值性能大约12分钟,稳定状态下帧率为14.5fps,乐视Pro3峰值表现33fps,稳定帧率19fps。
上面的第二张图,表现这项游戏续航测试前15分钟的功耗变化。可以看到一旦GPU降到533MHz,平均功耗就降到了4W以下——此刻的性能依然与其它旗舰SoC处于同等水平。这说明华为/海思针对Kirin 960的GPU可能应该选择650MHz-700Mhz的最高频率。将GPU频率推高到1037MHz的唯一原因,应该就是要让设备规格看起来更好,以及在跑分测试中得分更高。
实际上降低其GPU频率并不会提升Kirin 960在GPU低频率下的效能。因为现在我们没有其它采用Mali-G71的SoC可对比,我们也就无法下结论说上面的测试结果就是ARM这款最新GPU微架构的表现。
总结
海思Kirin 950先前就表现出了出色的性能和效率,这让我们对其继任者有了更高的期待。至少从纸面数据来看,Kirin 960各方面的表现都更好。这颗SoC采用ARM最新IP,包括A73 CPU和更多核心的Mali-G71 GPU,还有CCI-550互联总线。其他方面也有提升,如更新的modem,支持更快的LTE速度,另外还支持UFS 2.1。但在性能和效能方面,Kirin 960的表现是好坏参半的。
在处理整型工作任务的时候,Kirin 960的A73 CPU核心相比950的A72的确一定程度上更快,相比高通的Kryo和更早的A57核心优势也更大。而在浮点运算IPC方面,结果就相反了,高通的Kryo和Kirin 950的A72核心相比960的A73成绩更好。
某些性能方面的退步可能与Kirin 960的存储性能表现有关。其更大的64KB L1缓存在延迟和读取带宽方面有提升,但写入带宽相较Kirin 950更低。且960的L2缓存带宽,无论是读还是写都更低。其主存储延迟提升了25%,而带宽提升则有69%。
Kirin 960比较让人失望(以及令人疑惑的)的地方在于CPU效能比950差。ARM其实在A73的功耗方面,相较A72是做了很多工作的。悲剧的能效表现,和海思的具体实施方案,以及采用16FFC工艺可能都是有关系的。不过Mate 9的续航表现却更好了,因为手机其它组件更省电,比如显示屏,抵消了SoC功耗提升的问题。但不难想见,其电池续航表现原本是可以更好的。
Kirin 960的GPU效能更糟,其峰值功耗对于一款手机而言甚至是完全不合理的。这可能与其具体实施方案和工艺都是有关系的,而且最高频率还上了极为激进的1037MHz,这只能让配置规格和跑分结果看起来更好。
所以Kirin 960很难界定,我们无法确切地说它相较950是种升级,但我们也不能忽略忽略其全方位的努力。比如说,在实际负载中,其相较950的整数运算性能提升,及其更低的系统存储延迟。我们也不能全面否定其GPU,因为其性能维持得不错,相较其它旗舰手机表现相当或者更好,而且游戏续航也还不错。Mate 9也证明了Kirin 960的确是称职的旗舰SoC,华为也针对短板付出了努力。但在新一代10nm SoC即将全面铺货的当下,这些短板只会变得愈加明显。
* 参考来源: AnandTech ,转载请注明出处与译者:欧阳洋葱