Qualcomm Developper NetworkのSnapdragon VR SDK紹介ページSnapdragon 820搭載のAndroidスマートフォンやVRヘッドセットを前提としていることが明示されている

QualcommもVRに本格参戦~Snapdragon 820搭載機種を対象としたVR開発キットを発表~後編

  • このエントリーをはてなブックマークに追加

by [2016年5月02日]

前編ではQualcommのSnapdragon VR SDKで現時点で唯一の対応プロセッサとして挙げられたSnapdragon 820がどのようなプロセッサなのかについて見てきました。後編では、Snapdragon VR SDKがなぜSnapdragon 820を必要としたのか、その機能と共に見てゆきたいと思います。

Snapdragon 820のみに対応機種が絞られたワケ

Qualcomm Developper NetworkのSnapdragon VR SDK紹介ページSnapdragon 820搭載のAndroidスマートフォンやVRヘッドセットを前提としていることが明示されている

Qualcomm Developper NetworkのSnapdragon VR SDK紹介ページ
Snapdragon 820搭載のAndroidスマートフォンやVRヘッドセットを前提としていることが明示されている

ところで、今回のSnapdragon VR SDKではSnapdragon 820がプラットホームとして明示され、下位のSnapdragon 625・650・652・810の各モデルが一切言及されていません。

先行する他社のVRデバイスでの推奨ハードウェア要件と照らし合わせて判断する限り、これは恐らくCPUコアもGPUコアも、そして恐らくはメインメモリの性能も、全てがSnapdragon 820以下の機種のそれでは不十分であるとQualcommが考えていることを示すと推定できます。

ちなみにSnapdragon 810でCPUがCortex-A53を4基とCortex-A57を4基で合計8基の64ビットCPUコアのハイ・ローミックス構成で最大2GHz駆動となっていて、利用法によっては8コア全てを稼働させることで演算性能をフルに発揮させることも不可能ではありません。もっとも、このSnapdragon 810は製造プロセスのシュリンクが行えない状況で性能向上が求められた結果、製造プロセスルールの割に集積トランジスタ数が過大≒動作時に高発熱となってしまい、ソニーのXperia Z4をはじめとする最初期の採用機種の多くで発熱過大と冷却能力不足に起因するトラブルを頻発させた(※注5)ことが報じられています。

 ※注5:この発熱過大を嫌って下位のSnapdragon 615などを採用するメーカーが続出したほどです。

Snapdragon VR SDKで額面上のスペックだけで見ればかなり高性能と考えられるSnapdragon 810が外されたのは、恐らくこうした熱的な問題の解決が難しいことと、内蔵GPUのAdreno 430の性能が不足していることのいずれか、あるいは両方が原因と考えられます。

一方、Snapdragon 820ではKryoコアは4基搭載で最大2.2GHz動作と公表されています。つまり、ARMがCortex-A57とCortex-A53をペアにして負荷に応じて適切な性能・消費電力のCPUコア間で実行中のコンテクストを受け渡ししCPUコアの動作をスイッチさせることによってトータルの性能を向上させるBigLITTLE構成を取っていたり、NVIDIAが4基の高速動作に振ったチューンのCPUコアと1基の低消費電力に振ったチューンのCPUコアを組み合わせ、稼働するCPUコア数の増減や切り替えで動的に消費電力と性能のバランスを取っているのとは異なり、かつてのKraitコアがそうであった様に1基のKryoコアで低クロック低消費電力動作から高クロック高速処理動作までリニアに対応可能な設計となっているわけです。

実のところARMやNVIDIAの採った手法は利用できる半導体製造プロセスなどの様々な制約から高クロック高パフォーマンス動作と低クロック低消費電力動作を1つのCPUコアで両立させるのが大変に難しいことへの対策として考案・工夫されたもので、特定の製造プロセスの下で最適化設計を行ってこの2条件を両立させたQualcommのKraitコアに対抗するのが難しかった(※注6)ことがその考案・採用を促したという経緯がありました。

 ※注6:2012年~2013年頃にKraitコア搭載のSnapdragon S4系の統合プロセッサが日本のAndroidスマートフォン市場をほぼ完全に制圧する勢いで大きなシェアを得たことをご記憶の方も少なくないと思います。それまでスマートフォン市場で一定のシェアを持っていて本家ARMのCortex-A9をほぼそのまま搭載していたテキサス・インスツルメンツのOMAPシリーズもNVIDIAのTegraもその搭載機がことごとく市場から駆逐・一掃されてしまったほどに、1コアでこの2条件を両立させたSnapdragonのKraitコアは高い性能を発揮したのです。もちろんこの時期のSnapdragonシリーズ快進撃の背景には、当時急速な普及が始まっていたLTEに対応する高性能内蔵モデム・RFトランスミッターを備えていたことも大きく影響していたのですが。

そんな特性を持つKryoコア4基でCortex-A53 4基とCortex-A57 4基を搭載するSnapdragon 810の2倍の性能とQualcommが示していることから、Snapdragon 820のCPU部は(動作クロック周波数にもよりますが)演算処理能力的にIntelのモバイル機器向けCore Mプロセッサに迫る性能が発揮可能となっていると推定できます。

実のところ現在のVRデバイスの場合、CPU性能はそれほど必要が無いのですが、VRデバイスの動作確認用として各社から提供されている各種ベンチマークソフトでの結果を見ると、それでもそれはそれなりに結構高い性能を必要としていることがわかります。

そのことを勘案すると、Snapdragon VR SDKでQualcommの製品ラインナップ中の最上位機種であるSnapdragon 820がプラットホームとなっている/ならざるを得ないことは少なくともCPU性能の側面からは首肯できます。

また、VRデバイスでは他のどの部分にもましてGPUの性能が問われる訳ですが、Snapdragon 820ではSnapdragon S1の時代から搭載されてきた、AMD系のユニファイド・シェーダーGPUであるAdrenoシリーズの最新作であるAdreno 530を搭載し、先にも少し触れましたがSnapdragon 810に搭載のAdreno 430と比較するとグラフィック・コンピュートで40パーセントの性能増と消費電力の最大40パーセント減を達成したことが発表されています。

ユニファイド・シェーダーを備えるGPUで性能を向上させる場合、単純に搭載されるシェーダーの数を増やして並列処理の性能を引き上げるか、シェーダーそのもののアーキテクチャに手を入れてシェーダー単体での演算性能を引き上げるか、はたまたその両方を行うか、という話になるのですが、今回は半導体製造プロセスがシュリンクされていることから、恐らくは搭載シェーダー数あるいはそれらを束ねたクラスタ数を物理的に増やす、量的な拡充によって性能向上を果たした可能性が高いと言えます。

ちなみにGPUの演算性能そのものを単精度のFLOPSで示すとAdreno 430は理論値として324 GFLOPSという値が示されています。そして、これの40パーセント増として単純計算するとAdreno 530は約454 GFLOPSとなります。
 
Oculus Riftの推奨環境のAMDのRADEON R9 290Xで5.632 TFLOPS、GeForce GTX 980で4.612 TFLOPSですから、いかに高性能化が進んだとはいえ、スマートフォン用GPUの性能はシェーダーそのものの生の演算性能ではパソコン用ハイエンドGPUカードの足下にも及ばない、文字通り桁違いの性能差となっています。

言い替えると、現在のスマートフォン、それも4K2K解像度のディスプレイを搭載する様な機種でOculus Riftクラスの十分なパフォーマンスのVRデバイスとして機能させるのはかなり厳しいということで、Snapdragon 820のGPU性能でも恐らく充分というにはほど遠い状況にあると推定できます。

もちろん、ある程度スペック面で妥協するか、さもなくばFoveated Rendering(※注7)のような技術を用いて描画処理の負荷を根本的に軽減するかのいずれかを選択すればそれ相応の実用性が得られるのも確かで、恐らくSnapdragon VR SDKでも最初のリリース時点ではともかくとしても、今後はこのあたりの要素技術がキーになってくるのではないかと筆者は推測します。

 ※注7:「窩(小さな穴)のあるレンダリング」という直訳が示す様に、3Dグラフィクスによる(GPUによる処理でも負荷の大きな)レンダリング処理を行う際に視点に近く高い情報密度が求められる中心部を高解像度で、周辺の外縁部や遠景にあたる部分は段階的に低解像度でレンダリングを行うことで、実用性を損ねずにGPUの負荷を軽減するレンダリング技術です。VRデバイスの将来はこの技術と共にある、とまで言われており、その実用化へ向けて各社で研究開発が進められています。

Snapdragon 820の機能を利用しVR環境を標準的に取り扱えるようにするSnapdragon VR SDK

ここまで見てきた様に、Snapdragon 820の性能はOculus RiftやHTC Viveのように最新ハイエンドPCとの接続が前提となるVRヘッドマウントディスプレイの動作環境と比較すれば低スペックということになるのですが、実はSnapdragon 820には他のパソコン用CPUなどにはない大きな特徴が1つあります。

それは、Hexagon 680と命名されたDSP(Digital Signal Processor)を内蔵しており、このハードウェアに直結されたジャイロスコープなどセンサーデバイスを利用することで、頭部の位置や向きを予測する機能が提供される点です。

DSPはその名のとおりデジタル信号処理に特化したプロセッサであり、1980年代末頃から使用されてきた、割と「枯れた」デバイス(※注8)です。

 ※注8:例えば1989年に販売が開始されたNeXT Computerの「NeXT Cube」にはモトローラのDSP56000が、またこれに続いて発表されたAppleのMacintosh Quadra 840AV(1991年)にテキサス・インスツルメンツ製のDSPが、さらにNECのPC-98GS(1991年)に同社製DSPがそれぞれ搭載され、いずれも音声信号の波形処理などで活用されていたことが知られています。もっとも、こうした1980年代末から1990年代初頭にかけてのDSPの流行はその内部プログラミングの難しさや、CPU側のMMXに代表されるマルチメディア拡張命令セットの採用などにより一旦は廃れてゆくことになります。

しかしこのDSPはセンサーからの入力信号の処理などを並列で効率よく行えるため、用途を選べば実に有益なデバイスであったりします。

実のところ、SnapdragonシリーズにはこれまでもDSPが内蔵されていて、さまざまな用途に利用されていたのですが、それがSnapdragon 820ではVR時代を睨んで各種センサーの処理についてCPUの負荷を極力軽減する方向で機能・性能ともに拡充されているわけです。

言ってみればこれはAppleがA7+M7・A8+M8・A9+M9とCPUであるAシリーズの処理の一部をモーションコプロセッサであるMシリーズが肩代わりしているのと同じ考え方で、それをより高機能かつ高性能なDSPで行わせよう、というのがこのHexagon 680のコンセプトなのです。

ちなみに、DSPはその仕組み上汎用性ではどうしてもCPUよりも劣るのですが、DSPでも曲がりなりにもプログラミング機能があって必要に応じて処理内容を変えられることを考えれば、各種センサーからの入力信号を処理するのが主目的であるSnapdragon 820の場合は特に問題となる様な要素は見当たりません。むしろ無駄な機能を持たない分、より低い消費電力で必要な処理を行えることを示唆するものと言えるでしょう。

そして、Snapdragon VR SDKではそんなHexagon 680とそれに紐付けられた各種センサー群をHMDを装着するユーザーの頭の向きの変化やその位置の予測に役立てるとしています。VRにおいてはこうしたユーザーの頭の位置・向きはディスプレイに描画されるべき内容の変化に密接に結びついているため、可能な限り高速に現状を把握し、あるいは予測する必要があるのですが、それをDSPに処理させてやれば、CPUの負担がかなり減ることになります。

このような用途に利用できること自体、Hexagon 680がDSPとして相当に高性能のプロセッサであることを強く示唆するものでありますが、わざわざそのことを明記しているということは、Snapdragon VR SDKではこのあたりの処理を自前でコーディングせずとも、サンプルや処理に必要なコードなどが提供され利用できるようになる可能性が高いということでもあります。

VRにおいてはこれまでの3Dグラフィックを利用したアプリでは想定されていなかった様な問題が多々発生しているわけですが、その中でもかなり厄介な問題の1つについて、解決あるいは解決のための手助けが提供されるというだけでも、開発者にとってはこのSDKを利用する価値があるということになるでしょう。

ちなみに、現状で予告されている範囲では、このセンサーによる頭の向き・位置の予測以外にも,VR空間内に文字やメニューを重ね合わせて階層的に表示する機能や、物理的なレンズの特性による歪みの補正などを考慮した3D立体視映像のレンダリング機能、それにSnapdragon 820のハードウェア固有機能を利用して処理の遅延を短縮する機能など、自前で実装しようと思うと手間のかかる機能の提供がアナウンスされており、現状ではSnapdragon 820という統合プロセッサ1機種(およびそれを搭載した各種機器)に紐付けられてしまうこと(※注9)を無視すれば、開発者にとってはかなりありがたい開発環境が提供されることになります。

 ※注9:もっともそうして紐付きになるおかげで従来Qualcommが提供してきたSnapdragonシリーズのための各種SDKとの連携も可能となる由で、これまでSnapdragonシリーズを使用してきたメーカー、それに対応するアプリを開発してきた開発者にとっては相当な負担の軽減が見込めると考えられます。

このSnapdragon VR SDKは現状では2016年第2四半期中のリリース予定であることがアナウンスされています。

先日の熊本・大分の大地震でソニーのExmorシリーズイメージセンサーを生産していた主力工場が停止し、夏に向けたスマートフォンの新製品生産への影響が懸念される昨今の情勢では、Snapdragon 820を搭載したスマートフォンの本格普及にも影響が出そうな状況ですが、VRデバイス、例えばHMDを自前で開発している企業などのはその辺の影響は出にくいため、Snapdragon 820を搭載するHMD製品の普及を促進するためにも、Qualcommにはより早い時期のSnapdragon VR SDK正式リリースを期待したいところです。

▼参考リンク
Qualcomm Announces Introduction of Snapdragon Virtual Reality Software Development Kit | Qualcomm
Immersive Virtual Reality | Qualcomm
Virtual reality is here. And it’s amazing! | Qualcomm
Virtual reality: growth will come from freedom, not ratings | Qualcomm
Snapdragon VR SDK – Qualcomm Developer Network
Snapdragon 820 Processor with X12 LTE | Quad-Core CPUs | Qualcomm
Snapdragon 810 Mobile Processor (8 Core) Octa-Core CPUs | Qualcomm
hexagon 680 dsp – Qualcomm(PDF)
Tegra K1 次世代モバイルプロセッサ | NVIDIA

タグ:
PageTopへ