Kirk氏いわく「なぜGPGPUが台頭したか」

基調講演のタイトルについて簡単に解説をしておこう。HETEROGENEOUSとは異種混合の意。そしてPARALLEL COMPUTINGは並列演算のこと。直訳するならば「異種混合並列計算の力」となる。ますます意味が難解になってしまった気がするかも知れないが、意訳するならば「CPUとGPUが混在するPCを最大限に活用すること」というような意味合いになる。自社でCPUを製造しないGPUオンリーのNVIDIAにとっては、CPUがあってGPUがある現在のPCのような環境でこそ、GPUの価値が高まるのでここを最大限に訴求している……というわけだ。

講演タイトル

さて、現在のPCシステムの総演算能力は、ハイエンドクラスのGPUを搭載すれば1TFLOPSを超えている。これは1993年当時のスーパーコンピュータの総システム演算能力と等価であり、またあるいは1997年のスーパーコンピュータの一台あたりの演算能力と同等ということができる。わずか10年前のスパコンと同等の演算能力がPCで持てるようになったのは間違いなくGPUのおかけだ。

では、どうしてここまでGPUが高い演算能力を持てるようになったのか。

スーパーコンピュータの性能推移

NVIDIAがGPU製品で最初の大ヒットを飛ばしたのが「RIVA128」だった。この時点ではGPUが莫大な並列コンピューティングパワーを獲得するような未来像を描ける人は少なかったが、高度なジオメトリエンジンを搭載したGeForce 256では「CPUよりも高いベクトル演算能力をGPUは持ちうる」という可能性を世に知らしめた。DirectX 8に完全対応したGeforce 3が提供したプログラマブルシェーダの概念は、GPUがプログラマビリティを向上させる方向性で進化していくことを決定づける。GeForce FXではプログラマブルシェーダのプログラミングをC言語ベースの拡張高級言語「Cg」にて可能にしたことがトピックとなり、これは最終的にGeforce 8800の時代で提供され始めた「CUDA」の登場へとつながる。

NVIDIA GPUの進化の系譜

GeForce 7800シリーズと8800シリーズとのアーキテクチャ面における最大の違いは、前者は古典的な機能割り当てが固定的なパイプラインを採用していて、対して後者では統合型シェーダアーキテクチャを採用し、シェーダユニットを汎用の演算ユニットとして取り扱うことができるという点だ。この汎用シェーダユニットの活用をグラフィックス目的に限定せず、汎用目的に起用することが出来たら……?

これを現実の物としたのがGeForce 8800シリーズ以降であり、この新しいアーキテクチャがGPUの汎用利用をよりリアリティの高いものにしたのである。

GeForce 7800シリーズ。振り分け固定型のプログラマブルシェーダの最後の世代

GeForce 8800シリーズ。統合型シェーダ、最初の世代