骁龙835性能深度分析
在骁龙835之前,骁龙处理器被称为SoC(片上系统),但在这一代,它被重命名为“平台”,这是为了高通移动计算平台的整个布局,而不是CPU和GPU等单个电气组件。骁龙835采用三星10nm FinFETLPE工艺,目前的半导体工艺已经可以达到量产的最高水平,但这次采用的是LPE工艺,不排除高通未来会升级一个版本的LPP工艺,类似骁龙820/821。另外,根据高通官方的说法,骁龙835使用了30亿个晶体管,接近iPhone7使用的A10 Fusion的33亿个。这也是高通处理器与iPhone自主设计的A系列之间最近的距离。所以也带来了不错的使用体验。
从这个表中我们可以看出,骁龙835采用的是Kryo280架构,八核设计。最高主频2.45GHz,小核1.9GHz,GPU adre no 540。主频710GHz,整个芯片的封装尺寸减小了35%。根据高通的数据,骁龙835的功耗降低了25%(比骁龙801低50%)。此外,在骁龙835平台中,集成了双14位Spectra 180 ISP、Hexagon 690 DSP和X16调制解调器。可以看出,相比其他国家的SoC,高通在SoC上覆盖了更多的计算领域,让处理器成为智能手机的全面管家,通过“人无我有,人有我”的理念全面进驻各个领域。在我看来,这也是高通在这一代将移动处理器改名为“平台”的原因。
CPU性能测试:
在骁龙820上,高通首次构建了64位自主研发的Kryo架构。其独特的架构对于浮点IPC运算有非常好的性能,但是在整数IPC运算方面不如ARM官方的A57架构,功耗也不够优秀。因此,高通在骁龙835上采用了全新的Kryo 280架构。虽然同为Kryo,但这个“Kryo不是Kryo”。Kryo280不是常规升级的产品,而是全新的架构。
简单来说,Kryo280采用类似BigLittle架构的八核,采用高性能四核,低效率四核。不过Kryo280最与众不同的地方在于,它是第一款基于全新ARM架构重新设计的架构。“基于ARM Cortex技术构建”的技术允许供应商根据自己的需求修改公共架构。比如厂商可以根据自己的需求定制指令窗口大小来增加IPC,但是比如解码器宽度或者执行流水线就超出了。这种半定制的设计可以让厂商将自己的产品与ARM公版区分开来,同时也可以节省重新开发架构所需的时间和成本。虽然我们不知道高通的Kryo280修改了哪个公开版本,但两个CPU集群都采用了半定制设计。高通声称它的内存控制器也是自己设计的。
在GeekBench4的单线程整数跑分测试中,我们可以看到骁龙835相比上一代821基本是64-60胜。虽然我们在整数IPC上进步很大,但是在Canny(边缘检测)、JPGE、PDF渲染上输给了821。有意思的是,在之前麒麟960的性能测试中,这些项也是输给了骁龙821,而这些整数测试结果大多依赖于L1和L2缓存,所以ANANDTECH推测。此外,骁龙835在GeekBench4其他子项目中的表现与麒麟960接近,不受主频或测试方式的干扰。所以即使通过中行修改的半定制架构,修改的范围也是有限的。
在GeekBench4单线程整数运算(加法的频率)测试中,用上表中的整数除以频率可以更直接的比较不同架构间的IPC。可以看出Kryo280和A73的架构性能比较接近,其整数IPC比A72高6%,比A57高14%,但比骁龙821高22%。
在浮点运算中,令我们惊讶的是,Kryo280落后于骁龙821。据笔者猜测,Kryo的浮点运算一直是它的强项,但是到了Kryo280,并没有采用完全独立的设计,BoC可以改变的范围较小,所以出现了这种情况。不过可以看出Kryo280和麒麟960的结果还是挺像的。
之前麒麟960测试A73时,考虑到A73的霓虹执行单元与A72相比没有变化,所以降低了特殊指令的延迟。当时推测部分测试项目受到A73解码器宽度变化的影响。所以无论是麒麟960的A73,还是骁龙835的Kryo280,都说明相对于A72,L2缓存的读写带宽降低了(而且L1的写带宽更低),这也可能影响性能。
考虑到频率,Kryo280悲剧性地被骁龙821.23%击败。我不知道高通是妥协了还是改变了他的设计理念。高通在两年前开发Kryo的时候,考虑到了未来新工作所需的变化,所以更多的工作由GPU或DSP来完成,以提高效率,所以牺牲一些浮点运算来节省面积或功耗是可以接受的。
内存测试方面,Kryo280、A73、A72、A57都有两个地址生成单元(AGU),但是A72和A57可以通过专用的agu加载存储,Kryo280和A73的每个AGU同时加载存储。所以对于A73架构来说,这种策略相当于降低了内存延迟,增加了内存带宽。
至于Kryo280,甚至比麒麟960增加了11%,比骁龙821和810增加。但是没有A72到A73那么大,因为在骁龙821的Kryo中,可以同时加载和存储单个AGU,但是之前的内存延迟更高。
系统性能测试:
▲总分
到目前为止,我们可以初步认为骁龙835的Kryo280相当于一个结合BigLittle的半定制A53+A73 CPU核,整数和浮点运算接近麒麟960。像PCMark这样的系统级测试,包括调用Android标准的API接口,强调CPU、GPU、RAM、NAND存储的实际工作负载。但我们都知道,手机系统的体验不仅仅取决于硬件性能,还取决于厂商对系统的优化,包括程序的优先级以及动态调整电压和频率来控制手机发热的策略。不过这并不妨碍我们看到骁龙835的原型机测试机在PCMark排名第一,超过Mate9的麒麟960,领先骁龙821 23%。
▲ Web测试
网页测试表明,骁龙835原型性能良好,超过Mate9 10%和骁龙821 34%。不过尴尬的是,所有使用骁龙820/821的机器都落后于麒麟960和麒麟950,似乎有些悲剧。
▲写测试
在写操作(包括处理和加密PDF文件)、内存测试和读写文件到闪存中,都会对CPU的大核有要求。所以这个测试会产生一些多变的结果。比如乐Pro3会比S7 Edge快40%,而骁龙835和Mate9差别不大。但与骁龙821相比,还是体现出了挂科的优势。
▲数据操作
在数据操作测试中,主要测试的是整数工作负载,用来测量分析很多不同文件类型的数据所需的时间,然后用动态图表交互记录帧率。骁龙835的原型机在这里和Mate9差不多,只是第二个冲到了5000点,这是对其他821机的又一次暂停。。。
▲视频剪辑测试
视频编辑测试:使用OpenGL ES 2.0 shader为视频编辑测试提供视频特效,对于系统来说是一个相对轻量级的测试。在测试中我们发现GPU基本是空闲的,大多数情况下都是由CPU的小核来完成。所以可以看出,基本上每个产品的结果都差不多。
▲照片编辑测试
照片编辑测试是用各种照片效果和滤镜来测试CPU和GPU。由于Adreno GPU上强大的ALU性能,骁龙835和骁龙820/821位居前列。Adreno 540又挂了Mali T系列和G71。
在北海巨妖1.1测试中(使用Chrome、Safari、IE),iPhone表现最好,但这不足以证明苹果A系列芯片与其他Android SoCs的区别,因为它们使用不同的浏览器。iPhone的性能优势很大一部分来自于Safari的JavaScrip引擎。
与其他使用Chrome的手机相比,骁龙835的样机在北海巨妖测试中与骁龙821相差不大,在JetSteam中与Mate9相似,在WebXPRT 2015测试中显著领先于骁龙820/821。
GPU性能测试:
GPU方面,本次骁龙835采用Adreno 540,与骁龙821的Adreno 530架构基本一致。对ALU和文件寄存器做了一些优化,通过改进深度滤波器降低了每个像素的工作量,进一步提高了性能,降低了功耗。所以高通官方宣称Adreno 540的3D渲染比530提升25%,GPU峰值频率达到710MHz,比Adreno 530提升14%。
GFXBench的霸王龙测试是基于OpenGL ES 2.0的游戏模拟测试。我们看到骁龙835、iPhone7 Plus、Mate9的原型机都做到了60帧,但是Mate9和iPhone7 Plus都是1080P屏幕,骁龙835的原型机是第一款2K分辨率的产品。
在屏下测试(固定分辨率1080P渲染)中,骁龙835的性能比iPhone7 Plus和Mate 9更好,甚至比骁龙820高出25%,这与高通官方的说法一致。
GFXBench中的高性能追车测试模拟了现代渲染流水线,包括OpenGL ES 3.1和Android扩展包,主要测试ALU的性能。在这次测试中,骁龙835在分辨率上有所损失,性能落后于一加3T和Mate9。离屏时会回到第一位。总的来说,厂商的PPT有些夸张,但是在GPU部分,高通确实做到了他们PPT中承诺的提升,甚至比Mate9的Mali G71 mp8在屏下测试时还要厉害。Mali G71基于ARM最新的Bifrost架构,主频甚至达到960MHz到1037MHz。
在3DMark中的Sling Shot Extreme测试中,使用Android上的OpenGL ES 3.1或iOS上的Metal,通过2K分辨率渲染来强调GPU和内存的性能。在A10、Exynos 8890、麒麟960、骁龙820中,几乎所有的顶级处理器都在一起评测,所以骁龙835在总分测试中排名第一,iPhone 7 Plus在图形测试中高出10%,比820和8890版本的S7高出24%。这个结果还是很有意义的。
第二次测试,重点考察了GPU着色器的性能,可以看到Adreno 540有了明显的提升,比Adreno 530的S7提升了34%,比Mate 9的G71 50%提升了50%。高通在ALU和文件寄存器方面的改进已经取得了成果。物理测试主要在CPU上运行,受到SoC内存管理器随机访问的严重影响。所以虽然CPU性能接近,但骁龙835还是比Mate9快14%。或许是因为骁龙835的内存管理比麒麟960的内存延迟更低,带宽更宽。
Basemark ES 3.1测试模拟了Android和iOS上Metal的OpenGL ES 3.1,包括很多后期处理、粒子和灯光效果,但与GFXBench 4.0追车测试中的计算不同。
在Vulkan被加入基准测试之前,大多数Android设备都依赖于OpenGL,这使得运行Metal的图形API的iPhone处于极大的劣势。这让骁龙835落后iphone 7 Plus 73%。在Basemark ES 3.1测试中,ARM的Mali GPU居然超过了Adreno,Exynos 8890的Mali-T880 MP12比骁龙820的Adreno 540快了15%,麒麟960的Mali-G71MP8在屏幕测试中也比S835的Adre好。骁龙835比Pixel XL高40%。
所有的游戏模拟测试都显示了Adreno 540出色的ALU性能。所以我们在GFXBench测试了骁龙835合成的ALU测试,但奇怪的是,改进后的微架构相比820并没有太大用处。表中骁龙835相比骁龙820/821的提升对应主频。
功耗测试:
功耗方面,通过测试骁龙820和骁龙835两款原型机,骁龙820的平均功耗为4.6W,而骁龙835降低到3.56W,功耗降低了23%。但在实际使用中,不同的用户有不同的使用场景,所以这个结论暂时只能作为参考。
总结:
现在的手机SoC包括CPU、GPU、高性能DSP、低功耗DSP、ISP、调制解调器和固定功能模块(音视频解码)。在这么多的电器元件中,CPU、GPU、内存的性能很好测试。而能导致SoC设计差异较大的部分,如DSP、ISP等方面的测试并不容易,而这些恰恰是高通的强项。
在测试中,我们猜测骁龙835的Kryo280架构可以看作是A53+A73的半定制架构。Kryo280的整数与麒麟960中的浮点IPC和A73非常接近。与骁龙821相比,整数运算有了明显的提升,浮点运算则完全落后,但总体来说,进步大于落后。在测试中,毫无疑问,骁龙835比骁龙821有更好的体验。虽然测试数据都是基于高通原型机,但是笔者实际体验了一段时间骁龙835(小米6)的量产版后,感觉高通骁龙835确实有不错的体验:稳定、流畅、不烫手。给笔者最大的感受是,相比骁龙820,骁龙835几乎可以提升“看得见”的体验。对于目前性能逐渐挤牙膏的智能手机来说,骁龙835确实表现的非常好。