サムスン Galaxy S4 に、特定のベンチマークアプリだけを認識して最高クロックを解禁する「最適化」が施されていることが分かりました。
あらかじめハードコードされた数種類のベンチマークアプリ以外では、どれほど負荷が高くても最高クロックにならない検証結果が出ています。このためベンチマーク比較ではGalaxy S4 が勝っていても実アプリやゲームでは同等だったり、場合によってはベンチで負けた方がわずかに上回ることもあり得ることになります。
検証結果を公開したのは、PCからモバイルまで扱うハードウェア系サイトの老舗
AnandTech 。ハードコアな分析と検証を売りとする媒体だけあって、ベンチマークいじりは重要な、ある意味つきあいの長い問題です。
検証のきっかけは、Beyond3Dフォーラムに投稿されたGPUオーバークロックや電圧制御関連の話題で、特定のホワイトリストアプリだけが最高の GPUクロック532MHzで動き、それ以外は480MHz上限に固定されているようだ、との報告があったことから。
Galaxy S4 のグローバル版はサムスン内製の Exynos 5 Octa プロセッサを載せており、CPUにはARM Cortex-A15 x4 と A7 x4 の big.LITTLE構成8コア、 GPUにはPowerVR SGX544MP3 を採用します。
Galaxy S4 はルートアクセスなしのコマンドで現在の生GPUクロックを答える仕様になっていることから、
AnandTech では数種の代表的ベンチマークとそれ以外のアプリを走らせて最高クロックを比較しました。
詳細はリンク先に譲りますが、結果として代表的ベンチマークアプリの GLBenchmark 2.5.1、AnTuTu、Linpack、Quadrant、Benchmark Pi などでは532MHz 駆動が確認される一方、それ以外のゲームや、ベンチマークとして使われる Unreal Engine 3 のデモ Epic Citadel では、負荷が高い場面でも480MHzまでしか上がらないことが分かりました。
これだけでは何らかの特定の高負荷処理時にのみ532MHzで動くだけという可能性もありますが、決定的なのは処理的に同じベンチマークのバージョン違いで片方は速く、片方は遅くなることが確認されたこと。
GLBenchmark の 2.5.1 と、名称が変わった新バージョンにあたる GFXBench 2.7 は、開発者によればベンチマーク時の実際のローレベル処理自体は同一とされています。しかしリンク先の検証結果では、GFXBench 2.7.0 の試行5回平均が 37.9Mトライアングル/秒だったのに対して、GLBenchmark 2.5.1 では43.2Mトライアングル/秒が出ています。差は13.9%。動作時のクロック差(10.8%)に近い数値です。
こうした実測による検証に加えて、Galaxy S4 のシステムからはアプリの DVFS(動的電圧・周波数スケーリング)動作に影響を与えるアプリ TwDVFSApp.apk も見つかっています。バイナリを覗いて分かるのは、上述のAnTuTu や Quadrant などのベンチマークアプリ識別子がハードコードされていること、「BenchmarkBooster」なる実に分かりやすい文字列があること。
Exynos 5 Octaのコードネーム " Adonis " のほか、ドコモ版SC-04Eなど特定バージョンの Galaxy S4 が搭載する Snapdragon 600 + MDM9x15モデムのコードネーム " Fusion3 " も条件として見つかっています。
また GPUの動作クロックとは別に、特定のアプリが起動中は、CPUコアもすべてのコアが高いクロックで駆動する挙動も確認されています。たとえばExynos 5 Octa の場合、決め打ちされたベンチマークアプリではメニューでアイドルに近いときでも、速い方の Cortex-A15 コア x 4 に切り替えて1.2GHz動作。同じベンチマークアプリでもバージョン違いでホワイトリストに含まれていない場合はCortex-A7 で 500MHz (250MHz)。
さて、ベンチマークいじりや「最適化」といえば、かつてPC用のグラフィックボード業界がまだ群雄割拠の乱世だった頃から、自作派やPCゲーマーのあいだではたびたび耳にする話題でした。
ベンチマークとして使われる特定のゲームでのみ処理を変える(こっそりテクスチャ品質を落とすetc)といった「最適化」ならば、まだしも人気ゲームを快適に遊ぶための努力だという言い逃れもありましたが、今回見つかった「ベンチマークブースター」は決め打ちされたベンチマークのみが対象であり、実アプリやゲームでは互角の端末にベンチマーク上でだけ勝つことが目的と思われてもしかたがありません。
(モバイル端末では最高クロックで動かすことが正義ではなく、バッテリー駆動時間を勘案してパフォーマンスとのバランスを求めることは当然ですが、ならばその見切りを性能として堂々と見せればよく、アプリ名を決め打ちしてベンチだけで速く見せかけることとはまた別の話です。)
この「最適化」がいつから始まり、サムスンのどの端末に、あるいはどのメーカーに含まれているかはまだ不明。サムスンにはこの件について直接問い合わせをしています。ひとたび「ベンチでだけ速くする仕掛けが入っているらしい」という話が明るみにでれば、今後まともなエンジニアリング努力で速くしても「ベンチだけでしょ」といわれる逆効果にもなりかねません。