论文部分内容阅读
从“不服跑个分”到“不胡跑个昏”,这么多年过去移动SoC(我们通常所称的处理器)的性能发展从最初为了满足需求和体验提升、到了越来越为市场宣传服务的境地;而从另一个角度来看,它也遇到了跟桌面平台处理器一样的处境——硬件更新的速度远大于软件,或许是时候对那些荒诞的跑分天王们说再见了。不过在这之前,还是让我们来看看今年上半年智能手机领域的旗舰级别SoC平台的性能相比一年前、两年前又达到了怎样的高度。
“大小核”普及 A57/A53代替A15/A9/A7
相比两年前的旗舰SoC行列还能看到公版A15、高通自主微架构Krait、以及乳臭未干还只能开四核的big.LITTLE,2015年的这一领域就显得单调的很了,ARM公版64位ARMv8指令集的big.LITTLE微架构一统江山,八核暂时成了标配;到底是苹果引得64位迅速普及到Android阵营还是这本来就是大势所趋,反正今天的时代已成定局。
另一方面,核心选择上,今年的旗舰级别SoC也都从之前的A7、A15或者两者的组合而升级到了A53、A57和两者的组合;Cortex-A53/A57发布于2012年11月,隶属ARM首个采用64位指令集ARMv8的Cortex-A50系列。
且不说今年的顶尖产品性能相比一两年前如何,这么多年的智能机生涯当中,以iPhone为例,今天的iPhone 6相比八年前的第一代iPhone、CPU性能提升了50倍,GPU性能也提升了84倍。
与之相对应的,我们在智能机上获得的体验也从十多年前挤在一片176x144的1英寸屏幕上面、用着以今天的眼光来看根本就不可用的GPRS网络登录着Java版本QQ的窘况,飞升到了如今用着装不进裤兜的大屏和超越游戏主机性能级别的处理器看4K视频的时代。
今年我们的对比产品选择了高通骁龙810、三星Exynos 7420、联发科MT6795T以及来自海思的麒麟935;相比两年我们选择的高通、三星、NVIDIA、Intel四个公司的产品,这里新加了性能终于靠6795挤进前列的MTK,以及自主品牌海思麒麟。
时过境迁,NVIDIA也早已推出智能手机领域,Intel的方案今年也并未在高端机行列有任何动作;IC厂商虽不及终端厂商竞争之残酷,也是落得个有人不知何处去、有人依旧笑春风。
测试平台组成及参数简介
骁龙810为了快速向64位过渡暂时放弃了自主架构,采用Cortex-A57+Cortex-A53这样的组合,分管大小任务,中间采用CCI-400互联;除此之外,骁龙810还采用了新一代Adreno 430 GPU,相比上一代性能提升30%。Adreno 430运行频率为最高600MHz,与骁龙805当中的Adreno 420相同。
为了缓解内存带来的瓶颈,骁龙810也配备了双通道32位带宽的LPDDR4-1555存储,据称能耗方面相比LPDDR3节省20%,内存带宽峰值高达24.9GB/s。
三星Exynso 7420同样采用A57+A53的big.LITTLE架构,其中A57的最高频率将达到2.1GHz,A53部分则为1.5GHz,集成的GPU为Mali-T760 MP8,最高内存带宽可达25.6GB/s。
值得注意的是,Exynos 7420也是三星采用FinFET 3D晶体管技术和14nm制成的移动处理器,在处理器的功耗和发热上都有先天优势,其中功耗上相比上一代20nm处理器减少30-35%。
MT6795(T)隶属于MTK旗下的新品牌“曦力”Helio X10系列,该处理器将采用64位Cortex-A53架构并且拥有八个核心,主频最高可达2.2GHz,依旧采用了28纳米制程;此外该处理器支持频率为933MHz的LPDDR3内存,支持2K屏幕。在GPU方面,该机处理器将采用PowerVR的G6200系列GPU。
这里的测试平台魅族MX5采用的是Turbo的版本也就是CPU主频提升至2.2GHz(具体2.16GHz)的MT6795T版本,以下简称MT6795。
海思麒麟935采用四个2.2GHz主频的A53e核心+四个1.5GHz主频A53核心,big.LITTLE设计。和ARM Cortex-A53无法运行在高主频上不同,华为解决了这一问题,在Cortex-A53的基础上自主研发了Library,形成了全新的A53架构,使得处理器能稳定运行在2.0GHz上。同时也让新的A53核心成为了主要的大核心。
华为选择这样的A53设计能够更好的平衡功耗和性能,这样既让大核心性能得到了一定提升,又把功耗控制在可接受范围。
总结一下四款SoC的异同
其中Exynos 7420与骁龙810显然是为性能诞生的产物,CPU部分采用了大小核的八核组合,而MT6795与麒麟935显然是更加看重功耗的而性能妥协的产物,CPU部分采用八小核的组成;而且后者当中麒麟935的配置相比MT6795更弱,八颗A53当中只有四颗能够提升到2.2GHz频率。
而GPU部分,骁龙810虽然妥协于公版CPU但在GPU部分还是沿用了自己的Adreno系列,Exynos 7420也沿用ARM Mali系列,MT6795沿用Imagination的PowerVR,海思也早已明智的弃用Vivante换做ARM Mali。
big.LITTLE的前世今生
回顾当年big.LITTLE的诞生历程,其实这完全是一个为降低功耗而诞生的微架构,因为相比起来性能提升显得更加容易。
在此之前的Cortex-A15虽然在当时性能强大,但与之前的A7、A9相比增加单位功耗所带来的性能提升越来越不明显,如果再追求无止境的性能提升———甚至只用四核A15——必然是功耗的不可控,于是A7这样功耗很小但性能尚可的核心便作为辅助加入进来成为了初代big.LITTLE的标准组成。 就目前来看这样的组成还是比较合理的,其一我们无法用功耗很高的A15、A57核心去面对移动终端SoC平台的多核趋势,其二我们的绝大多数日常任务也根本用不到更多颗A15、A57这样的大核提供的超高性能。
同为公版为何性能不一?
回到我们的测试当中,同样是“四大+四小”的Exynos 7420与骁龙810、或者同样是“四小+四小”的MT6795与麒麟935,既然核心组成与频率都类似,为什么两者之间还会有性能区别呢?除了制程之外,也要提到当年因为“真假八核”的争论而进入人们视线的“CPU核心切换和调度”问题。这个问题经历了“集群迁移”“CPU迁移”“HMP”三个阶段,我们来具体看看区别。
集群迁移方式,只能同时全开大核或同时全开小核,最高性能 = 单个大核性能 X 大核个数;实现最简单,切换灵活度低。
CPU迁移方式,每个大核与每个小核构成虚拟核心,每个虚拟核心同时只允许打开一个大核或一个小核,最高性能 =单个大核性能 X 大核个数;切换灵活度中等。
HMP方式,所有核心和同时全开,最高性能 = 单个大核性能 X 大核个数 + 单个小核性能 X 小核个数;实现起来最复杂,切换灵活度高。
世界上首款big.LITTLE架构的SoC为三星Exynos 5410(Octa),用于三星Galaxy S4。Exynos 5410的八个CPU核心调度采用第二种方式,也就是说物理上Exynos Octa当中有A7与A15两个集群(CLUSTER 0,1),但是从逻辑上我们可以将每个A7与每个A15的组合看作是一个虚拟CPU,每个虚拟CPU同一时刻仅允许一个A7或一个A15工作,这就决定了Exynos Octa当中最多仅能有四个核心同时开启。
而不久之后的2013年底,“八核全开”的异构多处理HMP(Heterogeneous Multi-Processing)调度机制就被用到了随后的big.LITTLE架构处理器上,我们才真正迎来八核时代。
具体到此次测试当中的四款SoC所用到的调度方式,似乎只有联发科在一直宣传其自主开发的Core Pilot技术,白皮书当中提到它基于开源HMP技术,在核心调度上综合考虑了如何获得最大性能以及更小的功耗水平。
CPU性能单项测试部分
跟以往一样,由于智能机集成度太高,处理器之外的其他部分都可能影响到处理器最终性能表现,而目前的普遍测试条件所限我们无法规避这些误差,而且理想状态下的零误差就成了拿各平台的开发机测试而忽略了成品机型的真实体验;因此开始综合性能测试之前有必要重申几点关乎整个测试过程的测试条件限制。
特别值得注意的是:
1、关于优化,由于各厂商对于处理器平台的优化功力不同,容易造成对该平台本身的性能增强或减弱;虽然我们用相似屏幕分辨率(Exynos 7420仅有1440p),相似内存容量挑选了除处理器外其他参数尽量相同的机型来规避误差,但仍然有可能由于上述原因造成实际测试成绩与各处理器平台理论成绩的差距。
2、关于降频,大部分机型出于续航和热量控制两方面的考虑,不能够持续高负载的运行,长时间运行会出现降频现象;由于不同厂商采取的温控策略不同,我们无法统一,因此这也会对最终结果带来误差。
3、关于测试条件,所有机型测试过程统一在26摄氏度恒定室温条件下进行,每项测试每次完成之后自然冷却至室温,再重新进行第二次或者其他项测试,以此来规避高温降频对于最终性能的影响。
4、关于电池策略,测试机型仅魅族MX5包含“均衡模式”“性能模式”等电池策略,为了探究各平台的最大性能,有该策略的机型开启“高性能模式”,其他保持默认模式。
5、关于型号区别,由于各个厂商的调校,不同平台最终出货可能并不处于它的最高主频上;这部分误差同样需要考虑。
6、关于续航发热,由于不同机型的续航发热不仅与处理器有关,还与屏幕、射频信号耗电、各机型散热措施等有着非常大的关系,因此这里的测试不包含这两方面内容。
性能单项测试部分
这里采用GeekBench以及几种Javascript Benchmark测试CPU部分的性能,以及采用PCMark for Android测试系统整体性能。
GeekBench 3.0
GeekBench 3.0采用对单核心和多核心分别的方式对CPU性能进行测试,主要衡量CPU和内存的运算能力,得分分四个大项——整数运算、浮点运算、内存性能以及内存带宽性能。
WebXPRT
WebXPRT主要针对网页浏览,在JavaScript和HTML 5两方面进行测试;WebXPRT基于浏览器,可以适配于IE、Chrome、Firefox和Safari等。在Web XPRT的测试中,会进行大量模拟浏览网页时的图片、数据、图表读取以及编辑操作七次,测试的时间也较长,从而得到更加全面的结果。
Google Octane v2
作为Google V8之后发布的新的测试套件Octane,包含以各种JavaScript密集型使用场景作为模型,从2D/3D图形渲染,到浏览器内代码编译。该套件包含了V8基准测试套件中的所有测试,并且添加了一套新的基准测试程序,这些程序来自一些著名的web应用程序和库。
PCMark for Android
PCMark可考察设备的性能、电池续航能力,能看出设备在上网、看视频、处理文档、编辑照片等日常使用中的表现。测试基于日常应用,而非抽象的理论算法;测试成绩也可反应真实性能,而非可望而不可即的最高性能。
可以看出,理论数据部分、也就是偏重纯跑分的几项测试Exynos 7420和骁龙810两者都毫无疑问的领先,而八核同为2.2GHz的MT6795也要比麒麟935更强。但偏重实际使用的场景、比如WebXPRT的2015版本以及PCMark四者的差距并不算大。 我们可以试着通过PCMark跑分过程当中的监控数据来找找原因,骁龙810整个测试中的CPU频率几乎只维持在300MHz左右就能完成这些日常任务,MT6795甚至只需要更低的CPU频率;但也由于如此,骁龙810单核性能较高因此CPU占用率远低于MT6795。
GPU性能单项测试部分
接下来我们首先采用来自Futuremark的3DMark安卓版本,对设备的图形处理能力进行测试,每个场景通过两段动画检验GPU的图形处理能力,另有一段动画用以检测CPU的物理渲染能力,总成绩中GPU图形测试所占比重更大。
3DMark
值得一提的是,3DMark如今为2K屏幕设备加入了要求更高的场景SlingShot,它用于考察手机、平板机的OpenGL ES 3.1/3.0图形性能,负载相当之高。该测试基于PC版的Cloud Gate模块改造而来,可以看做是它的轻量版,针对移动平台而设计,能最大程度地压榨移动GPU图形性能,全面考察各种API功能,包括多渲染目标、即时渲染、统一缓冲、转换反馈,还有大量的体积光照、后期处理效果。
现在看来它的作用类似GLBenchmark 3.0当中的“Manhattan”,就是让你四五千买的手机跑游戏也跑不了几帧;放张三星Galaxy S6的2560x1440分辨率截图你们感受一下。
实际测试部分,“次世代”场景SlingShot当中还是Exynos 7420以及骁龙810两家领先,但由于该场景实在负载过重,这两个最好成绩也只有几个FPS;MT6795由于我们测试了多款该平台手机都无法支持因此无成绩,麒麟935相比前两者明显要弱不少。
而GLBenchmark 3.0部分,单看理论成绩也就是Offscreen,两者表现都很出色,骁龙810略有小胜;而Onscreen成绩,Exynos 7420也因受三星Galaxy S6的屏幕分辨率影响而略有后退。与此同时MT6795的性能几乎只是骁龙810的一半,麒麟935几乎只是MT6795的一半。
综合各方面来看,Adreno 4系列可以说依然是目前Android平台最好的GPU(当然骁龙820的发布已经带来了5系列)是重度游戏用户的首选;而MT6795以及麒麟935所提供的GPU则不敢保证在大型游戏当中提供太好的性能。
而回到以往我们常用到的IceStorm场景的“Extreme”模式,“图形”上依然是Exynos 7420以及骁龙810领先,特别是骁龙810的Adreno表现依然是最好的,麒麟935依然最弱。
GLBenchmark 3.0
而GLBenchmark 3.0部分,单看理论成绩也就是Offscreen,两者表现都很出色,骁龙810略有小胜;而Onscreen成绩,Exynos 7420也因受三星Galaxy S6的屏幕分辨率影响而略有后退。与此同时MT6795的性能几乎只是骁龙810的一半,麒麟935几乎只是MT6795的一半。
综合各方面来看,Adreno 4系列可以说依然是目前Android平台最好的GPU(当然骁龙820的发布已经带来了5系列)是重度游戏用户的首选;而MT6795以及麒麟935所提供的GPU则不敢保证在大型游戏当中提供太好的性能。
各平台长效性能工作方式
性能足够、但是否能够持久?接下来我们再同以往一样看看四款SoC在长时间工作下的降频状况。
我们记录了四个平台在运行《真实赛车3》时的CPU频率变化曲线,采用长效性能工作方式(类比日常使用状态,长时间内的均衡性能表现,计时10分钟)。
此外,在预测试当中观察到前四核通常占用率较高而后四核占用率很低,因此我们也在整体分析之后加入了对前四核表现的重点解析。
图表解释:Exynos 7420与骁龙810的CPU1、2、3、4为Cortex-A53小核,CPU5、6、7、8为Cortex-A57大核;麒麟935的CPU1、2、3、4为1.5GHz Cortex-A53小核,CPU5、6、7、8为2.2GHz Cortex-A53小核;MT6795无此区别。
Exynos 7420这款为性能而生的SoC在这种重负载条件下还是表现的非常积极的,小核心全程都很积极的参与到其中,频率切换也十分频繁,大部分维持在900~1200MHz的频率下,但1.5GHz的最高频也很常见。至于大核则在游戏刚开始的载入过程中启用了一段时间的2.1GHz最高频,游戏大部分过程当中以不到1GHz的频率运行。
而骁龙810的情况也与之类似,甚至小核在整个过程当中有超过一半的时间在以最高频运行,在初始渲染工作中有两颗大核加入工作,游戏过程中小核降频的阶段也有大核来顶替;另外两个大核则在整个过程当中从未开启。
而MT6795的“省电”主义也在这里得到了实际体现,整个过程前四个核心大多数条件下运行在1.2GHz左右,也有较频繁的800MHz~2.1GHz左右之间的切换;剩下的四个核心几乎从未开启……这也导致了CPU整个使用率非常低,但这也是以牺牲游戏效果为代价的,它的游戏帧率并没有前两者高。
麒麟935方面,四颗低频小核整个过程维持在800MHz~1GHz左右,四颗高频小核在维持了十几秒的2.2GHz之后降到了1.4GHz左右,继而又降至1GHz左右维持到测试结束。
4K视频播放 CPU使用情况
可以看出上面的游戏过程当中,各个平台的CPU调度情况还是有不小差异的,这里我们再附加一个播放4K视频的测试,来看看该过程当中各个平台的CPU使用情况。(由于游戏过程的四大核使用率并不高或者几乎没有,这里只追踪四小核)
情况与上面的游戏过程类似,Exynos 7420以及骁龙810依然是十分满血的状态,CPU调度和调整也十分频繁,特别是骁龙810;而MT6795依然很懒,麒麟935依然出现随时间降频的状况。这样造成的实际体验区别就是,前两者在播放流畅度上比后两者更好,而麒麟935无法实现流畅播放,毕竟它也并不支持4K解码。 我们到底需要多少核?
在摩尔定律还适用的时候(包括现在), 提高芯片的性能有如下两种方法:1.在有限面积内加入更多的场效应管, 或者 2.提高时钟。乍看起来,似乎目前除了跑分软件之外并没有能够需要八核全开并且持久提供性能的应用,那么目前的八核普及到底是一种资源浪费、还是确有需求呢?
如果说是确有必要,拿我们测试当中负载最高的3DMark SlingShot场景来说,偏重CPU的Physics测试当中CPU频率也只达到了稍高于1.2GHz左右的水平,而在Graphics测试当中始终维持不到1.2GHz的水平;同样在我们进行的所有测试几乎所有平台的四个大核从未开启。
如果说是一种资源浪费,但某些条件下性能确有它的可用武之处;比如《狂野飙车8》《真实赛车3》这样的游戏,性能最佳的两个平台都能持续维持30FPS的画面帧率保证游戏流畅运行,骁龙810甚至能够提供平均40FPS、最高60FPS的流畅度,而其余两个平台则没有这样的水准。
所以这看起来是个无解的问题,既然存在的便是合理的,我们暂且从实用角度来探讨一下八核存在的意义。这里以骁龙810平台为例。
可以发现,在以目前的标准来看中度以至重度负载的APP当中,骁龙810的策略几乎是四颗小核心同步运行,在任务需求较高时可以保持长时间满载,任务降低时调低频率;而在进入APP、网页新建与切换这样的操作当中,可以看到大核开启加入工作。
尽管我们不需要经常跑分来证明手里的手机SoC的性能、换句话说也并不一直需要它们的最佳性能来支持我们的日常使用,但通常状况下八核存在还是有一定意义的,比如在载入APP、切换地图网页、载入游戏、处理和保存高分辨率照片等情况下,可以利用大核的开启有效提高处理速度、缩短等待时间。
2015旗舰处理器横评结论
Exynos 7420的成功很大程度归功于工艺,以及三星一如既往追求的高规格;14nm的制程在手机上带给我们的惊喜如同Core M在PC上带给我们的惊喜,是目前性能与功耗的平衡最佳的旗舰平台;无论是以往选择骁龙系列还是今年的Exynos 7,三星从未在性能配置上有所妥协;不过三星今年面临的可远不止这么简单的问题。
骁龙810虽然失去了去年800、801那样璀璨的光环,但注定还是会被除三星外的众多厂商选择为旗舰机的处理器方案;高通以往对于公版CPU的自主设计能力并没有在810上面体现,但Adreno GPU的表现依然没有落后,好在骁龙820已经发布,按照高通以往的靠谱程度来看,起码性能部分的提升是值得相信的。自主架构加16nm工艺,骁龙820还是有望拿回昔日的声誉。此外高通也有着其他平台没有的集成度、多媒体性及基带优势,今年骁龙820的看点在这方面也是颇多。
MT6795刚让联发科够着点儿旗舰机的荣誉感,就让799的红米Note 2给拉回去了…除了亲民的价位,MT6795的低功耗也是给我们印象深刻的地方;但我们的测试发现这样的表现一部分原因来自于它的CPU调度并不积极,很多实际应用当中CPU工作频率并不高、占用率也很低,类比规格类似的麒麟935你会在实际使用当中体会到细微的流畅度差距。至于联发科未来的Helio X20的十核心SoC会不会在这方面更加不保守一点,就需要时间来证明了。
国产芯麒麟935在参数党看起来过于保守,不仅CPU部分仅采用了全为A53的小核心,GPU部分也只采用了Mali-T600系列的产品,再加上工艺也没有什么优势,挤进高端机行列也算十分勉强,不过传说中的麒麟950就应该名副其实了;据称海思麒麟950将采用4个A53和4个A72八核架构,GPU升级为ARM Mali-T880,最大支持4200万像素摄像头;这样激进的国产芯还是很值得期待的。□
“大小核”普及 A57/A53代替A15/A9/A7
相比两年前的旗舰SoC行列还能看到公版A15、高通自主微架构Krait、以及乳臭未干还只能开四核的big.LITTLE,2015年的这一领域就显得单调的很了,ARM公版64位ARMv8指令集的big.LITTLE微架构一统江山,八核暂时成了标配;到底是苹果引得64位迅速普及到Android阵营还是这本来就是大势所趋,反正今天的时代已成定局。
另一方面,核心选择上,今年的旗舰级别SoC也都从之前的A7、A15或者两者的组合而升级到了A53、A57和两者的组合;Cortex-A53/A57发布于2012年11月,隶属ARM首个采用64位指令集ARMv8的Cortex-A50系列。
且不说今年的顶尖产品性能相比一两年前如何,这么多年的智能机生涯当中,以iPhone为例,今天的iPhone 6相比八年前的第一代iPhone、CPU性能提升了50倍,GPU性能也提升了84倍。
与之相对应的,我们在智能机上获得的体验也从十多年前挤在一片176x144的1英寸屏幕上面、用着以今天的眼光来看根本就不可用的GPRS网络登录着Java版本QQ的窘况,飞升到了如今用着装不进裤兜的大屏和超越游戏主机性能级别的处理器看4K视频的时代。
今年我们的对比产品选择了高通骁龙810、三星Exynos 7420、联发科MT6795T以及来自海思的麒麟935;相比两年我们选择的高通、三星、NVIDIA、Intel四个公司的产品,这里新加了性能终于靠6795挤进前列的MTK,以及自主品牌海思麒麟。
时过境迁,NVIDIA也早已推出智能手机领域,Intel的方案今年也并未在高端机行列有任何动作;IC厂商虽不及终端厂商竞争之残酷,也是落得个有人不知何处去、有人依旧笑春风。
测试平台组成及参数简介
骁龙810为了快速向64位过渡暂时放弃了自主架构,采用Cortex-A57+Cortex-A53这样的组合,分管大小任务,中间采用CCI-400互联;除此之外,骁龙810还采用了新一代Adreno 430 GPU,相比上一代性能提升30%。Adreno 430运行频率为最高600MHz,与骁龙805当中的Adreno 420相同。
为了缓解内存带来的瓶颈,骁龙810也配备了双通道32位带宽的LPDDR4-1555存储,据称能耗方面相比LPDDR3节省20%,内存带宽峰值高达24.9GB/s。
三星Exynso 7420同样采用A57+A53的big.LITTLE架构,其中A57的最高频率将达到2.1GHz,A53部分则为1.5GHz,集成的GPU为Mali-T760 MP8,最高内存带宽可达25.6GB/s。
值得注意的是,Exynos 7420也是三星采用FinFET 3D晶体管技术和14nm制成的移动处理器,在处理器的功耗和发热上都有先天优势,其中功耗上相比上一代20nm处理器减少30-35%。
MT6795(T)隶属于MTK旗下的新品牌“曦力”Helio X10系列,该处理器将采用64位Cortex-A53架构并且拥有八个核心,主频最高可达2.2GHz,依旧采用了28纳米制程;此外该处理器支持频率为933MHz的LPDDR3内存,支持2K屏幕。在GPU方面,该机处理器将采用PowerVR的G6200系列GPU。
这里的测试平台魅族MX5采用的是Turbo的版本也就是CPU主频提升至2.2GHz(具体2.16GHz)的MT6795T版本,以下简称MT6795。
海思麒麟935采用四个2.2GHz主频的A53e核心+四个1.5GHz主频A53核心,big.LITTLE设计。和ARM Cortex-A53无法运行在高主频上不同,华为解决了这一问题,在Cortex-A53的基础上自主研发了Library,形成了全新的A53架构,使得处理器能稳定运行在2.0GHz上。同时也让新的A53核心成为了主要的大核心。
华为选择这样的A53设计能够更好的平衡功耗和性能,这样既让大核心性能得到了一定提升,又把功耗控制在可接受范围。
总结一下四款SoC的异同
其中Exynos 7420与骁龙810显然是为性能诞生的产物,CPU部分采用了大小核的八核组合,而MT6795与麒麟935显然是更加看重功耗的而性能妥协的产物,CPU部分采用八小核的组成;而且后者当中麒麟935的配置相比MT6795更弱,八颗A53当中只有四颗能够提升到2.2GHz频率。
而GPU部分,骁龙810虽然妥协于公版CPU但在GPU部分还是沿用了自己的Adreno系列,Exynos 7420也沿用ARM Mali系列,MT6795沿用Imagination的PowerVR,海思也早已明智的弃用Vivante换做ARM Mali。
big.LITTLE的前世今生
回顾当年big.LITTLE的诞生历程,其实这完全是一个为降低功耗而诞生的微架构,因为相比起来性能提升显得更加容易。
在此之前的Cortex-A15虽然在当时性能强大,但与之前的A7、A9相比增加单位功耗所带来的性能提升越来越不明显,如果再追求无止境的性能提升———甚至只用四核A15——必然是功耗的不可控,于是A7这样功耗很小但性能尚可的核心便作为辅助加入进来成为了初代big.LITTLE的标准组成。 就目前来看这样的组成还是比较合理的,其一我们无法用功耗很高的A15、A57核心去面对移动终端SoC平台的多核趋势,其二我们的绝大多数日常任务也根本用不到更多颗A15、A57这样的大核提供的超高性能。
同为公版为何性能不一?
回到我们的测试当中,同样是“四大+四小”的Exynos 7420与骁龙810、或者同样是“四小+四小”的MT6795与麒麟935,既然核心组成与频率都类似,为什么两者之间还会有性能区别呢?除了制程之外,也要提到当年因为“真假八核”的争论而进入人们视线的“CPU核心切换和调度”问题。这个问题经历了“集群迁移”“CPU迁移”“HMP”三个阶段,我们来具体看看区别。
集群迁移方式,只能同时全开大核或同时全开小核,最高性能 = 单个大核性能 X 大核个数;实现最简单,切换灵活度低。
CPU迁移方式,每个大核与每个小核构成虚拟核心,每个虚拟核心同时只允许打开一个大核或一个小核,最高性能 =单个大核性能 X 大核个数;切换灵活度中等。
HMP方式,所有核心和同时全开,最高性能 = 单个大核性能 X 大核个数 + 单个小核性能 X 小核个数;实现起来最复杂,切换灵活度高。
世界上首款big.LITTLE架构的SoC为三星Exynos 5410(Octa),用于三星Galaxy S4。Exynos 5410的八个CPU核心调度采用第二种方式,也就是说物理上Exynos Octa当中有A7与A15两个集群(CLUSTER 0,1),但是从逻辑上我们可以将每个A7与每个A15的组合看作是一个虚拟CPU,每个虚拟CPU同一时刻仅允许一个A7或一个A15工作,这就决定了Exynos Octa当中最多仅能有四个核心同时开启。
而不久之后的2013年底,“八核全开”的异构多处理HMP(Heterogeneous Multi-Processing)调度机制就被用到了随后的big.LITTLE架构处理器上,我们才真正迎来八核时代。
具体到此次测试当中的四款SoC所用到的调度方式,似乎只有联发科在一直宣传其自主开发的Core Pilot技术,白皮书当中提到它基于开源HMP技术,在核心调度上综合考虑了如何获得最大性能以及更小的功耗水平。
CPU性能单项测试部分
跟以往一样,由于智能机集成度太高,处理器之外的其他部分都可能影响到处理器最终性能表现,而目前的普遍测试条件所限我们无法规避这些误差,而且理想状态下的零误差就成了拿各平台的开发机测试而忽略了成品机型的真实体验;因此开始综合性能测试之前有必要重申几点关乎整个测试过程的测试条件限制。
特别值得注意的是:
1、关于优化,由于各厂商对于处理器平台的优化功力不同,容易造成对该平台本身的性能增强或减弱;虽然我们用相似屏幕分辨率(Exynos 7420仅有1440p),相似内存容量挑选了除处理器外其他参数尽量相同的机型来规避误差,但仍然有可能由于上述原因造成实际测试成绩与各处理器平台理论成绩的差距。
2、关于降频,大部分机型出于续航和热量控制两方面的考虑,不能够持续高负载的运行,长时间运行会出现降频现象;由于不同厂商采取的温控策略不同,我们无法统一,因此这也会对最终结果带来误差。
3、关于测试条件,所有机型测试过程统一在26摄氏度恒定室温条件下进行,每项测试每次完成之后自然冷却至室温,再重新进行第二次或者其他项测试,以此来规避高温降频对于最终性能的影响。
4、关于电池策略,测试机型仅魅族MX5包含“均衡模式”“性能模式”等电池策略,为了探究各平台的最大性能,有该策略的机型开启“高性能模式”,其他保持默认模式。
5、关于型号区别,由于各个厂商的调校,不同平台最终出货可能并不处于它的最高主频上;这部分误差同样需要考虑。
6、关于续航发热,由于不同机型的续航发热不仅与处理器有关,还与屏幕、射频信号耗电、各机型散热措施等有着非常大的关系,因此这里的测试不包含这两方面内容。
性能单项测试部分
这里采用GeekBench以及几种Javascript Benchmark测试CPU部分的性能,以及采用PCMark for Android测试系统整体性能。
GeekBench 3.0
GeekBench 3.0采用对单核心和多核心分别的方式对CPU性能进行测试,主要衡量CPU和内存的运算能力,得分分四个大项——整数运算、浮点运算、内存性能以及内存带宽性能。
WebXPRT
WebXPRT主要针对网页浏览,在JavaScript和HTML 5两方面进行测试;WebXPRT基于浏览器,可以适配于IE、Chrome、Firefox和Safari等。在Web XPRT的测试中,会进行大量模拟浏览网页时的图片、数据、图表读取以及编辑操作七次,测试的时间也较长,从而得到更加全面的结果。
Google Octane v2
作为Google V8之后发布的新的测试套件Octane,包含以各种JavaScript密集型使用场景作为模型,从2D/3D图形渲染,到浏览器内代码编译。该套件包含了V8基准测试套件中的所有测试,并且添加了一套新的基准测试程序,这些程序来自一些著名的web应用程序和库。
PCMark for Android
PCMark可考察设备的性能、电池续航能力,能看出设备在上网、看视频、处理文档、编辑照片等日常使用中的表现。测试基于日常应用,而非抽象的理论算法;测试成绩也可反应真实性能,而非可望而不可即的最高性能。
可以看出,理论数据部分、也就是偏重纯跑分的几项测试Exynos 7420和骁龙810两者都毫无疑问的领先,而八核同为2.2GHz的MT6795也要比麒麟935更强。但偏重实际使用的场景、比如WebXPRT的2015版本以及PCMark四者的差距并不算大。 我们可以试着通过PCMark跑分过程当中的监控数据来找找原因,骁龙810整个测试中的CPU频率几乎只维持在300MHz左右就能完成这些日常任务,MT6795甚至只需要更低的CPU频率;但也由于如此,骁龙810单核性能较高因此CPU占用率远低于MT6795。
GPU性能单项测试部分
接下来我们首先采用来自Futuremark的3DMark安卓版本,对设备的图形处理能力进行测试,每个场景通过两段动画检验GPU的图形处理能力,另有一段动画用以检测CPU的物理渲染能力,总成绩中GPU图形测试所占比重更大。
3DMark
值得一提的是,3DMark如今为2K屏幕设备加入了要求更高的场景SlingShot,它用于考察手机、平板机的OpenGL ES 3.1/3.0图形性能,负载相当之高。该测试基于PC版的Cloud Gate模块改造而来,可以看做是它的轻量版,针对移动平台而设计,能最大程度地压榨移动GPU图形性能,全面考察各种API功能,包括多渲染目标、即时渲染、统一缓冲、转换反馈,还有大量的体积光照、后期处理效果。
现在看来它的作用类似GLBenchmark 3.0当中的“Manhattan”,就是让你四五千买的手机跑游戏也跑不了几帧;放张三星Galaxy S6的2560x1440分辨率截图你们感受一下。
实际测试部分,“次世代”场景SlingShot当中还是Exynos 7420以及骁龙810两家领先,但由于该场景实在负载过重,这两个最好成绩也只有几个FPS;MT6795由于我们测试了多款该平台手机都无法支持因此无成绩,麒麟935相比前两者明显要弱不少。
而GLBenchmark 3.0部分,单看理论成绩也就是Offscreen,两者表现都很出色,骁龙810略有小胜;而Onscreen成绩,Exynos 7420也因受三星Galaxy S6的屏幕分辨率影响而略有后退。与此同时MT6795的性能几乎只是骁龙810的一半,麒麟935几乎只是MT6795的一半。
综合各方面来看,Adreno 4系列可以说依然是目前Android平台最好的GPU(当然骁龙820的发布已经带来了5系列)是重度游戏用户的首选;而MT6795以及麒麟935所提供的GPU则不敢保证在大型游戏当中提供太好的性能。
而回到以往我们常用到的IceStorm场景的“Extreme”模式,“图形”上依然是Exynos 7420以及骁龙810领先,特别是骁龙810的Adreno表现依然是最好的,麒麟935依然最弱。
GLBenchmark 3.0
而GLBenchmark 3.0部分,单看理论成绩也就是Offscreen,两者表现都很出色,骁龙810略有小胜;而Onscreen成绩,Exynos 7420也因受三星Galaxy S6的屏幕分辨率影响而略有后退。与此同时MT6795的性能几乎只是骁龙810的一半,麒麟935几乎只是MT6795的一半。
综合各方面来看,Adreno 4系列可以说依然是目前Android平台最好的GPU(当然骁龙820的发布已经带来了5系列)是重度游戏用户的首选;而MT6795以及麒麟935所提供的GPU则不敢保证在大型游戏当中提供太好的性能。
各平台长效性能工作方式
性能足够、但是否能够持久?接下来我们再同以往一样看看四款SoC在长时间工作下的降频状况。
我们记录了四个平台在运行《真实赛车3》时的CPU频率变化曲线,采用长效性能工作方式(类比日常使用状态,长时间内的均衡性能表现,计时10分钟)。
此外,在预测试当中观察到前四核通常占用率较高而后四核占用率很低,因此我们也在整体分析之后加入了对前四核表现的重点解析。
图表解释:Exynos 7420与骁龙810的CPU1、2、3、4为Cortex-A53小核,CPU5、6、7、8为Cortex-A57大核;麒麟935的CPU1、2、3、4为1.5GHz Cortex-A53小核,CPU5、6、7、8为2.2GHz Cortex-A53小核;MT6795无此区别。
Exynos 7420这款为性能而生的SoC在这种重负载条件下还是表现的非常积极的,小核心全程都很积极的参与到其中,频率切换也十分频繁,大部分维持在900~1200MHz的频率下,但1.5GHz的最高频也很常见。至于大核则在游戏刚开始的载入过程中启用了一段时间的2.1GHz最高频,游戏大部分过程当中以不到1GHz的频率运行。
而骁龙810的情况也与之类似,甚至小核在整个过程当中有超过一半的时间在以最高频运行,在初始渲染工作中有两颗大核加入工作,游戏过程中小核降频的阶段也有大核来顶替;另外两个大核则在整个过程当中从未开启。
而MT6795的“省电”主义也在这里得到了实际体现,整个过程前四个核心大多数条件下运行在1.2GHz左右,也有较频繁的800MHz~2.1GHz左右之间的切换;剩下的四个核心几乎从未开启……这也导致了CPU整个使用率非常低,但这也是以牺牲游戏效果为代价的,它的游戏帧率并没有前两者高。
麒麟935方面,四颗低频小核整个过程维持在800MHz~1GHz左右,四颗高频小核在维持了十几秒的2.2GHz之后降到了1.4GHz左右,继而又降至1GHz左右维持到测试结束。
4K视频播放 CPU使用情况
可以看出上面的游戏过程当中,各个平台的CPU调度情况还是有不小差异的,这里我们再附加一个播放4K视频的测试,来看看该过程当中各个平台的CPU使用情况。(由于游戏过程的四大核使用率并不高或者几乎没有,这里只追踪四小核)
情况与上面的游戏过程类似,Exynos 7420以及骁龙810依然是十分满血的状态,CPU调度和调整也十分频繁,特别是骁龙810;而MT6795依然很懒,麒麟935依然出现随时间降频的状况。这样造成的实际体验区别就是,前两者在播放流畅度上比后两者更好,而麒麟935无法实现流畅播放,毕竟它也并不支持4K解码。 我们到底需要多少核?
在摩尔定律还适用的时候(包括现在), 提高芯片的性能有如下两种方法:1.在有限面积内加入更多的场效应管, 或者 2.提高时钟。乍看起来,似乎目前除了跑分软件之外并没有能够需要八核全开并且持久提供性能的应用,那么目前的八核普及到底是一种资源浪费、还是确有需求呢?
如果说是确有必要,拿我们测试当中负载最高的3DMark SlingShot场景来说,偏重CPU的Physics测试当中CPU频率也只达到了稍高于1.2GHz左右的水平,而在Graphics测试当中始终维持不到1.2GHz的水平;同样在我们进行的所有测试几乎所有平台的四个大核从未开启。
如果说是一种资源浪费,但某些条件下性能确有它的可用武之处;比如《狂野飙车8》《真实赛车3》这样的游戏,性能最佳的两个平台都能持续维持30FPS的画面帧率保证游戏流畅运行,骁龙810甚至能够提供平均40FPS、最高60FPS的流畅度,而其余两个平台则没有这样的水准。
所以这看起来是个无解的问题,既然存在的便是合理的,我们暂且从实用角度来探讨一下八核存在的意义。这里以骁龙810平台为例。
可以发现,在以目前的标准来看中度以至重度负载的APP当中,骁龙810的策略几乎是四颗小核心同步运行,在任务需求较高时可以保持长时间满载,任务降低时调低频率;而在进入APP、网页新建与切换这样的操作当中,可以看到大核开启加入工作。
尽管我们不需要经常跑分来证明手里的手机SoC的性能、换句话说也并不一直需要它们的最佳性能来支持我们的日常使用,但通常状况下八核存在还是有一定意义的,比如在载入APP、切换地图网页、载入游戏、处理和保存高分辨率照片等情况下,可以利用大核的开启有效提高处理速度、缩短等待时间。
2015旗舰处理器横评结论
Exynos 7420的成功很大程度归功于工艺,以及三星一如既往追求的高规格;14nm的制程在手机上带给我们的惊喜如同Core M在PC上带给我们的惊喜,是目前性能与功耗的平衡最佳的旗舰平台;无论是以往选择骁龙系列还是今年的Exynos 7,三星从未在性能配置上有所妥协;不过三星今年面临的可远不止这么简单的问题。
骁龙810虽然失去了去年800、801那样璀璨的光环,但注定还是会被除三星外的众多厂商选择为旗舰机的处理器方案;高通以往对于公版CPU的自主设计能力并没有在810上面体现,但Adreno GPU的表现依然没有落后,好在骁龙820已经发布,按照高通以往的靠谱程度来看,起码性能部分的提升是值得相信的。自主架构加16nm工艺,骁龙820还是有望拿回昔日的声誉。此外高通也有着其他平台没有的集成度、多媒体性及基带优势,今年骁龙820的看点在这方面也是颇多。
MT6795刚让联发科够着点儿旗舰机的荣誉感,就让799的红米Note 2给拉回去了…除了亲民的价位,MT6795的低功耗也是给我们印象深刻的地方;但我们的测试发现这样的表现一部分原因来自于它的CPU调度并不积极,很多实际应用当中CPU工作频率并不高、占用率也很低,类比规格类似的麒麟935你会在实际使用当中体会到细微的流畅度差距。至于联发科未来的Helio X20的十核心SoC会不会在这方面更加不保守一点,就需要时间来证明了。
国产芯麒麟935在参数党看起来过于保守,不仅CPU部分仅采用了全为A53的小核心,GPU部分也只采用了Mali-T600系列的产品,再加上工艺也没有什么优势,挤进高端机行列也算十分勉强,不过传说中的麒麟950就应该名副其实了;据称海思麒麟950将采用4个A53和4个A72八核架构,GPU升级为ARM Mali-T880,最大支持4200万像素摄像头;这样激进的国产芯还是很值得期待的。□