正文内容 评论(0

Galaxy S4被踢爆:跑分超频 平常降频
2013-07-31 11:06:21  出处:快科技 作者:上方文Q 编辑:上方文Q     评论(0)点击可以复制本篇文章的标题和链接

UPDATE——

Galaxy S4跑分作弊续:暗箱中的优化

三星回应Galaxy S4跑分作弊:子虚乌有

PC时代,有关测试跑分作弊的争议就从来没断过,移动平台也很好地“继承了这一光荣传统”,安兔兔屡受质疑、3DMark偏袒痕迹明显,厂商的针对性优化也早已是公开的秘密。

最近,Beyond3D硬件论坛的@AndreiF就发帖称,他通过测试发现,三星Galaxy S4配备的Exynos 5410处理器存在作弊现象,PowerVR SGX 544MP3 GPU在基准测试跑分的时候频率可以达到533MHz,但是日常应用、游戏里却被卡在最高480MHz。

为了验证,AnandTech拿出了他们自己买的两部S4,其一就是国际版GT-I9500,其二是韩国SK电信版SHV-E300S,搭载三星自己的SS222 LTE基带。它们俩用的处理器都正是Exynos 5410,拥有四个A15 1.6GHz、四个A7 1.2GHz CPU核心。

Galaxy S4被踢爆:跑分超频 平常降频

【GPU果然在“变频”】

幸运的是,不需要root,一个简单的命令就可以得到三星GPU的当前工作频率:

adb shell cat /sys/module/pvrsrvkm/parameters/sgx_gpu_clk

循环运行此命令,即可查看GPU的实时频率。代码如下:

#!/bin/bash
 
while [ 1 ];
do
        clk=$(./adb shell cat /sys/module/pvrsrvkm/parameters/sgx_gpu_clk)
        if [[ $clk > 481 ]]
                then
                echo "Clock is over 480"
        fi
        echo $clk
        sleep 1
done

运行任何游戏,即便是要求非常高的,GPU频率始终不超过480MHz,验证了@AndreiF的说法,但是根据内部消息,三星从来没有公布过Exynos 5410的最高GPU频率,所以到现在为止也无可指摘。

Galaxy S4被踢爆:跑分超频 平常降频
Epic Citadel:480MHz

但是我们来跑跑分。启动GLBenchmark 2.5.1,GPU频率马上就跑到了532MHz。AnTuTu安兔兔、Quadrant象限测试同样如此。@AndreiF似乎是对的。

Galaxy S4被踢爆:跑分超频 平常降频
安兔兔:523MHz

不过有意思的是,最新版的GFXBench 2.7.0(之前叫做GLBenchmark 2.7.0)却不存在这种现象,最高频率仍旧是480MHz。

频率上这10.8%的变化对性能的影响是显而易见的,三角形输出率平均可以差13.9%

Galaxy S4被踢爆:跑分超频 平常降频

通过联系该工具的作者Kishonti,可以确认两个版本的底层测试机制是完全相同的,新版并未做什么变动,也就是说他们并未针对三星处理器作调整。

那为什么会这样?或许只有三星能解释了。

【CPU也不老实】

事情到这里应该告一段落了,但我们继续深挖一下:GPU之外,CPU是否也存在类似的现象呢?

CPU频率的监控容易多了,System Monitor之类的工具都可以做到。先启动GLBenchmark 2.5.1,“八核处理器”实际工作的是A15集群,默认频率为1.2GHz,而且从来没有低于这个数值,即便是空闲的时候。

Galaxy S4被踢爆:跑分超频 平常降频

再启动GFXBench 2.7.0,这次运行的是A7集群,频率为500MHz(虚拟频率250MHz)。两个版本还是不一样。

Galaxy S4被踢爆:跑分超频 平常降频

AnTuTu、Linpack、Benchmark Pi、Quadrant等其它测试工具也同样如此。看来在测试程序启动的时候,CPU管理机制就已经确定了如何运行,期间不再变动。

有趣的是,这种现象并不是三星的专利,高通骁龙600版的Galaxy S4也会这么干,只要程序启动就给所有核心设定一个频率,然后不再变化,不管负载如何都一样。

Galaxy S4被踢爆:跑分超频 平常降频
Linpack:Exynos 5所有A15核心1.6GHz、骁龙600所有核心1.9GHz

注意,这和GPU上的变动是不同的。GPU 532MHz只能在跑分的时候看到,CPU频率则对任何应用都是可用的,只不过在这些测试中上来就指定了最高频率。

【揭示三星的幕后操作】

问题找到了,但到底发生了什么?三星是怎么设计的?

AnandTech找来了三星自带的可以改变动态电压频率调整(DVFS)的高级工具TwDVFSApp,使用十六进制编辑器打开apk文件,寻找有嫌疑的字符串,最后发现了一个“BenchmarkBooster”(基准测试加速器):

Galaxy S4被踢爆:跑分超频 平常降频

高亮区域可以看到很多根据Android Java命名方式列举的测试工具,包括Quarant标准版/高级版/专业版、Linpack免费版、Benchmark Pi、安兔兔,都是出现过问题的,但奇怪的是没有GLBenchmark 2.5.1。

TwDVFSApp运行期间涉及到的文件也可以轻松挖掘出来:

//sys/class/devfreq/exynos5-busfreq-int/min_freq
//sys/class/devfreq/exynos5-busfreq-mif/min_freq
+/sys/class/thermal/thermal_zone0/boost_mode
2/sys/devices/platform/pvrsrvkm.0/sgx_dvfs_min_lock

TwDVFSApp将特定的DVFS状态与应用联系起来的时候,boost_mode文件的值就会从0变成1,很容易就辨别受影响应用是否在运行,比如启动和退出Benchmark Pi的时候分别如下:

shell@android:/sys/class/thermal/thermal_zone0 $ cat boost_mode               
1

shell@android:/sys/class/thermal/thermal_zone0 $ cat boost_mode               
0

还能找到针对Fusion 3(骁龙600处理器加MDM9x15基带)、Adonis(Exynos 5410开发代号)的字符串,同样都带有加速字样:

doBoostAll
doBoostForAdonis
doBoostForAdonis::
doBoostForFusion3
doBoostForFusion3::

更值得玩味的是,TwDVFSApp还是个广播接收器(broadcast receiver),似乎还会向不在白名单之列的其它测试工具发出BenchmarkBoost模式的请求,目的显而易见。

6Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver$1;
6Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver$2;
?Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver$IntentInfo;
4Lcom/sec/android/app/twdvfs/TwDVFSBroadcastReceiver;
boostIntent
5com.sec.android.intent.action.DVFS_FG_PROCESS_CHANGED
*com.sec.android.intent.action.SSRM_REQUEST

到此,我们不仅知道了哪些程序会受到影响,也发现了疑似白名单,以及TwDVFSApp是如何为特定应用指定特定DVFS状态的。

【不是结论的结论】

AnandTech表示,尽管发现了这么多奇怪而有趣的现象,但对他们而言并无影响,因为这家权威测试网站不屑于使用安兔兔、象限、Benchmark Pi之类的测试工具,GFXBench 2.7发布之后他们也第一时间放弃了GLBenchmark 2.5.1(除了偶尔比较之用),Linpack也早就不用了。

但是,喜欢跑分的大有人在,较真的也很多。三星这种行为,说好听点叫优化,难听点就是作弊,肯定无法让人接受和信服。今后在和其它手机比较Galaxy S4的性能时,你就得小心点了,光拿出一个很漂亮的分数是不行的。

说来很有意思,PC行业经过那么多年已经渐渐迟暮、平缓,移动领域迅速崛起,但在很多地方都可以看到PC发展的影子,很多东西都被搬了过来,比如这种“优化”,而且学得还贼快!

不过有一种局面还没有出现。FurMark拷机软件大家应该都知道吧。它能以超高的综合负载彻底压榨PC系统的CPU、GPU性能,让它们释放出全部能量,但也会因此造成很高的发热量而出现意外。为了避免损伤硬件,或者其它不好看的结果,GPU厂商这几年已经开始“封杀”此类工具,检测到它们运行就刻意降低GPU频率。

智能手机和平板机空间狭小,功耗和发热量更加敏感,因此可以断定,这种情况早晚也会出现。至于是否合理就不好评判了:你可以说这样能保护硬件安全,也可以说是在掩盖真实表现。

回头再说三星。此文并不是要黑这家韩国巨头,其它芯片厂商可能也有类似行为,只不过尚未被挖出来,但是既然被曝光了,三星就得好好考虑一下如何回应和解决。

要么,你就彻底删除这些“优化”手段,要么你就透明一些,向所有用户和程序公开,比如允许自定义CPU频率模式,开放532MHz GPU频率。

如果三星保持沉默,坚持不肯做任何改变,其它芯片厂商自然也看在眼里,肯定会竞相效仿(或者说已经在做了),结果就是大家都在花很大精力去优化跑分,却忘了分数只是个分数,和用户体验无关。我们要的,只是更流畅、更精致的应用和游戏体验。

Galaxy S4被踢爆:跑分超频 平常降频

【本文结束】如需转载请务必注明出处:快科技

责任编辑:

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#三星#安卓

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...