CPUをつくるIntelと、GPUを作るNVIDIA。
一見、別枠に見える製品の間にも、熾烈な戦いがあった。
「CUDA」というのを聞いたことがあるだろうか。NVIDIAが進めるGPUを用いた汎用コンピューティングであり、本来ゲーム用のグラフィック機能をゲーム以外の広い用途で使おうというものである。GPUとは本質的にはベクトル計算機であり、複数の計算式を一括処理するのを得意とする。「地球シミュレータ」を含むスーパーコンピューターの多くはこのベクトルタイプであり、うまく生かせば非常に高速な計算が可能だ。そういう意味でGPUをもっと活用しよう、という動きは理にかなっているように見える
しかし今、NVIDIAがこの CUDA を強く推し進めるのには理由がある。現在、基本的なパソコンの処理は全てCPUが行っている。CPUがなければパソコンは起動すらしない。しかしビデオカードは無くても動く(*注1)。あくまでゲームにおけるCPUの補助に過ぎず、CPUの性能がもっと高ければ、わざわざビデオカードなんてものをつける必要はないのだ。
「GPUはいりません、CPUだけで十分です」
これがCPUを作っているIntelの主張である。ただし今のCPUのままでは性能が圧倒的に足りない。そのためCPUとは別に「Larrabee」というベクトル計算機を開発中であり、いずれCPUに統合する予定らしい。
一方、GPUがどれだけ性能を上げたとしてもゲームが快適になる以上の恩恵はない。ゲーマー以外はそもそも手に取る可能性が低い製品である。GPUにとって高性能CPUとはその存在意義を脅かす脅威だが、GPUがどれだけ高性能になろうとCPUが不要になることはない。GPUは防戦一方である。元々不利な戦いなのだ。
そこでNVIDIAがとった戦略はGPUに汎用性を持たせ、ゲーム以外の幅広い処理にも使えるように改良しよう、というものだった。それがGPGPU(General Purpose GPU)と呼ばれるもの、すなわちCUDAである(*注2)。
現在、GPGPUが実用化されている分野としては、科学者向けの物理シミュレーションやビデオエンコード、ペイント系のフィルタ処理などが知られている。これはまだパソコンの処理全体から見たらわずかであるが、いずれはあらゆるアプリケーションをCUDAで処理、という目論見だ。
「CPUはいりません、GPUだけで十分です」
これがIntelに対するNVIDIAの回答なのだ。
文中で「ビデオカード」と「GPU」の区別が曖昧になってしまったが、ビデオカードとはPCI-Express接続などでマザーに差し込むカード全体を指し、GPUとはビデオカードの中でも計算を行う回路チップを指す。NVIDIAはチップを部分をベンダーに提供し、ベンダーは基盤にGPUやメモリ、ファンなどを搭載し「ビデオカード」として売っている。
注1 : 厳密にはオンボードチップが働いています。
注2 : GPGPUには他にもCUDAと似たようなものにATIの「ATI Stream」というのもあります。