GPU戦争
まじめな話をすると、突っ込みどころ満載になると思われるので、軽い話として。
WindowsVistaで採用されるDirectX10(以下:DX10)用のGPUのアーキテクチャーが各ベンダーから公表されてきている。
特にシェーダーが大きな話題になっていて、その中で、ATiとS3はUnified-Shader、Nvidiaは従来同様のIndependent-Shaderをベースに開発を進めるらしい。
といっても、nVidiaがUnified-Shader技術をまったく開発していないというわけでもなく、次の世代(G71)では採用しない可能性が高いということだ。
Unified-Shaderってのはプログラマブルシェーダーの究極の姿で、GPUに搭載したすべてのシェーダーユニットに固定の計算をさせるのではなく、プログラム制御することによって柔軟に割り振ることが出来るというもの。
つまり、実装されているすべてのシェーダーパイプのなかで、自由に機能を割り振ることによって、計算負荷を減らそうというのが狙い。
大してIndependent-Shaderは、各シェーダーユニットが目的別に固定された演算のみを行う。(特定機能をプログラミングして「ある程度」柔軟に演算させることは可能)
従来用いられている技術で、実験的でない分、わかりやすい高速化を進められるように思われる。
ATi陣営はGPUをよりCPUに近づけようとしているIBM-PCのように見え、nvidiaは各機能に特化した高性能カスタムチップを実装して驚異的なオペレーションを行っていたAmigaのように見える。(S3に関しては…どうでもええか)
とはいえ、nVidiaもSLIしたGPUで物理演算だけを行わせるアーキテクチャを発表していたりして、実際のところ、今後の動きがよくわからないのが実情だ。
新しいWindowsに実装されたときのことよりも、気になるのがX360とPS3での話。
すでに発売されているXbox360はUnified-Shaderを採用している。というのもATiがXbox360開発を行っていたからだ。
これに対し、リリースがのびのびになっているPS3はIndependent-Shaderを採用する模様。
こちらも同様にnVidaiが開発を担当しているからだ。
ただし、PS3の場合、cellのアーキテクチャを用いて、Independent-Shaderの配列を組み替えるような技術を導入してくるだろう。
実際のところ、より挑戦的な技術であるUnified-Shaderを使ったゲーム機がすでにリリースされているのに対して、技術といしては汲みやすい(次世代の)Independent-Shader搭載のマシンがリリースされていないのは皮肉な話である。
高速化ということだと、ATiは「優れたマネージャー」を求めており、nVidiaは「1対1で負けないプレイヤー」を求めている。
Unified-Shaderを効率よく調律し、各パイプに無駄がないように順序良く計算させられるようコントロールできる「マネージャー」が1人いるチームと、突出した能力で割り当てられた機能だけを超高速で処理し、ゴール前に向かっていく「プレイヤー」がそろったチーム。
まるでトルシェとジーコの哲学の戦いみたいですな。
nVidiaがプレゼンに使った画像が今後のコンピューターグラフィックスを占っているようで、面白い。
そのときのnVidiaの開発者の言葉を一緒に引用しておく。
「確かに、Unified-Shaderはフレキシブルだが、必要以上にフレキシブルだ。200インチ(約5m)の長さのベルトのようなものだ。200インチもあればあなたがどんなに太っていても合うが、太っていなければ意味がない。」
「我々は、特定目的の機能をGPUから取り去りたいと望んでいる。しかし、その一方で、(グラフィクスの特殊機能を)非常に速く走らせることも望んでいる。もし、GPUから全ての特定目的向けの実装を削ってしまったら、それは、単なるPentiumだ」
さて、どっちが勝つのか。
今年のSIGGRAPHではこの辺りの話が目玉になることは間違いない。
(ちなみに自分はAmiga(nVidia)派です。でもジーコサッカーにはクエスチョンですが。)