»
首页
|
手机数码
|
汽车资讯
|
游戏硬件
|
评测专题
|
手机壁纸
|
海淘值得买
|
度假
|
求职招聘
|
广告联系
» 您尚未登录:请
登录
|
注册
|
标签
|
帮助
|
小黑屋
|
TGFC Lifestyle
»
完全数码讨论区
» 三棒跑分被踢爆:Galaxy S4跑分超频 平常降频
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
三棒跑分被踢爆:Galaxy S4跑分超频 平常降频
akilla
小黑屋
帖子
6139
精华
0
积分
18012
激骚
236 度
爱车
主机
相机
手机
注册时间
2002-11-26
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2013-7-31 22:33
显示全部帖子
http://news.mydrivers.com/1/271/271016.htm
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核心。
【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状态的。
UID
6374
帖子
6139
精华
0
积分
18012
交易积分
0
阅读权限
1
在线时间
7295 小时
注册时间
2002-11-26
最后登录
2019-11-14
查看详细资料
TOP
akilla
小黑屋
帖子
6139
精华
0
积分
18012
激骚
236 度
爱车
主机
相机
手机
注册时间
2002-11-26
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2013-7-31 22:38
显示全部帖子
这针对antutu的手写代码配置,鹏泰水军快来救主。
之前安兔兔黑华为那叫一个用劲,这次估计三棒的百亿美金用到位了,安兔兔屁都不敢放一个
UID
6374
帖子
6139
精华
0
积分
18012
交易积分
0
阅读权限
1
在线时间
7295 小时
注册时间
2002-11-26
最后登录
2019-11-14
查看详细资料
TOP
控制面板首页
密码修改
积分交易
积分记录
公众用户组
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计