Galaxy S4

現在SamsungからリリースされているGalaxy S4のExynos 5 Octa搭載版について、特定のベンチマークアプリを動かしたときのみCPUとGPU駆動クロックが最高速に設定され、それ以外のアプリについては低速動作に抑えられるという現象が報告されている。AnandTechの解析結果によれば、実際に設定ファイルの中でこうした挙動が確認できたという。

Galaxy S4におけるExynos 5 Octaの不可思議な挙動は以前から報告されていたが、今回のAnandTechのレポートの中でそれが改めて確認された形だ。Galaxy S4はQualcommのSnapdragonとSamsung製SoCのExynos 5 Octaを搭載したものの2種類のコンフィグレーションが存在し、今回実験に用いられたのは国際版として流通しているExynos 5 Octa (5410)を搭載したGT-I9500だ。Exynos 5 Octaについて簡単に触れると、同プロセッサコアにはARM Cortex-A15クァッド(最大1.6GHz駆動)とARM Cortex-A7クァッド(最大1.2GHz)の計8コアを搭載しており、いわゆるARMが提唱するbig.LITTLEの先駆けとなったものだ。Cortex-A7は低速処理に特化しており、ワークロードに応じてA15側と適時切り替えが行われる。またGPUにはPowerVR SGX 544MP3を採用しており、こちらの最大駆動周波数は533MHzとなっている。

ところがGPUの速度を計測するためにベンチマークを起動したところ、例えばGLBenchmark 2.5.1では最大クロックの533MHz (532MHz)が表示されるのに対し、GFXBench 2.7.0をはじめとする他のベンチマークで480MHzでしか駆動しない状況が確認できる。これはCPUも同様で、GFXBench 2.7.0では250MHz (500MHz)の低速動作なのに対し、GLBenchmark 2.5.1では1.2GHz駆動となる。Linpackを起動したときはさらに顕著で、最大の1.6GHz駆動の表示が出る。つまりLinpackをはじめ、AnTuTu、Quadrantといった著名ベンチマークでは意図的にCPUとGPUの動作クロックを最大限に解放し、一方でそれ以外のアプリについては動作クロックに制限をかけて低速モードで動作するという仕掛けがあるというわけだ。

AnandTechではベンチ結果で傾向が判明した後、実際にTwDVFSApp.apkというファイルのデータを抽出し、「BenchmarkBooster」と呼べるテキストデータが混入しているのを発見したと報告している。ここには最大クロックで動作するベンチマークアプリの名称が細かく記述されており、Galaxy S4のシステムが特定ベンチマークアプリの動作時に意図的にクロック周波数の制限を解除して最速動作するようになっていると推測されている。AndroidなどのモバイルOSではDVFS (Dynamic Voltage and Frequency Scaling)という仕組みを採用し、実行するアプリに応じてプロセッサの動作周波数や電圧をダイナミックに変更し、システム全体としての低消費電力動作を実現している。DVFSはアプリによって挙動が変化するが、先ほどのテキストデータはその対応表ということになる。

AnandTechではこれに関して「モバイルデバイスは過去にPCが通過してきた道を歩んでいる」としつつ、Samsungに対して「全ユーザーに高速動作モードを開放するか、あるいはベンチマーク最適化モードを削除すべき」とコメントしている。SamsungではExynos 5 Octaのスペックに関して詳細にアピールしているわけではないが、実際にベンチマークで出るスコアと、同システムで別のアプリを動かして得られる体感パフォーマンスが大きく異なるわけで、その点でユーザーをミスリードしているというのは事実だ。