ニュース
なぜiPhone 5sとiPad Airは3DMark物理テストの結果が悪いのか
~Futuremarkが検証を実施
(2013/11/5 17:19)
フィンランドのFuturemarkは4日(現地時間)、Appleの「iPhone 5s」と「iPad Air」において、「3DMark」の物理テストの結果が奮わないことについての検証結果を公開した。これによると、「A7」のメモリアクセスの特性に原因があることが分かった。
3DMark Ice Stormでは、GPU用にグラフィックステスト、CPU用に物理テストを実施する。また、同Unlimitedモードでは、垂直同期やディスプレイスケーリングなど結果に影響を及ぼす要素を排除した上で、テストを行ない、異なるプラットフォームでもチップ同士の比較ができるようしている。
A7はスマートフォン向けSoCで初めて64bitに対応したもので、AppleではiPhone 5に搭載されている「A6」に対して、CPU/GPUとも最大で2倍高性能だとしている。3DMarkを通じてユーザーからアップロードされた結果によると、確かにGPU性能は5,191対17,961(iPhone 5対iPhone 5s)で、iPhone 5の3倍以上速い。しかし、CPU性能はというと、8,197対7,783(同)で、iPhone 5を若干下回る結果が出ているのだ。A6とA7はいずれもデュアルコアで1.3GHz駆動(iPad Airでは1.4GHz)なので、性能差が出るとすると、それはアーキテクチャに起因したものということになる。
この状況を受けて、Futuremarkでは64bit版の3DMarkを作成し検証したところ、性能は向上したが、その割合は7%に留まり、64bit化が物理テストの結果には大きな影響を与えないことが分かった。
続いて同社は、問題の切り分けのため、物理演算でCPU処理の大半を占める軟体ソルバーだけを実行するコードを作成し、iPhone 5sとiPhone 5で実行させた。すると、iPhone 5sは飛躍的に高い結果を出した。このテストコードとBulletのコードで何が違うのか?
3DMarkでは、物理エンジンに「Bullet物理ライブラリ」を採用している。これは、オープンソースで、PlayStation 3、Xbox 360、Wii、PC、Android、iPhoneといったあらゆるプラットフォームの著名ゲームタイトルで利用されているものでもある。
このBulletは、軟体処理においてデータをランダムかつ依存性が高い方法でメモリ上に記録する。実は、これがA7において、物理テストの結果が奮わない理由だった。A6は、インオーダー処理(先のテストコードが該当)でも、アウトオブオーダー処理(Bullet)でも、性能に変化はないのだが、A7はアウトオブオーダーだと性能が下がるのである。また、データ依存性もA7の性能に大きく影響する。
そこで、Futuremarkは、データのメモリへの記録方法を整列化させ、データ依存性を減らした修正版のBulletを試作した。これにより、A7の結果は向上したのだが、度合いは17%に留まった。このスコアはSnapdragon 800よりも依然低いものである。つまり、A7は、アーキテクチャ的に物理演算のような処理が苦手ということになる。同社はこれらの結果やコードをAppleにも提供しており、Appleでも独自のテストで、その症状を確認できたという。
そして、この試作版を他のデバイスでも実行したところ、A6では結果に変化はなく、Snapdragonでは若干の“低下”が見られた。
こういった結果を考慮した結果、Futuremarkは、最終的に3DMarkには変更を“加えない”ことを決断した。同社は、ベンチマークは実際のゲーム性能を反映すべきという信念を持っており、通常のゲームメーカーが1種類のチップのためだけにコードを最適化(同時に、他のデバイスでは性能が悪化する)させることはないという判断に基づいてのものだ。
なお、64bit化については、大きな性能向上こそ得られないが、同社では64bit版を近日App Storeにて公開予定だという。