Android常见跑分和游戏负载分析
编者按:我们经常会见到手机评测、测试中用到一些跑分软件,很多用户只是笼统地看表面分数,而不知道有些手机为什么会高分,也不知道不同跑分软件的结果为什么差异这么大。实际上不同的跑分软件对硬件侧重点不同,这也就造成了跑分软件结果的区别。
本文作者是@ioncannon,原文出自百度高通吧。
测试的程序:
Basemark X
3dmark GT1场景
3dmark GT2场景
GLBenchmark 2.7 T-Rex
GLBenchamrk 2.5 Egypt HD
BaseMark ES Taiji
RR3 = EA 真实赛车3
NFS17= EA 极品飞车17
Antutu,你们都懂的
Asphalt 7 = Gameloft 狂野飚车7,1.05版,中画质
Modern Combat4 = Gameloft 现代战争4
--
运行一段时间取平均值,以下都是每帧画面的负载,分辨率为1280×720
解说不见得确切,仅供参考
---
每帧画面的顶点数,单位是M
Basemark X, 3dmark场景1,GLBenchmark都是算顶点数很多的了
比起一般的游戏更是多了不少—— 当然游戏里面,RR3的顶点数算是多了,至少比起现代战争4啊,NFS17啊多不少
至于Antutu,顶点数非常少。。。比现在的游戏里还少
每帧画面的像素渲染数目,和纹理贴图数目,单位还是M
BaseMark X展示出了逆天的压力——如果要达到满帧60fps,你的GPU至少需要2400M的像素处理能力/填充率
3dmark和GLB 2.7的压力也不小——3dmark场景2是侧重像素压榨
antutu同学在像素压榨上也下了不少功夫
当然现在的几个游戏,也还是比较吃像素的
每帧的顶点指令数目,单位是M(百万)
这里综合考虑了处理的复杂度,有可能顶点数目不多,但单个顶点需要做一些复杂的shader计算。不过结果好像差不太多
每帧的像素渲染指令数目,单位是M(百万)
其中蓝色的是高精度FP32的计算,红色的是中精度FP16的计算
BaseMark X依旧压力逆天
3dmark从桌面过来,基本都是FP32的高精度计算
而GLB则以FP16的低精度计算为主……
其他几个,和游戏里,大部分是一半一半
单个顶点/像素渲染的指令数据(平均值)侧面反映了指令的复杂度
像素部分(红色)差不太多
但顶点(蓝色)指令,几个跑分还是比游戏复杂不少
每帧画面的带宽占用,单位是M
蓝色是纹理读取带宽
红色是总的读取
绿色是总的写入
基本上,渲染一帧画面,GPU需要读取20-30M的数据,那么50fps基本需要带宽1.5GB/s。
我们发现游戏里面NFS17算是比较吃带宽的了,720p下 50fps差不多要2G/s
当然暴力的BaseMark X和GLB2.7每帧需要100M的读取,要是50帧的话,5GB/s的带宽就去了。
更逆天的是antutu……它采用了未压缩的纹理,尽管画面简陋,但每一帧需要读取的纹理达到了200MB(当然肯定还有优化上的问题)
于是antutu的3d在一定程度上变成了一个带宽的benchamrk:
即使我大神米能跑到30fps,也已经去掉了6GB/s的带宽:双通道LPDDR2-1066的极限8.5GB/s,已经快吃不消了
有时候你们会奇怪,为什么Adreno 320带720p和1080p,安兔兔3d得分却差不多?
其实GPU还有点余力,但带宽已经被兔兔吃完了……
这时候,搭载双通道LPDDR3的Octa GS4,优势就出来了,凭借13GB/s的带宽,打破30fps的瓶颈
这也是为什么,544MP3在3d mark, basemark x中的成绩跟S600的Adreno 320相仿
但在安兔兔里,却能破9000接近10000,而Adreno 320只有7000分不到
S600相比8064在内存性能上的一些提升,也导致了安兔兔得分的提升
当然,我并不是说安兔兔3d本身是个带宽取向的benchmark,实际上它对Fragment shader的压榨是存在的,只是到帧率达到或接近30fps时,目前大部分SoC配备的LPDDR2成为了瓶颈——其不合理之处在于,带宽需求比实际游戏高了快一个数量级。
-------------------
综上,我想各位对几个benchmark的侧重也有了一定的了解
至于跑分到底是不是娱乐——跑分不是实际,跑分也不是娱乐——
了解更多新酷炫设备,敬请关注@爱搞机
相关链接:
双核X86手机 联想K900评测
X86上的Android:性能与兼容可否兼得?
性能霸主 Galaxy S4(I9500)正式版评测
如何查看骁龙600的“体质”?
“Super”在哪?小米2S性能对比测试