3Dゲームファンのためのグラフィックス講座
西川善司の3Dゲームファンのための「プレイステーション 4」グラフィックス」講座(後編) ~CELLプロセッサの代わりに活用される「GPGPU」という新概念)
(2013/3/8 00:00)
PS4世代のゲームグラフィックスはこうなる(6)~CELLプロセッサの代わりに活用される「GPGPU」という新概念
前編で解説したように、PS4にはCELLプロセッサは搭載されていない。PS3登場当初、CELLプロセッサは「非常に難解」と言われることも多かったが、8基(うち1基は非稼動)搭載されていた超高速な128ビットSIMD型RISCプロセッサコアSPE(Synergistic Processor Element)の活用は、後年になればなるほど進んでいった。昨今のPS3ゲームでは、かなりヘビーな活用がなされるまでにその活用技術は成熟している。
主なSPEの活用先は、物理シミュレーション、アニメーション制御(モーション制御)、AI(人工知能)などで、大量のデータに対して高度なロジックを適用したり、大量のデータから高度なロジックを導き出したりするような、いわゆる「データ並列コンピューティング」の実践に大きく貢献していた。付け加えるならば、PS3のGPUの最大の弱点と言われてきた「頂点シェーダの力不足」をSPEで肩代わりさせる活用は、今や定番中の定番である。
「このCELLプロセッサのSPEの代わりに用意された」とまで言い切るのは乱暴だとしても、SPEが得意としていたデータ並列コンピューティングをPS4でも実践するために有効なのがGPGPU(Genral Purpose GPU)だ。
GPGPUとは、本来グラフィックスレンダリングを実践するプロセッサであるGPUに汎用目的(General Purpose)の演算を行なわせる新しいソフトウェアパラダイムになる。「そんなGPGPUなんて、荒唐無稽なモノがゲームに応用できるのか?」と思うかも知れないが、GPGPUは、コンピュータサイエンスの世界では現在大流行の技術なのだ。ちなみに、2012年末の世界最速のスーパーコンピューター(スパコン)をランキングするスパコンTOP500ランキングにおいて、米オークリッジ国立研究所のスパコン「TITAN」が、日本の理化学研究所のCPUベースのスパコン「京」を抜いて1位になったが、TITANはGPGPUベースのスパコンである。
寂しいことだが、CELLプロセッサは前編で述べたように進化のロードマップが閉ざされたこともあって、コンピュータサイエンスの世界では表舞台から退いた感が強い。SCEがCELLプロセッサを捨て、PS4に、現在データ並列コンピューティングのメインストリームたるGPGPUを採択したことは、ある意味「英断だ」という評価が与えられるのかも知れない。
筆者の取材では、PS4のゲーム開発環境はWindowsベースであることが判明しているが、GPGPUのプラットフォームに関する明確な情報は確保できていない。ただ、常識的に考えて、マイクロソフトのDirectXであるとは考えにくく、恐らくOpenGL4.3ベースかその独自拡張版になると推察できる(※1)。
となると、GPGPUプラットフォームとして「ComputeShader」および「OpenCL」が利用できることになる。
ComputeShaderとOpenCL、両者の違いは、それぞれの使用目的にある。ComputeShaderは、GPGPUプラットフォームの中でも、グラフィックスと連携させる用途に有用なものになる。前述したGPUパーティクルシステムや、衝突判定を伴った物理シミュレーションなどを実践するのに向いたGPGPUプラットフォームといえる。
一方、OpenCLは、グラフィックスとは関連しない、より汎用目的寄りのGPGPUプラットフォームで、それこそ大量のデータから特定ロジックを導き出すような「データマイニング」処理、あるいは「AI」、よりローレベルな処理系としては「画像認識」、「音声認識」のような信号処理などに有用とされる(※1)。
今回のPS4発表会では、HAVOKの物理シミュレーションミドルウェアの大局物理シミュレーションの技術デモが、PS4開発機上でリアルタイム動作している様が公開されたが、まさにああいったことがGPGPUの得意分野という事になる。
確証はないが、同じく、今回のPS4発表会で公開されたPS4新作タイトル「KNACK」も、GPGPUを積極的に活用していると見られる。「KNACK」は、主人公キャラが、何百、何千というオブジェクトを身に纏い、それらをリアルタイムに変形させて攻撃/防御を繰り出すアクションゲームのようだが、無数のオブジェクトの個々の衝突判定、運動の制御までをGPGPUで行なっている可能性はきわめて高い。
(※1)筆者のSCE関係者への取材によれば、OpenGLでもDirectXでもなく、独自のものだがDirectXに近いという情報がある。また、GPGPUについては、現時点では、OpenCLのようなレイヤーライブラリの用意はないとのことだ。