ニュース
» 2006年11月14日 19時00分 公開

“共有するシェーダ”でGPUの新しい時代を──G80の革新性に迫る (2/3)

[笠原一輝,ITmedia]

128個のストリームプロセッサを内蔵してマルチスレッドで処理を行う

 GeForce 8800シリーズのパイプライン構造では、従来のGPUのようにバーテックスシェーダエンジンの後に、ピクセルシェーダエンジンが続く構造ではなく、CPUなどからきた命令が「Tread Issue」と呼ばれるスケジューラで、どの命令を演算ユニットで実行させるかを決定するユニットで分解して、効率よく演算ユニットに送られることになる。

 GeForce 8800では合計で128個のストリームプロセッサが用意されているが、従来の言いかたをするのであれば、「8つのシェーダパイプライン」にそれぞれ「16個の演算ユニット」が用意されているのに相当する。それぞれのパイプラインにはL1キャッシュが用意されているが、8つのパイプラインで6つのL2キャッシュを共有するなど、GPUの内部はCPUに似た構成になっている。CPU風に言い換えるのであれば「8コアのプロセッサ」ということになるだろうか。なお、それぞれの演算ユニットは1.35GHzで駆動されている。

 これらの演算ユニットは、スケジューラによってマルチスレッド処理が可能になっており、既存のアプリケーションでも並列処理の効率をあげるように苦心されている。従来のアーキテクチャでは演算のあとにテクスチャ処理が行われる仕組みになっていたため、結局のところどちらかしか行われていなかった、GeForce 8800シリーズでは演算とテクスチャ処理ができるだけ同時に行われるように改善するなどの工夫がされている。

 なお、基本的にはロードバランシング(負荷分散の状況。シェーダユニットをどの程度頂点処理に割り当て、どの程度画素処理に割り当てているかの調整)はスケジューラが担当して自動で行われるが、うまくハードウェアを使いこなすためには、今後、アプリケーションにも開発時に並列処理を意識したデザインが必要になってくるだろう。

 このほかにも、GeForce 8800は、例えば、2xの異方形フィルタリングの性能は倍近くになるなど、フィルレートが大幅に向上したおかげで、テクスチャ処理の表現力が大幅に改善されている。また、各パイプラインに用意されているラスタ処理のエンジンも改善が図られており、従来通りFP16/32のサポートのほか、最大で16xのマルチサンプリング、HDR(High Dynamic Range)に対応したアンチエリアシングなどにより従来製品に比べて大幅に表現力が向上している。

GeForce 8800 GTXのブロックダイアグラム。合計で128個のストリームプロセッサを備えて、スケジューラでスケジューリングされて命令が各パイプのプロセッサに詰め込まれて処理される
各シェーダの構成。各シェーダにはL1キャッシュが備えられており、6つあるメモリコントローラにはL2キャッシュも用意されている。まさにそれぞれがCPUの各コアのような構造といえる

GeForce 8800シリーズでは、シェーダの処理とテクスチャ処理が並列に行われるようになるなど、とにかく並列実行の効率をあげる仕組みが採用されている
NVIDIAの調査によれば、シェーダの実行効率はGeForce 7900シリーズの1.5〜2倍、場合によっては3倍にも達するという

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう