GPGPUからCPUに広がるCUDA

先述のように98年から07年までGPUは、ほぼ倍増と呼べるようなパフォーマンスの向上を果たしてきた。これはムーアの法則に代表されるCPUの成長を大きく上回っている。その結果、並列処理に優れた性能とプログラマブルな柔軟性を複雑な計算処理に活用するGPGPUという新たな道が開け始めた。すでにデジタルコンテンツ製作、科学研究、医療、製品デザイン、バイオ工学、金融など、幅広い分野で採用が進んでいる。その追い風となっているのが圧倒的なパフォーマンスの報告だ。たとえば宇宙物理学におけるNボディのシミュレーションでは100倍、LIBORモデルの金融シミュレーションでは149倍の高速化を見られる。

CUDAのセッションを担当したChief ScientistのDavid Kirk氏は"100倍を超える高速化"がGPUの役割を「根本的に変える」という。2~3倍程度では大きな変化として受け止められない。5~10倍ならば、アップグレードの価値があると意識されるようになり、それに合わせてアプリケーションの一部を書き換えるデベロッパが出てくる。100倍以上の高速化になると、人々に新しいプラットフォームの導入を考えさせる。アプリケーションは再構築され、新しいアプリケーションへの取り組みも活発化する。引いては、サイエンス、社会、われわれの生活などを変える原動力になり得るという。

チーフサイエンティストのDavid Kirk氏

最初にリアルタイム・レイトレーシングのデモを披露し、今日のGPUのパワーをアピール

今のGPUは、100倍超がもたらすインパクトを活用できる絶好のタイミングにある。Kirk氏が示した比較データによると、100TFlopのデータセンターを構築するために4コアCPUの1Uサーバならば1429台が必要になるのに対して、Teslaを用いたヘテロジーニアス・クラスタは25台のCPUサーバと25台のTeslaシステムで到達する。コストは1/10、消費電力は1/21に収まる。大規模データセンターばかりではない。5000ドル以下のコストで、パーソナルスーパーコンピュータと呼べるようなシステムの構築が可能であり、多くの人にとって超高速演算処理が身近な存在になる。これはサイエンスに限らず、あらゆる分野において発見までの時間を短縮する大きな要因になる。

NVIDIAはC言語プログラミング環境「CUDA」を用意し、早くから戦略的にGPUコンピューティングのエコシステムづくりに取り組んできた。GPUのトップベンダーというポジションを活かし、まずGeForce 8シリーズ以降のGPUをCUDAに対応させた。CUDAがエンドユーザーに注目され始めた今、9000万以上のGPUを持つユーザーがそのままCUDAユーザーであるという状況を作り出している。

次のステップとして、同社はCUDAの世界をマルチコアCPUに広げる。現時点でCUDAは並列処理をGPUにマップするためのC言語環境だが、マルチコアCPUでも実行可能にする。1つの並列処理コードがGPGPUとCPUに対応すれば、既存のCPUシステムからスムースにCUDAに適した環境を整えられるだろう。現在CUDA対応がGeForce 8シリーズ以降であるように旧いハードウエアは排除しているものの、並列処理に求められる機能を満たすシステムで幅広くCUDAプログラムが動作するようになる。これをKirk氏は"CUDA Everywhere"と表現していた。

CUDAコンパイラのダウンロード数の推移

GPUとCPUの演算性能の比較

CUDA導入例。分野や作業によってパフォーマンス向上の幅にばらつきがあるが、100倍を超えるものも多い

スタンフォード大学のFolding@Homeでの導入例

CPUとGPUがそれぞれに適した作業を分担するヘテロジーニアス・クラスタ

CUDA 2.1では、1つのCUDAコードでGPGPUとマルチコアCPU向けのアプリケーションをコンパイル可能