後藤弘茂のWeekly海外ニュース

対照的なアーキテクチャでぶつかるNVIDIAとATI




●NVIDIAとATI Technologiesの次世代GPU

 NVIDIAとATI Technologies、2大GPUベンダーが再び次世代GPUで激突を始めた。

 GeForce 7800 GTX(G70)で先行するNVIDIAを追いかけ、ATIも次世代GPU「R520」を準備している。NVIDIAはG70に続いてミッドレンジ向けの「G71(旧NV49)」、メインストリーム&バリュー向けの「G72(旧NV46)」を段階的に投入して行く見込みだ。ATIもR520後に、ミッドレンジ向けの「RV530」とメインストリーム&バリュー向けの「RV515」を準備していると言われる。両社は、PCグラフィックスではフルラインナップで、衝突する。

ATI&NVIDIA Desktop GPU
推定ロードマップ
PDF版はこちら

 また、ゲームコンソールでは、ATIがXbox 360にR520と同系と言われるカスタムGPU(R500)を提供するのに対して、NVIDIAはPLAYSTATION 3にG70の流れを汲む「RSX(Reality Synthesizer)」を載せる。GPU業界を2分した戦いが再び始まりつつある。

 今回のポイントは、両社の対立がアーキテクチャ面にあることだ。NVIDIAとATIがそれぞれ対立的なアーキテクチャとアプローチで衝突する。ATIがGPUの構造を根底から変革する斬新なアーキテクチャを取るのに対して、NVIDIAは当面は従来アーキテクチャの発展強化路線で行く。ATIがR520では先端の90nmプロセスを適用するのに対して、NVIDIAはG70に穏当にノーオプションの110nmプロセスを選んだ。

 つまり、今回はATIが“革新だけどリスキー”路線、NVIDIAが“堅実だけど飛躍が少ない”路線で対峙する。DirectX 9世代GPUの当初、ATIがRADEON 9700(R300)/9800(R350)で堅実アーキテクチャ+成熟プロセス(150nm)を選び、NVIDIAがGeForce FX 5800(NV30)で革新アーキテクチャ+先端プロセス(130nm)を採用したのとは立場が入れかわることになる。

 今回は、ATIの方がアーキテクチャもプロセス(=動作周波数)も飛躍が大きく潜在的なパフォーマンスアップの可能性は高いが、その分性能と製造面でのリスクが大きい。NVIDIAは、GeForce 6800(NV40)からアーキテクチャもプロセスも飛躍が小さく、性能アップは力業的な要素(より大きなダイサイズ)が強いが、その分リスクが少ない。

 前回、R300/350対NV30では、リスクを背負ったNVIDIAが大きく落ち込んだ。今回はどんな結果になるか、まだわからない。原則的に言えば、ATIの新アーキテクチャが効果的に働き、新プロセスで順当に製造が立ち上がった場合は、ATIが伸張する可能性が高くなる。一方、ATIのアーキテクチャがNV30の時のように効率的に働かなかったり、新プロセスによる製造でもたついた場合には、NVIDIAがG7x系で勢いに乗る可能性が高くなる。ATIの方がハイリスクハイリターンだ。

●Unified-ShaderアーキテクチャのATI

 NVIDIAのG70は、元々のコードネームが「NV47」だったことからも分かる通り、その実態は“NV40改”だ。NV40のベースアーキテクチャを発展させ、Pixel Shaderの数を50%増やすとともにShader内部の並列性を高めた。Pixel Shader以外の拡張は、比較的穏当に留まる。

 NVIDIAは、NV30ではShaderの実行リソースをある程度共有して複雑な制御を行なう、新アイデアのアーキテクチャを採用した。このアプローチがうまく行かなかったことは、今ではNVIDIA自身も認めている。そのため、NVIDIAはNV40からは、ATI型のより穏当な構成へと戻した。NV40では独立したVertex ShaderとPixel Shaderがあり、個々のShaderを独立的に制御する。NV40では、Shader数とShader内部の実行リソースを拡張するという力業で性能を伸ばした。NVIDIAがG70を、2005年のハイエンドGPUに持ってきたことは、この路線が有効と判断したことを示している。

 それに対して、ATIはこのタイミングでアーキテクチャ変革を行ない、さらに、その先もラディカルなアーキテクチャ変革を継続する。「R5xxはR300の時と同じくらいインパクトのある変革になるだろう。しかし、(その次の)R6xxの方がさらに根本的な変革になるだろう」とATIのDavid E. Orton(デビッド・E・オートン)社長兼CEOは語る。

 ATIは、Xbox 360 GPUに、Unified-Shaderアーキテクチャを採用することを、すでに明かしている。Unified-Shaderでは、Vertex ShaderやPixel Shaderといった区別がなくなり、統一されたアーキテクチャのUnified-Shaderアレイとなる。Xbox 360 GPUでは、「シーケンサ(Sequencer)」が48個のUnified-Shader群の制御を行なっている。従来のGPUアーキテクチャとは全く異なる、ラディカルなアーキテクチャだ。R520を含め、ATIの今後の新世代GPUは、Unified-Shader構成を継承すると見られている。

●分かれるUnified-Shaderに対する見解

 今回の両社の方向性の相違は、Unified-Shader型構成が有効かどうかの判断にある。ATIはUnified-Shaderの方が効率が上がると判断し、NVIDIAはUnified-Shaderだと効率が悪化すると考えた。複数のNVIDIA関係者が、中長期的な技術トレンドとしてはUnified-Shaderに向かっていることを認めている。しかし、今のフェイズでは、Unified-Shaderは適していないと判断したようだ。

 ATIは、Unified-Shaderの柔軟性がGPUの効率を上げるカギになると考えている。Unified-Shader型アーキテクチャでは、Vertex ShaderとPixel Shaderに固定された実装とは異なり、各Shaderに多様なタスクを自由に振り分けられる。

ATIのRobert Feldstein氏(ATI Technologies, Vice President - Engineering)

 「処理しなければならない頂点が増えたら、シーケンサがより多くの頂点プロセッシングをShaderパイプに振り分ける。すると、自動的に頂点オペレーションの数が増える」とATIのRobert Feldstein氏(ATI Technologies, Vice President - Engineering)は説明する。つまり、頂点処理が多ければUnified-Shaderの多くを頂点処理に割き、ピクセル処理が多ければ逆にピクセル処理に多くを割り当てることができる。Shader間のロードバランシングが可能になるわけだ。

 ATIによると、実際のアプリケーションの挙動を分析すると、Unified-Shaderの方が効率的にShaderを稼働させることができるという。「実際には、多くの頂点処理と多くのピクセル処理が同時に行なわれることはない。それは、(頂点処理とピクセル処理の間を)行ったり来たりするからだ」、「そのため、自然に、どちらかの処理に占有されるようになる」とATIのAndrew B. Thompson氏(Director, Advanced Technology Marketing, ATI Research)は説明する。

NVIDIAのDavid B. Kirk(デビッド・B・カーク)氏(Chief Scientist)

 それに対して、NVIDIAは真っ向から対立した見解をぶつける。「人々は『頂点処理しかしない時に、32個のShader全てを頂点処理に使える。あるいは、ピクセル処理しかしない時に、全てをピクセルに使える。これはいい』と思うかもしれない。しかし、そんなことは決して起こらない。ゲームでは、頂点とピクセルの両方の処理が常にある。そして、ゲームプログラムでは、ジオメトリ処理の量もフラグメント処理の量も、かなり予想ができる。我々はすでにいいバランスを得ていると思う。動的にリバランスする必要はない」とDavid B. Kirk(デビッド・B・カーク)氏(Chief Scientist)は指摘する。

 また、NVIDIAはUnified-Shaderは制御面でも、効率的に動作させることは難しいと指摘する。

 「Unified-Shader型のアーキテクチャで高速にするのは非常に難しい。NV30もそうだったように制御を複雑にすると、効率を上げることが非常に難しくなるからだ」(Kirk氏)

 それに対してATIのFeldstein氏は次のように反論する。

 「Unified-Shaderは自分で管理を行なう。ソフトウェアベースではなくハードウェアベースで、非常に効率的なメカニズムだ。だから、(コンピュテーション)サイクルは何もムダにしない」

 Unified-Shaderの効率性については、実際にハードウェアが出てこないと判断ができない。

 NVIDIAのKirk氏は、実装面の効率の悪化も指摘する。

 「Vertex ShaderとPixel Shaderを比べると、Vertex Shaderの方がPixel Shaderよりもずっと小さい。しかし、Unified-Shaderでは、全てのShaderエンジンが、ピクセルシェーディングの機能を備えなければならない。すると、頂点シェーディングをしている時は、ピクセルシェーディングのための部分はムダになってしまう。効率的にするのは難しい」

 ATIは、Unified-ShaderではShaderハード自体をシンプルに保つ実装を行なった。それに対して、現在のNVIDIAのNV40/G70系アーキテクチャは、Pixel Shaderを非常に複雑にしている。G70では、Pixel Shader内部にベクタ演算ユニットが2基(片方はテクスチャプロセッシングユニットと演算リソースを共有)あり、それぞれにスカラ演算ユニットなどが付属する。これだけ複雑だと、ユニファイド化は難しそうだ。

●WGF2.0世代はどうなるのか

 GPUは2006年には「Windows Graphics Foundation(WGF) 2.0」世代に突入する。Windows Graphics Foundationは、Microsoftの次世代Windows「Longhorn(ロングホーン)」に実装される新しいグラフィックスサブシステムだ。WGFにはWGF1.0とWGF2.0の2レベルがある。簡単に言えば、WGF1.0はLonghorn版DirectX 9、WGF2.0は以前DirectX 10あるいはShader 4.0と呼ばれていた次世代のグラフィックスサブシステムだ。

 WGF2.0では、API側から見たShaderはよりフレキシブルになり、API的にはShaderの統一化が進む。これは、Unified-Shaderを意識したAPIに見える。実際、WGF2.0世代=Unified-Shaderだと言うGPU業界関係者もいる。S3のDestinationもUnified-Shaderだと言われている。ATIは、R5xxで、このトレンドを先取りすることになる。

 だが、NVIDIAはWGF2.0はUnified-Shaderを要求するものではないと指摘する。

 「Microsoftが作るのはソフトウェアだ。だから、WGF2.0はUnified-Shaderアーキテクチャを示すわけではない。WGF2.0が意味するのはUnified API(統一API)だ。そのため、ハード側の実装は、Unified-Shaderでも従来のShaderでも、どちらでもできる。私は、次世代GPUがUnified-Shaderかどうかは言っていない。Unified-Shaderにしなければならないわけではないということだ」とNVIDIAのKirk氏は言う。

 NVIDIAの次世代GPUは「G80(NV50)」となる。Kirk氏の口ぶりからは、G80がUnified-Shaderか独立型Shaderか、まだわからない。独立型Shaderだった場合には、両社のアーキテクチャ対立はWGF2.0世代でも続くことになる。ちなみに、従来型の独立型ShaderアーキテクチャでWGF2.0に対応する場合、ハードウェア実装面でのもっとも大きな変化はGeometry Shaderの搭載となる。ただし、これはVertex ShaderとGeometry Shaderを切り替えることで対応できるかもしれない。

□関連記事
【6月22日】【海外】NVIDIAからハイエンドGPU「G70」が登場
http://pc.watch.impress.co.jp/docs/2005/0622/kaigai193.htm
【4月28日】【海外】WGF2.0世代GPUのカギを握るスケジューラとUnified-Shader
http://pc.watch.impress.co.jp/docs/2005/0428/kaigai175.htm

バックナンバー

(2005年7月8日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.