【SIGGRAPH Asia 2009レポート】
NVIDIAがGPUによるグラフィックスワークスタイルの変革をアピール

NVIDIAフェローのデビット・カーク氏

会期:12月16日~19日
会場:パシフィコ横浜



 横浜市のパシフィコ横浜において開催されているコンピュータグラフィックスに関する学会イベント「SIGGRAPH Asia 2009」。17日にNVIDIAのデビッド・カーク氏が基調講演を行ない、GPUによるグラフィックス性能の向上や、それによって実現されるビジュアル表現、グラフィックスのワークスタイルの変革などを説明した。

●GPUを並列処理全般に適用できることを強調

 長らくGeForceシリーズのチーフサイエンティストとして知られ、現在はNVIDIAフェローの職に就くデビット・カーク氏が行なった講演は、同社が進めるGPUコンピューティングが、グラフィックスにおいてどのように適用され、どのようなメリットをもたらすかを、具体例を交えて紹介するものとなった。

 '90年代前半は世界のTOP500のスーパーコンピュータを全て合計してようやく1TFLOPSの演算能力に届く程度だったものが、'98~99年頃には1台で1TFLOPSを実現。それが今日ではデスクトップGPUやハイエンドノートPCでも1TFLOPSの浮動小数点演算性能を持つに至り、カーク氏は「グラフィックスをやるのに素晴らしい時代に生きていると思う」と述べた。

 続いて、GPUの並列処理性をアピール。旧来のGeForceが固定パイプラインで処理するものだったが、固定パイプラインを求めない人にとっては使い勝手が良いものではなかったとし、GeForce 8以降で演算コアのアレイによってバーチャルパイプライン化したことを説明。チップのほとんどを高スループットの演算器で構成し、OpenGLやDirectXなどのグラフィックパイプラインもエミュレーションするようにした。基本的には演算コアのアレイであるので、グラフィックパイプライン以外のこともできるようになったわけだ。

 GPUの並列処理性能については、これまでにもさまざまな場所で語られてきているが、GPUが高性能化したことでグラフィックレンダリングの性能は飛躍的に向上したが、CPUによって性能が制限されてしまうという問題が生じた。そこで、コアプロセスを効率的に扱えるCUDAを用いて、パラレル処理をGPUで処理させるに至った。つまり、これまで適用されていなかったところへも、GPUを適用していこう、というわけだ。とくにカーク氏は「GPUはラスタライゼーションを行なうものと思われているが、そうではない」点を強調している。

スパコンTOP500の性能遷移。'93年にはTOP500すべての合計が1TFLOPSだったのに対し、今日ではデスクトップPCやノートPCで実現できる時代になっているNVIDIA製GPUの遷移。GeForce 7以前は固定パイプラインであったが、GeForce 8以降はCUDAによる汎用コンピューティングが可能となった
こちらはグラフィックス視点からの遷移。完全な固定パイプラインからプログラマブルシェーダへ進化し、多数の演算器による計算でのグラフィックス制作が可能になっている緑色のバーがGPUによるパラレル処理となるが、アムダールの法則に当てはめ、GPUのパラレル性能向上がグラフィックレンダリング全体の大幅な向上につながることを示した図となる

 その代表例として説明されたのが、NVIDIAが提供しているレイトレーシングAPIであるOptiXである。トライアングルからピクセルへバインディングしていくラスタライゼーションに対して、ピクセルからトライアングルをトレースしていく逆順となる。ラスタライゼーションであればDirectXやOpenGLといったAPIがあるわけだが、レイトレーシング用APIがOptiXである。

 レイトレーシングはさまざまな異なるエフェクトを統一的に、しかもお互いに干渉することなく、まとまった形で表現できるというのがメリットという。ただし、データ予測が難しいため、アクセラレーションや高速化がしづらく、パラレルマシンへの実装が難しいという問題があったという。

 これを利用しやすい形でAPI化したものがOptiXであるが、ラスタライゼーションはAPIのみなのに対し、もっと柔軟性のある活用が可能という。ゲームなどで根本的にはグラフィックが似通って見えるのはグラフィックAPIがみなDirectXを使っているというのが理由としてある。OptiXは独自のアーキテクチャに合わせて部分的にSDKを適用していくことなどができ、幅の広い表現が可能になっているという。

ラスタライゼーションとレイトレーシングは逆のオーダーで処理を進める。このレイトレーシング用APIとしてNVIDIAはOptiXを提供しているOptiXの機能。ユーザはマテリアルシェーディングなどで独自のプログラムを書き、APIのランタイムではアクセラレーションストラクチャを作成。JITコンパイルしていく

 このほか、CUDAは業務用レイシミュレーションのirayや、クラウド型アプリケーションサーバのRealityServerといった商業用途にも導入が進んでいる。さらに映画制作プロダクションのWETA Digitalとのコラボレーションにおいてワークフローの効率化を実現したことを紹介した。これまでシーンライティングにおいては、異なるデータストラクチャでリライティング処理とレビュー(映像の最適化)が進められるので、結果が異なるため、一からやり直しといった効率の悪いことが行なわれていたものを、1つのデータストラクチャで進めて最終的なレンダリングに反映させることで業務を効率化したというものだ。ここではPantaRayと呼ばれるプリコンピュテーションエンジンを開発し、統合的に作業を進めることができたという。

GPUによるコンピューティングの例として示されたiray。リアルタイムではないが業務品質のレイトレーシングを行なえるGPUをクラウド型サーバサービスとして提供するRealityServer。重い作業や多数のユーザ処理が必要なアプリケーションでGPUのメリットが活かされるとアピールWETA Digitalとのコラボで改善されたワークフロー。1つのデータストラクチャでリライティングとレビューを進めることで無駄がなくなる

 続いて紹介されたのがNVIDIA Researchで実施されたボクセルレンダリングの例である。さまざまなグラフィックに応用できるがコストがかかる、という問題に対する1つのソリューションとして注目されているのが、ボクセルレンダリングである。生データを単純化/効率化するためにZバッファに注目するというのが現在のトレンドにあるとし、さらにボクセルサンプルに対してポストプロセスでブラーなどを適用することで画質を向上したという例を紹介した。

低解像度ボクセルレンダリングの例では、ボクセルレンダリングで出力されたものから輪郭を抽出したり、ポストプロセスでブラーを加えることで、データ量を抑えた形で自然な表現が可能とした
こちらもボクセルレンダリングの例で、先述の例よりデータ量が多い。拡大してみても、かなり細かいところまで表現されていることが分かる

 このほか、2Dグラフィックスにも言及があった。2D/3Dグラフィックスを分類したときに、2D/3Dにそれぞれプリミティブラスタライゼーションがあり、2Dにはパスレンダリングという手法がある。これをGPUに適用しても「一段違うパフォーマンス」を得られた検証結果を紹介。ラスタラーゼーションをしていないことで、GPUを使ってエフェクトやアンチエイリアシング、クリッピング、ビットマップ化されていないフォントを活用していけるとアピールしている。

2D/3Dを分類化したもの。2D/3Dそれぞれにプリミティブなラスタライゼーションがあり、3Dにはレイトレーシングなどのサンプルリング処理が出始めている。一方の2Dにはパスレンダリングがあり、それもGPU適用が可能とするパスレンダリングが使われているアプリケーションの例パスレンダリングをGPU処理させたときとCPU処理させたときの性能差。ローエンドGPUでもCPU以上の性能が出せることをアピールした

●新旧パイプラインを融合する新しい考え方

 カーク氏はここで少し話の方向性を変え、従来型のパイプラインと、カスタム化されているアイデアの合成という、新しい考え方を紹介した。

 その事例として最初に紹介されたのが、Image Space Photon Mappingで、光が目に届くまでの光子(Photon)の動きをマッピングして間接光をシミュレートするものである。現在の研究では、光のポジショニングや最終的な光子ボリュームの積み上げはGPUで行なっているものの、中間のバウンスのマッピングはCPUで行なっていた。GPU→CPU→GPUという流れで処理を行なっているためCPU-GPU間のデータ転送が生じる。これが効率を落とすので、将来的に全てをGPU実装すれば何百倍も高速化できるとしている。このPhoton MappingをGPUで行なうことで、直接光に加え従来的な周辺光処理したものを加えられ、奥行き感のあるリアルな表現ができるとし、実際にその例を提示した。

 このほか、ゲームやアプリケーションに現実世界の効果をもたらすことができるシミュレーションの例としてPhysXやCFDといった活用を紹介。これらをプログラムをバーチャルパイプラインとして載せていくことで、リアルタイムで複雑な流体動作や乱数シミュレートが行なえるようになっていることをアピールした。

 カーク氏は講演の最後に、「CPUとGPUの性能ギャップはさらに広がる。GPUの性能の成長率が高いからだ。これまでのグラフィックス制作の考え方を基礎から崩して、もう一度構築することで、より魅力的なクオリティを持つグラフィックスを実現できると信じている」とGPUによる並列処理がグラフィックス業界に変革をもたらすことへの期待を寄せた。

従来的な処理と、計算ベースの処理を融合したグラフィックスの考え方があることを紹介Image Space Photon Mappinngのプロセス。現在の論文では中間の反射部分をCPU処理させているがデータ転送の無駄があるので、ここをGPUに置き換えることで何百倍もの性能を出せるとするこれは普通の直接光のみを当てた例
直接光に加えて、従来的な周辺光(Ambient)を適用した例と、Photon Mappinngによる間接光(InDirect)を当てたときの比較。前者は表面的なグラフィックスだが、後者の方がより奥行きがあるリアルな雰囲気になる「モンスターのような」(カーク氏)GPUの性能を使い、流体の計算、パーティクル化、OpenGLでのレンダリングをバーチャルなパイプラインとしてGPUに載せていくことが可能になっていることを説明
カーク氏の講演における最後のスライド。「CPUは年間20~30%の性能向上、GPUは現状でもCPUより性能が高いだけでなく成長率も高い。2015年(6年後)にそのギャップはさらに広がっている」とアピールした

(2009年 12月 18日)

[Reported by 多和田 新也]