過去10年を振り返っただけでも、GPUの技術は大きく進化している。2Dアクセラレータから3Dアクセラレータへと進化した直後の1990年代後半をGPU技術の黎明(れいめい)期とみていいだろう。そのころと現在とでは描画能力に対する認識が大きく変化している。
NVIDIA コンテント&テクノロジー担当上級副社長のトニー・タマシ氏は、自身の講演の中で「リアリティとは8000万ポリゴンのことだ」という、Pixar創業者の1人でCG業界のアイコン的存在であるアルビー・レイ・スミス氏が1999年に述べたコメントを引用している。現在の3Dゲームにおける標準的なポリゴン数が200万前後といわれているが、さらに緻密な描写を行っているゲームもある。そう考えれば、1999年に「リアリティ」と呼ばれていた水準に近いところまで2008年のGPUは到達しつつあるようだ。
GPU技術動向の変遷を見ていくと、「プログラマブルシェーダ」というターニングポイントが2003年に起こっている。それ以前のGPUでは、機能を固定した演算ユニットを適時呼び出して陰影処理(シェーダ)のパイプラインを実行していたが、プログラマブルシェーダという概念を導入したことで、パイプライン処理をGPUにプログラムすることで実行する手法が定着した。当初はNVIDIAやATI TechnologiesといったGPUベンダーが独自に機能を拡張していたが、シェーダモデル(SM)という形でMicrosoftのDirectX 8から標準機能として実装された。その後、DirectX 10に至るまで、GPUプログラミングにおける標準として活用され続けている。
1998年から2003年の5年間にわたるパフォーマンスの変化を年率の成長ペースで見てみると、およそ年率2倍のペースで性能が上昇したことになる。この成長をベースに2003年のGPU性能から2008年の性能予測値を割り出し、実際の製品であるGeForce GTX 200シリーズと比べてみたところ、機能によるバラつきがあるものの、NVIDIAによればおよそ10%の誤差の範囲で収まっているという。タマシ氏が行った講演のテーマは、この予測値を使って5年後の2013年におけるGPUを予想するというものだ。
2008年もまた、GPUトレンドのターニングポイントとなるだろう。5年前の2003年がプログラマブルシェーダへの移行だったとすれば、今度はGPU上の汎用コアを用いたGPUプログラミング、いわゆる「GPGPU」(General Purpose GPU)の時代とみることができる。NVIDIAでは「CUDA」というC言語をベースにした開発環境をリリースしており、開発者はCUDAを用いて記述したプログラムをGPUで走らせることで、特に浮動小数点演算で驚くべき性能を発揮する並列処理でTFLOPS級の処理能力を引き出すことが可能になる。
NVIDIAによれば、これからしばらくはCUDAのようなGPGPUプログラミングが主流となり、DirectX 11などの世代へと引き継がれることになるという。同社が2008年にリリースしたGeForce GTX 200シリーズはこうしたGPGPUに最適化されたモデルで、統合型シェーダユニット以外にも、ジオメトリシェーダなどの新機能を積極的に導入している。
このようなトレンドの延長線上で2013年のGPUを考えると、GPGPUとしての機能をさらに強化していると予想される。汎用コアは3Dグラフィックス処理にもCPUのコプロセッサ的な演算処理にも利用でき、かつ、どちらの用途に使うかはプログラミングで自由に設定できる。ただし、スレッドやパイプラインの自動制御など、ハードウェアで処理できるものは、できる限り専用のハードウェアに任せるというスタイルは残るようだ。
なお、NVIDIAは特定演算のためのハードウェアエンジンをGPU側に実装し続けるとも述べており、この部分が完全な汎用コア化を目指したIntelのLarrabeeとの大きな違いとなる。専用エンジンを実装しつづける理由の1つとしては、パフォーマンス上の問題が考えられる。
Copyright © ITmedia, Inc. All Rights Reserved.