0
雷锋网消息,不久前外媒ChipRebel刚刚发布了华为Mate 20手机的拆解,并公布了麒麟980处理器的透视照片,让我们有了一窥这款让华为表示“稳了”的处理器,并首次看到Arm全新Cortex A76 CPU和全新Mali G76 GPU的真容。
当高通和三星在2016年下半年发布骁龙835和Exynos 8895这两款使用10nm LPE工艺的产品时,麒麟960却只能选择台积电16nm FFC工艺,这种劣势显著的体现在芯片的能耗比方面。
麒麟970虽然缩小了制造工艺方面的差距,但由于其设计周期较早,错过了Arm当时最新的Cortex A75架构,只能基于Cortex A73架构设计,而推出较晚的骁龙845则全面基于Cortex A75和Cortex A55设计。
在这次的麒麟980,华为终于再次集齐了最先进的制造工艺和最新的架构设计,从这方面来看,麒麟980背负着比麒麟970和麒麟960更大的期望和历史任务,有望复制甚至超越几年前麒麟950的成功。
虽然华为在此前公布麒麟980时表示其核心面积小于100mm²,但实际上麒麟980的硅片尺寸要比官宣还要小得多,仅为74.13mm²。在CPU、GPU、NPU及内存等全面升级的情况下,麒麟980相比去年麒麟970的96.72mm²小了30%,可说是相当惊人了。
芯片的左上角是全新的Mali G76 MP10 GPU集群,雷锋网曾介绍过,Mali G76达到Mali G72翻倍的性能只需132%的芯片面积,理论上单位面积性能提升了50%。华为将麒麟980的GPU面积维持在了11.97mm²,仅稍大于骁龙845中Adreno 630的10.69mm²,远小于Exynos 9810 Mali G72 MP18的24.53mm²和苹果A12 GPU的14.88mm²。
GPU模块右侧是CPU模块,Cortex A76架构在核心尺寸方面仍然非常小巧,配备512KB L2缓存时的单核面积仅为1.26mm²,同样远小于三星自研Exynos M3“猫鼬”架构核心的3.5mm²,甚至比不含L2缓存的苹果A12的Vortex架构核心(2.07mm²)还要小。
此次华为充分利用了Arm的新DSU集群及异步CPU配置,将麒麟980中Cortex A76架构的高性能CPU集群细分为两组,高频率的一组运行在2.6GHz频率上,另一组Cortex A76 CPU的运行频率为1.92GHz(这应该是一个很好的能效比平衡点),各自运行在不同的频率和电压上,可根据不同使用场景灵活调用,有效提升实际使用时的能效比。
缓存方面,所有Cortex A76都带有推荐的512KB L2缓存配置,而Cortex A55则采用128KB缓存。在雷锋网此前分析Cortex A76的文章中曾提到过,在最新的DynamIQ群集配置中,L2缓存是每个CPU核心独占的。DSU中的L3缓存则为4MB共享式设计,容量为骁龙845和麒麟970的两倍。
SoC的存储子系统对其性能表现至关重要,麒麟970便在这方面吃了一些亏,它在高频率下运行时似乎有些问题,这使得华为不得不在默认情况下选择降低其设备的频率,导致了一些性能下降,尤其是在对内存延迟敏感的工作负载中。
与麒麟970相比,麒麟980的内存延迟得到了显着改善。测试中使用的是完全随机延迟,包括TLB未命中等在内的所有可能的惩罚,但是这仍然是一个重要的性能指标。
Cortex A76架构的独占L2缓存延迟非常出色,只有4ns,不到麒麟970中Cortex A73共享L2缓存延迟的一半。而4MB共享L3缓存确实与CPU核心异步运行,在测试中可以看到明显的延迟惩罚,但仍然在合理范围内。
对比安卓阵营的几款SoC,麒麟980的L3缓存看起来略慢于骁龙845,可能是由于华为略微降低了L3缓存的运行频率;Exynos 9810的缓存延迟最大,虽然在内存延迟方面略有优势,但这是以很大的功耗代价冲击高频率换来的,当核心运行在合理的频率上时,Exynos 9810的优势会丧失殆尽。
(PS:苹果A12处理器在缓存和内存延迟方面都遥遥领先,在所有指标和深度上都展示了巨大的优势,让安卓阵营的所有SoC都相形见绌。)
华为在发布会上表示,麒麟980相比麒麟970可获得75%的性能提升,能耗比则比麒麟970提高58%。演讲中的PPT脚注显示其能效数据基于Dhrystone,而Dhrystone非常专注于考验CPU核心,相对在内存等其他方面不会给SoC带来太大的压力。
现在,使用麒麟980的Mate 20、Mate 20 Pro及Magic 2均已上市,SPECint2006和SPECfp2006的测试成绩比华为的官宣更能体现这款处理器的真实性能水平。
下图显示了完成测试中的电能消耗量及平均功耗,左边的条形表示消耗的能量,以J(焦耳)为单位,条形越短代表耗能越少,相应的平台的效率越高;右边的条代表性能分数,条形越长代表性能越强。
测试成绩出人意料,麒麟980的SPEC2006性能达到了麒麟970的2倍,甚至超过了此前基于Arm Cortex A76架构的预测。CPU的能耗比则相比麒麟970只提升了28%,全新Cortex A76架构和麒麟980的内存子系统耗电量更大,SPECint测试中平均达到2.14W,SPECfp测试中达到2.65W,比麒麟970的1.38W和1.72W有显著增加。
从这方面来看,Arm的新架构是在以线性的方式提升功耗和性能,包括骁龙845的Cortex A75。当然,只要控制好性能和功耗的关系,这样的提升方式并不能说是消极的。麒麟980的CPU性能是苹果A12的57%~62%,功耗是苹果A12的59%~62%,二者处理相同任务消耗的能量基本相同,这有什么不对的呢?
相比之下,Exynos 9810是个典型的反例,在冲击高频时付出了极大的功耗代价,却没有表现出与之相匹配的性能提升,能效比极差。
在SPECint2006测试中,麒麟980或者说Cortex A76同样在各方面都表现出了相当均衡的性能,在403.gcc测试项中的成绩相比麒麟970提高了2.67倍。而456.hmmer和464.h264ref是SPECint2006测试中两个最强的后端绑定测试中,Cortex A76也展示了与其时钟频率及乱序4发射前端相符的分数。在这一测试中,骁龙845的内存延迟表现不太好,因为它的L4系统缓存块在规格上确实有一点缺陷。
在SPECfp2006的结果中,麒麟980同样展现出了大幅度的进步。总而言之,麒麟980在所有测试中都有着全面改进,在性能和能耗方面的表现都非常出色。麒麟980以及Arm的Cortex A76都兑现了他们的承诺,甚至超过了此前人们根据官方消息所做的预测。
当然,麒麟980的绝对性能还无法与苹果的A12相比,而且这种情况很可能在接下来的几代中不会发生太大变化,至少在安卓阵营的这些SoC厂商设计出更好、更健壮的内存子系统之前都会是这样。
GPU的性能和能耗比一直是麒麟960和麒麟970的一大痛点,而麒麟980是世界上第一款使用了Arm全新Mali G76 GPU的SoC,华为表示麒麟980的GPU性能相比麒麟970提升46%,能耗比则大幅提升178%。
在3DMark Sling Shot Extreme Unlimited的图形测试中,Mate 20和Mate 20 Pro都展现出了可观的峰值性能值,与麒麟970相比提升相当显著,但在达到热平衡之前仍然有较大的波动。
在GFXBench测试最新的Aztec Ruins Vulkan场景中,高质量模式下,Mate 20和Mate 20 Pro的性能表现在安卓阵营里独树一帜:峰值性能并不是特别高,但持续性能几乎与峰值性能相同。而在普通质量模式下,Mate 20 Pro则表现出比Mate 20更高的持续性能。
在GFXBench测试的曼哈顿3.1场景中,麒麟980的峰值性能和持续性能也均有可观的提升。与Aztec Ruins Vulkan场景相比,Mate 20和Mate 20 Pro在曼哈顿3.1场景中的峰值性能和持续性能表现出了正常的差异,性能与大多数骁龙845设备相当。
遗憾的是,麒麟980的性能表现和此前的预测非常吻合,但能耗比与预测相差较大,功耗要比此前预测的3.5瓦高出1W,最终麒麟980的能耗比相比麒麟970提高了100%,仍然是相当大的代际改进。外媒Anandtech表示,此前华为官宣的178%能耗比提升,可能是指麒麟980在与麒麟970相同的性能时的比较。
而在T-Rex测试场景中,麒麟980相比麒麟970的峰值性能提升幅度要小得多,在Mate 20 Pro上的持续性能只提升了50%。但T-Rex测试场景已经比较老旧,在现代SoC上的帧速率普遍非常高,通常可达到一二百帧,因此在许多方面都会受到制约,很难搞清楚瓶颈究竟在哪里,参考价值远不如更加现代的曼哈顿3.1和Aztec Ruins Vulkan测试场景。
第二代NPU
在去年1月测试麒麟970的NPU性能时,可选的测试软件只有鲁大师的AI测试,但它不支持华为的HiAI API,相关运算均依靠CPU实现进行处理。不幸的是,到了麒麟980和Mate 20上依然如此。
“AI-Benchmark”是由瑞士ETH苏黎世计算机视觉实验室的Andrey Ignatov开发的新基准测试程序,也是第一个广泛使用Android 8.1新NNAPI,而不依赖于每个SoC供应商自己的SDK工具和API的基准测试程序。AI-Benchmark应该能够更好地准确地表示从使用NNAPI的应用程序所预期的最终NN性能。
需要记住的一点是,NNAPI不仅仅是一些能够在NPU上运行神经网络模型的通用转换层,而且API和SoC供应商的底层驱动程序必须能够支持公开的函数,并且能够在IP块上运行它。这里的区别在于,使用NNAPI尚未支持的特性(必须退回到CPU上运算)的模型和能够硬件加速并对量化的INT8或FP16数据进行操作的模型。还有一些模型依赖于FP32数据,这里同样依赖于底层驱动程序,它可以在CPU上运行,也可以在GPU上运行。
前三个CPU测试项使用了NNAPI尚未支持的函数的模型,影响性能的仅仅是CPU性能以及性能响应时间,这意味着DVFS和调度器响应等机制可能对结果产生巨大影响,比如Galaxy S9上的表现就要明显优于同为Exynos 9810处理器的Note9。
尽管如此,将麒麟970与麒麟980进行对比,依然展示了Cortex A76强大的性能,以及华为的DVFS/调度器方面可能的改进。
接下来的测试项基于8位整数量化的NN模型。不幸的是,华为手机的NNAPI驱动程序似乎仍未提供硬件加速,这些测试没有使用麒麟处理器上的NPU,测试结果展示的依然是CPU性能,华为表示计划在未来版本的驱动中修正这个问题。
在使用骁龙845的设备中,一加6和Pixel 3在性能上遥遥领先,甚至相比同为骁龙845的Galaxy S9+也是如此,原因是这两款手机都使用了高通公司最新更新的NNAPI驱动程序,该驱动程序与Android 9/P BSP一起发布,可通过HVX DSP加速NN应用。
接下来的FP16测试项终于启用了麒麟处理器的NPU,并且在新老两代处理器上都取得了领先的成绩。在这里麒麟980的双核NPU终于得以体现,Mate 20展现出了碾压性的巨大领先优势。不过一加6似乎在其NNAPI驱动程序中出现了一些非常奇怪的问题,使得它的性能比其他平台差一个数量级,不知道这项测试是跑在了其CPU上还是GPU上。
而在最后的FP32测试项中,大多数手机都再次回到CPU上进行运算,麒麟980的改进有限。
总体而言,AI-Benchmark至少验证了华为对NPU性能的宣传并非虚言,不过从这些测试结果中得出的真正结论是,大多数具有NNAPI驱动程序的设备目前本身尚不成熟且功能仍然非常有限,与苹果如今的CoreML生态系统相比相差甚远。
麒麟980的CPU性能表现应该在很大程度上可以代表下一代骁龙8150的情况,高通或许会在CPU频率上稍稍提升一些,但最大的问题在于内存子系统方面,高通能不能解决L4系统缓存引入的延迟惩罚问题。
而Cortex A76对于三星来说就实在是太可怕了,如果Exynos 9820所用的Exynos M4架构只是一次常规迭代,说实话在Cortex A76面前是没什么竞争力的。三星需要在性能和能耗比两个方面均作出重大改进,才能与麒麟980相匹敌。
GPU方面,能耗比方面与此前的预测存在差距,这恐怕不能直接甩锅给华为的芯片设计,因为Arm玩GPU确实比从桌面端过来的Imagination和高通(GPU团队来自ATI)差得远。
虽然三星Exynos SoC的GPU能耗比要好于麒麟SoC,Exynos 9810的能耗比甚至非常接近于骁龙845,但这是三星牺牲了相当大的芯片面积来堆砌GPU核心数换来的。雷锋网经过思考和对比后认为,华为之所以选择“少核高频”的策略,很可能是为了在有限的空间内给NPU腾地方不得已而为之。
Exynos 9810的GPU面积很大(24.53mm²),使其可以将频率压低到只有560MHz左右,以此换来了尚可的功耗表现。之所以这样操作,是因为三星有自己的半导体工厂,且Exynos 9810既没有集成NPU,也不是麒麟970这样动辄出货量三五千万的走量主力产品,更多的是作为一款产品象征性地存在,最终才能以118.94mm²这样一个属于平板级的巨大芯片面积问世。
根据不久前公布的消息,三星下一代集成NPU的Exynos 9820也只采用了Mali G76 MP12的配置,远不如以前动辄MP18或MP20那么豪迈了,自然频率也不可能像此前一样低至560MHz左右,很可能达到与麒麟980相仿或更高的水平,具体参数以及实际表现如何,只有等Exynos 9820的具体参数和测试成绩公布后才能得知了。
移动SoC带上NPU越来越成为厂商的趋势,未来随着越来越多的app开始使用到它,拥有先发优势华为将可把它转化成更大的市场优势。
via:Anandtech
相关文章:
麒麟980核心裸照放出:安卓最强CPU“稳了”,主角之一的NPU反成最大谜题
华为麒麟980浅析:“梭哈”自研SoC的胜利,只待Mate20证明自己
浅析ARM全新Cortex A76架构:2.4GHz便可干掉骁龙845
雷峰网版权文章,未经授权禁止转载。详情见转载须知。