ビデオカードの現状
ビデオカードはPCにとっては重要なパーツであり、減速感のあるPCテクノロジー全般の中でもホットな分野である。NVIDIAとAMDがおおよそ半年に1回、新しいモデルを開発しては雌雄を決している。ビデオカードのキーコンポーネントである画像処理プロセッサはGPUと呼ばれ、主にこの2社の競争によりいまやCPUを上回るトランジスタ数を実装したモンスターチップとなっている。
そもそも、ビデオカードとは「『ディスプレイに表示する画像を処理する』ためにCPUを補う」ためのものである。画像表示は比較的単純な処理(XGAなら1024×768のピクセルを描画)を高速に(リフレッシュレート60Hzなら、1秒間に60回)行う必要があり多くのデータを途切れなく処理する必要がある。しかし、並列化処理することが容易なので、汎用プログラミング向けのCPUで行うよりそれに長けたGPUが開発され、初期Windows時代ではPC全体の動作速度が大幅に向上したものである。それ故、ビデオカードはグラフィックスアクセラレータカード、と呼ばれることもある。
その後、画像表示(2D)の高速化ではすぐに性能向上の限界に達し、3D処理の高速化へと邁進して行った。Windows VistaのAeroやGnomeのCompizなどは3D処理を活用しているが、今日のビデオカードの圧倒的な処理能力を活用できるのはPCゲームやCADなど、限られた用途に留まっている。それでもビデオカードの進化は止まらない。GPUは比較的単純な処理を高度に並列化して処理するプロセッサーとしてもうしばらくは進化し続けるだろう。
そして無くなっていく
これほど栄華を極めているGPUおよびビデオカードであるが、長期的視点ではなくなっていくだろうと予測する。それは、CPU側にもGPU側にもその要因がある。
GPU側の要因としては、すでにCPUを追い越してしまっているGPUのトランジスタ数も消費電力も限界に近づいている。より汎用的に(CPUライクに)使えるように工夫しているメーカーもあるが、GPUの存在意義が問われることと、PCユーザの大多数が恩恵を受けられるようなものができるかどうかが疑問である。
CPU側では半導体の微細化が進み、実装できるトランジスタ数が、1つのコアに用いるトランジスタ数を大幅に上回ってしまっている。最近ではその余剰トランジスタを2つ目のコアに割り当てたり、(それまでCPU外にあった)メモリインターフェースに割り当てたりしている。これから先も半導体の微細化は進み、より多くの余剰トランジスタが増えてくる。より多くのコアを入れていくことが予見されるが、ある程度(4個程度?)までいったらそれ以上コアを増やしても暇なコアだけ増えて、その恩恵は受けられないだろう。
上記の結果、将来的にはGPU機能がCPUに取り込まれるだろう。実装方法は、CPUとGPUをひとつのパッケージにする、CPUとGPUのマルチコアのCPUにする、CPUのコア内にGPUが取り込まれる、など様々なものが考えられる。CPUメーカであるAMDが、それまでNVIDIAと対抗してきたATIを買収したのが2年前である。実は、このときからGPUのCPUへの統合が始まっていたと見ることができる。
ヘテロジニアスマルチコアCPUへ
現在、CPUもGPUも同じ機能を持ったコアを複数束ねて並列処理することによって性能向上を図っている。しかし今後は、ヘテロジニアスマルチコアと呼ばれる、異なる機能を持つ複数のコアを一つのCPUパッケージに実装することが主流になるだろう。実際、PS3のCPUであるCellは汎用的な処理を受け持つコアを1つと、よりシンプルな8つのコアで構成されている。
しかし、CPUとGPUの統合は、「数値演算コプロセッサ(FPU)も取り入れられたことだし、そろそろGPUも」と簡単に片付けられるものではない。GPUの画像処理以外の処理能力は未知数であり、NVIDIAのGPU向け統合開発環境であるCUDAにより築かれてきている実績にその片鱗が見られる。特にハイパフォーマンスコンピューティングの分野では有望で、民生アプリでも一部ではCPUでの処理と比較して4倍以上も性能向上する例も見られる。
「これ以上CPUが速くなってどうするの?」と思われるかもしれない。しかし、高精細映像の処理などではまだまだ高い処理能力が必要となっているし、PhysXなどの物理シミュレーションが手軽に行えるようになればゲームはもとより、あらたなアプリケーション分野の開拓につながるかもしれない。
数年後、ビデオカードはほとんど無くなっているかもしれない。でも、それにより開かれる新たな世界に期待している。