手机性能基准测试作弊已有很长的历史,可追溯到整个行业(至少在智能手机行业时代如此),并且多年来一直是备受争议的报道话题。
几年前,一度被认为靠谱的基准测试软件,突然爆发了一场信任危机。原因是某些智能手机制造商在检测到跑分工具时有作弊的行为,导致实际体验未能达成消费者的预期。比如三星、华为等手机都被爆出过疑似跑分作弊的行为。
以三星为例,2014 年,测试人员发现三星通过添加源代码在基准测试中作弊,该代码能够检测基准测试应用程序是否在手机上运行,一旦发现,则以更快的速度(532MHz,正常情况下为 480MHz)运行手机。由此,三星遭到了集体诉讼,且该诉讼长达 4 年。2019 年 9 月 30 日,三星败诉,承认在基准测试中作弊,同意向 Galaxy S4 的购买者支付 10 美元赔偿,总金额高达1340万美元。
如今类似的事情还在上演,近期在联发科芯片上也被发现了疑似跑分“作弊”的行为。
联发科Helio P95胜过天玑1000L ?
事情的开始,要从 OPPO Reno3 说起。
外媒 Anandtech 发现,搭载 P95CPU 的欧洲版 OPPO Reno3 Pro 的跑分数值比搭载性能更强大的最新 Dimensity 1000L CPU 的国行版 Reno3 的高,这引起了 Anandtech 的质疑。
由此,Anandtech 分别使用匿名版(可帮助分值作弊)和常规版的 PCMark 对 MediaTek P95 CPU 进行跑分。
结果显示,P95 CPU 的真实总分比匿名版得分低 30%;很自然,也很不幸,我的第一个想法是,一定是有什么作弊行为发生了。我们联系了UL的朋友,希望得到一个匿名版的PCMark–过去那里的团队在阻止行业内的作弊行为方面也起到了很大的作用。不出乎我的意料,两个版本的基准分数确实存在差异–但我还是对分数的偏差幅度感到震惊:总分相差30%,而在重要的子测试中,在写入负载方面,二者得分的差异甚至达到 75%。
那么检测到的作弊行为究竟是芯片厂商,还是手机厂商造成的?
Anandtech同时测试了一款骁龙765G变体的Reno3 Pro。如果这个机制是Oppo造成的,那么这款设备肯定也会在PCMark中检测到并作弊。但实际上情况并非如此:这款设备在基准测试中的表现似乎和其他任何应用中的表现一样好。
这样的对比结果表明并非是 OPPO Reno3 Pro 导致的跑分差异。也就是说,造成跑分差异的根源在于联发科芯片。
再深入挖掘一下联发科版本的Reno3,整个作弊机制似乎已经在存在了好几年了:
Reno3 Pro -“运动模式” Benchmark 白名单
为了证明这一结论,Anandtech 对 Reno3 搭载的联发科芯片作进一步调查。结果发现,在手机的固件(/vendor/etc 文件夹)中,包含一个“power_whitelist_cfg.xml”文件。
该文件中存在一个涵盖各种基准测试的列表,包括 GeekBench、AnTuTu、3dbench,、PCMark、鲁大师、AndroBench2 等。不仅如此,列表中还新增了人工智能基准测试,包括 Master Lu AIBench、ZTH AI 。
Reno3 Pro -Non-public Benchmark Targeting
在这其中,Anandtech 找到了 PCMark 的 APK ID,发现 ID 中配置了一些电源管理提示,其中一个共同的提示为“运动模式”。
该模式能够修正 SoC 芯片的一些 DVFS (动态电压频率调整)特性,比如始终以最大频率运行内存控制器。另外,在负载跟踪方面,调度器也被更改了设置,在工作负载时 CPU 核心的频率能够更快地上升,并停留更长时间。
不仅如此,其 APK ID 还包含了企业版的 GFXBench,虽然在清单中没有配置“运动模式”提示,但在使用应用程序是会改为默认的 DVFS、热力和调度器设置。
Sports Mode on Reno 3 (Dimensity 1000L)
Sports Mode on Reno 3 Pro (P95)
那么,这个 "运动模式 "究竟有什么作用呢?首先,它似乎修复了SoC的一些DVFS特性,比如一直以最高频率运行内存控制器等。此外,调度器的设置也让它的负载跟踪更加激进—这意味着工作负载更容易让CPU核心的频率提升得更快,并在那里停留更长时间,以获得增强机制。
我们不确定_FPS_条目是这样做的,但鉴于其明显的命名,他们正在改变一些东西来改善基准数据。这里最奇怪的是在F2FS设备上提升文件系统速度的条目,这可能是AndroBench等基准测试也被针对的原因。
值得注意的是,“power_whitelist_cfg.xml”文件不仅存在于 OPPO 设备上,Anandtech 还在其他设备上(搭载联发科芯片的设备)发现了类似文件以及几乎相同的基准清单条目。如表所示:
这里令人震惊的是它所使用的设备种类之多。这里最古老的设备是2016年的索尼XA1和P20。
Oppo Reno3 Pro(P95) - 新固件与初始固件的对比
更可疑的是,我们很幸运地发现,这些列表似乎正在被隐藏。我已经从Reno3 Pro的初始现成固件中提取了文件。在过去的几周中,OPPO将固件更新推送到了手机上,当我再次检查文件中的某些内容时,我惊讶地发现基准条目消失了。
该机制是否被禁用?目前我们不知道现在这些条目已经移到哪里了,但这款手机在很大程度上仍然在基准测试中触发了它的运动模式。
联发科回应
对于 Anandtech 提出的质疑,联发科方面也给出了正面回应。以下为回应声明:
联发科技遵循公认的行业标准,并且对基准测试准确地代表了我们芯片组的功能充满信心。在测试和基准测试由我们的芯片组驱动的设备时,我们与全球设备制造商紧密合作,但最终,品牌商可以灵活地配置自己认为合适的设备。许多公司将设备设计为在进行基准测试时以最高性能运行,以显示芯片组的全部功能。这揭示了任何给定芯片组的性能能力的最高端。
当然,在现实世界中,有许多因素将决定芯片组的性能。联发科技的芯片组旨在优化功耗和性能,以在尽可能延长电池寿命的同时提供最佳的用户体验。如果有人正在运行诸如要求苛刻的游戏之类的计算密集型程序,则该芯片组将智能地适应计算模式以提供持续的性能。
这意味着,随着芯片组根据出色的用户体验所需的功能和性能动态管理 CPU,GPU和内存资源,用户将从不同的应用程序中看到不同的性能水平。此外,某些品牌在不同地区具有不同类型的模式,因此设备性能可能会因地区市场需求而异。
我们认为,在基准测试中展示芯片组的全部功能与其他公司的做法是一致的,并且可以为消费者提供有关设备性能的准确信息。
联发科认为,其公布的 Benchmarks 分值代表了芯片组驱动设备时的最高分值,代表了芯片组性能的最高端,所以不存在跑分造假的行为。同时联发科指出,这一做法与其它公司的做法是一致的,也就是说,行业里的厂商都是这么做的。
但这一回应遭到了 Anandtech 的反驳。Anandtech认为,联发科并无回应出问题的本质。。。