NVIDIAがGPUによるグラフィックスワークスタイルの変革をアピール
横浜市のパシフィコ横浜において開催されているコンピュータグラフィックスに関する学会イベント「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はラスタライゼーションを行なうものと思われているが、そうではない」点を強調している。
その代表例として説明されたのが、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と呼ばれるプリコンピュテーションエンジンを開発し、統合的に作業を進めることができたという。
続いて紹介されたのがNVIDIA Researchで実施されたボクセルレンダリングの例である。さまざまなグラフィックに応用できるがコストがかかる、という問題に対する1つのソリューションとして注目されているのが、ボクセルレンダリングである。生データを単純化/効率化するためにZバッファに注目するというのが現在のトレンドにあるとし、さらにボクセルサンプルに対してポストプロセスでブラーなどを適用することで画質を向上したという例を紹介した。
低解像度ボクセルレンダリングの例では、ボクセルレンダリングで出力されたものから輪郭を抽出したり、ポストプロセスでブラーを加えることで、データ量を抑えた形で自然な表現が可能とした | |
こちらもボクセルレンダリングの例で、先述の例よりデータ量が多い。拡大してみても、かなり細かいところまで表現されていることが分かる |
このほか、2Dグラフィックスにも言及があった。2D/3Dグラフィックスを分類したときに、2D/3Dにそれぞれプリミティブラスタライゼーションがあり、2Dにはパスレンダリングという手法がある。これをGPUに適用しても「一段違うパフォーマンス」を得られた検証結果を紹介。ラスタラーゼーションをしていないことで、GPUを使ってエフェクトやアンチエイリアシング、クリッピング、ビットマップ化されていないフォントを活用していけるとアピールしている。
●新旧パイプラインを融合する新しい考え方
カーク氏はここで少し話の方向性を変え、従来型のパイプラインと、カスタム化されているアイデアの合成という、新しい考え方を紹介した。
その事例として最初に紹介されたのが、Image Space Photon Mappingで、光が目に届くまでの光子(Photon)の動きをマッピングして間接光をシミュレートするものである。現在の研究では、光のポジショニングや最終的な光子ボリュームの積み上げはGPUで行なっているものの、中間のバウンスのマッピングはCPUで行なっていた。GPU→CPU→GPUという流れで処理を行なっているためCPU-GPU間のデータ転送が生じる。これが効率を落とすので、将来的に全てをGPU実装すれば何百倍も高速化できるとしている。このPhoton MappingをGPUで行なうことで、直接光に加え従来的な周辺光処理したものを加えられ、奥行き感のあるリアルな表現ができるとし、実際にその例を提示した。
このほか、ゲームやアプリケーションに現実世界の効果をもたらすことができるシミュレーションの例としてPhysXやCFDといった活用を紹介。これらをプログラムをバーチャルパイプラインとして載せていくことで、リアルタイムで複雑な流体動作や乱数シミュレートが行なえるようになっていることをアピールした。
カーク氏は講演の最後に、「CPUとGPUの性能ギャップはさらに広がる。GPUの性能の成長率が高いからだ。これまでのグラフィックス制作の考え方を基礎から崩して、もう一度構築することで、より魅力的なクオリティを持つグラフィックスを実現できると信じている」とGPUによる並列処理がグラフィックス業界に変革をもたらすことへの期待を寄せた。
(2009年 12月 18日)
[Reported by 多和田 新也]