NVIDIA チーフサイエンティスト David B.Kirk博士

NVIDIAは、GPU向けC言語開発環境を提供するCUDA(Compute unified device architecture)に関するカンファレンス「NVIDIA Japan CUDAカンファレンス2008」を開催した。基調講演には、NVIDIAのチーフサイエンティストであるDavid B.Kirk博士が登壇、「3Dグラフィックスの展望」と題して講演を行った。

GPUは、シンプルな演算ユニットを多数搭載しているため、並列演算処理を行う場合、同規模のCPUと比べて高い処理性能を達成することができる。そのため、近年グラフィックスを得意としていたGPUを汎用のコンピューティング処理に用いるGPGPU(General Purpose GPU)という考え方が登場、物理シミュレーションや信号処理、データベース管理といったさまざまな分野への応用展開が進んでいる。

Kirk氏は冒頭、「GPUができることはグラフィックスだけではない。グラフィックス以外のことも得意だということが分かった」と語り、GPUの適用分野がグラフィックスだけに留まらなくなってきていることを強調した。

NVIDIAの提唱する"GPUコンピューティング"は、GPGPUの考え方を基にコンピューティング用のGPUを実現することを目的に、G80ベースのハードウェアとC言語によるアプリケーション開発環境「CUDA」で構成される。同社のハードウェアである「GeForce」や「Quadro」、「Tesla」とCUDAを組み合わせることで、HPC環境を実現できるとしており、すでにCUDA対応のGPUの出荷台数は5000万に達し、CUDAのデベロッパキットのダウンロード数は5万を超したという。

GPUの並列演算処理を活用することにより、従来のCPUを用いたシミュレーションと比べ複雑なシミュレーションが可能になるほか、新たな分野での活用も期待できるという。例えば、地震の計算などには大量のデータを並列に処理する必要があるし、財務の分野では価格動向を予測する複雑な計算に並列処理が役に立つ。また、医療分野ではMRIなどの大量のデータを処理する必要がある医療機器での活用も期待できる。

具体的な事例としては、分子動力学計算ソフトウェア「NAMD」を用いた演算を紹介。マルチコアCPUを用いた演算と比べ240倍以上の処理速度を達成したことを紹介した。その際の浮動小数点数演算性能は3GPUのシステムで705GFLOPSであったが、現在のシステムでは4GPUを採用することにより1TFLOPSを超す性能を実現しているという。また、神経系シミュレーションシステムの開発を行っているEvolvedMachinesの事例では、GPUコンピューティングの導入により従来のCPUによるシミュレーションに比べ130倍の処理速度向上を実現したという。

このほか、GPUコンピューティングの別の事例として、プログラムを自分で書かずにCUDAを用いる事例も紹介した。MathWorksが提供する数値解析ソフトウェア「MATLAB」を用いたもので、GPU向け標準ライブラリを用いることで、コードの中からパフォーマンスが要求される部分を抜き出すことによりCUDAの環境を構築、"2次元等方性乱流の疑似スペクトルシミュレーション"では従来比で17倍の処理速度を実現したとした。

また、GPUコンピューティングを用いることにより、グラフィックス領域でも変化が訪れるという。これまでのグラフィックスの描画はレイトレーシングとラスタライゼーションで比較すると、レイトレーシングは計算処理が重いためラスタライゼーション優位であった。しかし、GPUの演算能力が十分に向上する今後、レイトレーシングとラスタライゼーションを組み合わせていくことが可能となり、より高い画質での描画が可能になるという。