这个首发于我的bilibili专栏上:

骁龙820是2015年的旗舰SoC。如果从现在来看,820也是高通最后一代自己设计CPU架构的一代。从此之后就走上了安心arm公版架构的路子。同时,也是adreno5**系列的首个旗舰GPU,这个架构也是撑过了820和835。毕竟人真的是两代升级一次。
820理论性能:令人感到怪异的小核心
与同代的大小核区分CPU架构不同,820的大核与小核均为kryo架构。当然,这并不意味着这两者之间没有差距。事实上,kryo大核与小核心的差距是非常巨大的。
首先让我看浮点性能

当我以频率为横轴时,kryo的大核心与小核心已经展现出了其怪异的地方。事实上,非常反直觉的是,kryo小核心在同频率的浮点功耗上,是要比大核心更高的。当然,以我的视角这件事是十分难以理解的。很难想象一个相同架构,还在二级缓存上缩水的小核心,却在同频率的功耗上更高,这意味着似乎从1GHz之后,以浮点性能的角度来看,小核心已经失去了意义。

当我切换回每单位时钟频率(在这里我使用的是1MHz)性能的角度,似乎二级缓存的大幅度缩水又确实造成了每单位时钟频率性能的大幅度下降。尤其是在理论性能测试中我是删除了温控的,不会存在过热的性能损失。况且即使存在过热的性能损失,这个问题应当在高频的大核上体现更大。事实上也是,在测试中单论绝对的功耗上来说,大核由于频率要高许多,功耗会更大。但即使如此大核上也没有体现出过热的损失,所以这一点是可以排除的。最终来说,每单位时钟频率性能上又是实实在在的降低了。

当以性能轴来看的时候,每单位时钟频率性能的损失与同频下更大的功耗的双重打击下。Kryo的小核心似乎从头到尾,从来就没有真正获得过小核心应当拥有的能耗比优势。从这个角度看,似乎这个小核心就不应该超过1GHz。从浮点性能的角度来看,kryo的大小核配置着实令人大跌眼镜。

最终,当我回归到能耗比的问题上,他再次证明了这个小核心实在是没有优势。这个核心压根就不应该再浮点中运行超过1GHz的频率。以及这颗小核心本身就十分让人迷惑这件事上,看来实在是没有让人失望…..以至于现在我只能冒出来一句,绝了。

而当我换到整数性能上事,事情就发生了不同,kryo的大小核在这方面体现的是惊人的一致。似乎小核心在这方面完全没有受到制约。当然在日常使用中多以整数为大,至少这一点上高通没有亏待用户。当然因为缺乏同代的比较,我很难确定相对于同代的表现如何,不过在大小核心博弈上,这个是没有什么问题的。

当然这样也就意味着在每时钟性能的方面,两者基本没有什么好多评价的。就只是单纯的一致。

当我回到整整重要的性能轴与功耗时,小核心与大核心得到了区分。尽管这个区分不大,尤其考虑到这个区分基本同855的A76核心之间的差距一样。我可以十分确定的表明这确实是个完全相同的架构。而十分有趣的是在1.59GHz这个小核心最大频率时,功耗也正好赶上大核心。相同的事情也发生在了SD855的2.64GHz的A76中核心上。可以说是高通惯例了。尽管在anandtech的衡量上,这里讨论的是浮点和整数的综合性能而不是我这里的区分浮点与整数区分的情况。

当我回到能耗比上,大小核心的关键得到了很好的区分。高通正是以这里整数上的能耗比决定了小核心的频率,当然由于浮点上的发挥,这个kryo的小核心始终都是一个捉摸不透的状态。最好还是祈祷一下日常使用压根用不上浮点吧,尤其是在adreno GPU强大的浮点性能的支持下。
总的来说,由于缺乏同代的数据比较,我很难对于任意一颗SoC提出靠谱的在竞争力上的评价。但至少就单纯的数据于大小核的博弈上,我对这个小核心还是很不满意的。
尤其是当这玩意全核心浮点满载能达到接近8W的时候,而且里面的约3W还是由小核心提供的。
CPU缓存性能:同样令人迷惑

首先是在浮点(FP32 FP64)和整数下的缓存读取性能。首先令人困惑的是一级缓存和二级缓存没有得到区分,当然同时大核的二级缓存于RAM之间也没有得到明确的区分。在单精度浮点和整数下,其实两者的性能都十分的相似。但是显然这里是贬义,虽然没有别的对比,但是以845的缓存性能为例的话,在我的手机上,一级缓存能够达到二级缓存的两倍速率。当然关于这一点我难以评价,似乎在A57上表现也与kryo十分类似。当然kryo的对手已经是A72和M1了。而在双精度浮点上,缓存速率明显更快,但是在第二次测试中,很明显在32KB的一级缓存位置得到了很大损失。类似的现象经常发生,既一级缓存的速率浮动,有时是16KB速度慢了,有时又像这里的32KB一样慢了。当然这里最致命的是,这让本就和二级缓存没有得到区分的一级缓存的表现更加雪上加霜了。

让我再回到普通的缓存读写性能上,当然我承认这图很乱嗦以我还是靠谱的区分了

首先在顺序读写性能上,大核心的一级缓存和二级缓存一如既往的没有得到区分。但是真正悲惨的是小核心,你难以想象小核心的缓存读写性能,从一级缓存到RAM,从头到尾都没有得到区分。更何况,他的速率只有大核心的一半。和大核心相比,他的发挥简直是悲惨。当然,由于缺乏同代的比较,我很直接下口一个,这个缓存就是败笔。

而当我们回到随机读写性能上,一二级缓存与RAM的差距一览无遗。RAM的速率直接降低到了数百MB/S,而大核的一级缓存还能保持在10000MB/S以上。小核心相比悲惨了许多,一级缓存的速率还是没有达到大核心的二级缓存,基本都是保持在5000MB/S以下。当然都与RAM保持着几乎十倍的差距。
如果从速率衰减的角度看,二级缓存与RAM之间从来没有得到明确的区分。类似的现象也出现在来anandtech的缓存测试中,当然他们测试是缓存延迟。她们能区分出一级缓存和二级缓存,却难以确定二级缓存于RAM。衰减起始远早于到达RAM的大小。
总的来说,随机性能得到了理所当然的差距,但是在顺序上始终没有得到区分。更主要的是以现在的角度,顺序性能上也应当体现出区别,而他并没有。
JAVA与native/C
安卓平台不同于PC,其实大部分应用使用JAVA编写,我们在这里必须要考虑到这点问题

在CPU speed test中以浮点和整数性能来看,JAVA确实在性能上得到了削弱。当然这并不意味着JAVA编写的性能一定不如native/C,最终来说还是只能反映总体和宏观上的问题。

在SciMark中使用C bench和JAVA bench对比。当然SciMark的测试内容其实基本和日常使用不搭边。大部分项目中,JAVA便显出了不大的差距,甚至还有小幅度反超的。唯独在Monte Carlo的项目上被削成了狗,在以后其他SoC的评测中,这个项目怎么发挥的,我会十分感兴趣(前提是还有下一的SoC的话)
GPU性能:能效与频率

当我们以mamhattan 3.1和T-Res的性能与功耗看时,他们表现出十分理想和规律的曲线。在与anandtech的历史数据对比中,我可以十分确定的是,能耗比上体现出了更好一些。虽然幅度并不大,我认为这可能时由于体质或者驱动的原因。但其实性能上似乎并没有真正的有提升,体质上的决定权可能更大一些。

当我们看同频率不同项目的性能时,两者再次体现了一致。当然,由于项目不同,对准的轴是不同的,不过从趋势上来看,确实体现出了一致。当然这里体现的并不是一个直线,每单位频率性能应当也是存在一定幅度的波动的。

于是在单位时钟频率的表现上确实体现出了一定的浮动,不过总的来说都是非常的稳定的。因为实际这个决定权还蛮多的,嗦以我认为还是蛮正常。

当我们回到能耗比上,事情就非常的有趣了。以普通的观念中,我们普遍认为频率越低,能耗比越高,但其实在这里似乎能耗比最高点确定在了300MHz附近。实际在我们的CPU测试中,能耗比也是在低频明显更高。当然在1GHz以内时,能耗比已经有很大的波动了。这可能是由于GPU极低的工作频率的原因,这方面的特性和高频(实际上在频率的角度来看,CPU相对于GPU那都是相当极端的高频率了)。毕竟在这个300MHz上,我在CPU项目上可并没有下探到这么低的频率。
OpenGL ES3.1同Vulkan

以Aztec Ruin OpenGL(HT) offs 1440p和Aztec Ruin Vulkan(HT) offs 1440p对比来看。首先在性能上,两者并没有得到区分。得到了区分的是功耗,SoC的功耗得到了相当幅度的降低。最终为我们的带来的是能耗比上的提高,当然之前的图表上体现了,似乎GPU的功耗同项目关系并不大。在这个项目中,GPU是运行在最高频率上的。Vulkan在这方面的变化似乎比单纯的能耗比更加复杂。这方面的问题我会留在后面再说。
推理性能(AI):作为一个15年的产品,出乎意料的优秀
(a指代整数,b指代浮点)

首先在功耗上的测量,由于AI benchmark 3的项目持续时间极短,嗦以功耗得测量准确程度十分有限。首先在功耗上,其实取决于项目820的功耗变化幅度还是蛮大。抛开initialization(初始化)的时间来看,实际上820作为一个老旧的SoC到现在也没有体现出多么巨大的劣势。当然我这里显示是的是运行时间,当以一个单位时间(这里是1000ms)做出单位时间运行次数的对比。 毕竟我压根就没明白AI benchmark 3的分数是怎么转化出来的。

当回到以分数衡量时,确实变得不一样了。当以时间衡量时,1项目的ab(整数与浮点)上,两者能耗比有明显的区别,但是这个区别并没有体现在分数衡量轴上。在分数衡量轴上,实际上浮点和整数体现出了相当的能耗比。以及浮点上明显更高的成绩。
当我们以分数作为比较(尤其是与诸如kirin970和更强的845),我们也已经得到了一半的成绩,考虑到这是一个巨老的SoC,这个发挥是非常优秀的。另外不得不人承认和AI benchmark的数据比对,和三星的820相比也有很大幅度的优势。这里因当是三星的系统问题。
系统性能
首先应当明白,系统性能(日常使用流畅度)高度取决于硬件以及软件。如果以845来看,最高者如pixel3与一加6t,可以直接与下一代的kirin980展开有来有回的竞争,而低者却只有他们的60%的系统性能得分。

总体来说在work2.0,我们得到5323的成绩。这个其实没有什么好太多说的。好在PCmark能查看与其他设备的对比成绩,820一如既往在诸如video editing之类的项目保持领先。当然和黑820的不同,820的得分也并不差,况且820得分差的话,那连同同一代的SoC都没有一个能打的。
不管怎么样,和同一代相比,820的发挥非常平均,都非常的普通。没什么好多说的。
游戏性能
基准

首先以3DMark SSE为标准。这里Vulkan真正带来的优势就很明显了,实际上相较于OpenGL ES3.1,对于GPU性能(graphics性能)并没有体现出优势,甚至是劣势。但是相对于CPU的physics测试中,得到很大幅度的提升。如果我们现在换个视点,当我们在普通的游戏中,以固定的CPU负载中运行的时候,Vulkan能够以更低的CPU功耗运行。
这项特性首先在AMD的ppt中指出,Vulkan对于多线程的负载的优化是明显优于过去的API,诸如DirectX11。当然游戏始终是单线程的程序,多线程始终是把独立的子项目分配给其他线程,嗦以即使Vulkan,其多线程的优化始终是有限的。我们讨论的CPU多线程优化始终仅仅表示能够调用的线程数的区别。

放入实际游戏
Simpleplanes是一个较低负载游戏,以最高画质,运行降落的练习关卡。同时十分的吃CPU,当然是在游戏组件一堆的情况下。如果你真去看游戏的分享的存档,你会发现一堆都是先提示你,可能你手机会顶不住。当然因为是预设的关卡,嗦以负载很明显不高。
这里能保持59FPS平均,最低56FPS,还是可以的。
Mad Out 2可以说是经典的显卡杀手了。我们苦逼的820即使是在medium设定下,也依然只能29平均,最低都蹦到3FPS了。


这是我见过最接近PC画质的游戏了。单论画质基本除了SSAO的明暗过于生硬和明显,其他也没茬了。

可以感受一下这SSAO的效果,wsl
总体来说820的发挥在CPU上很迷,但是GPU还是非常优秀的。
你会发现这一篇下来几乎没有什么和其他的对比,因为确实没有。我手上并没有可以拿来对比的手机,所以也并不能对这一点做出什么对比。但是对于SoC着实是有多了了解。
免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:迟到4年的骁龙820评测 https://www.zentong.com/zt/8477.html