PCグラフィックスだけでなく、Xboxでゲーム機にも進出を果たしたNVIDIA。同社で、Chief Scientistを務めるDavid B. Kirk(デビッド・B・カーク)氏に、GeForce4やXGPU、今後のGPUの方向性などについて話を伺った。
●XGPUはGeForce3と4の間の世代のアーキテクチャ
NVIDIA Chief Scientist David B. Kirk氏 |
[Q] Xboxに使われているXGPUと、GeForce3/4の機能的な違いと関係について説明して欲しい。
[Kirk氏] XGPUの開発は、GeForce3の後、GeForce4の前に行なわれた。つまり、プログラマブルテクノロジ(Programable Shader)搭載のGPUとしては、GeForce3が第1世代、XGPUが第2世代、GeForce4が第3世代になる。XGPUは、ちょうど中間世代だと言い換えてもいい。そのため、後の世代になるほど進化している。
例えば、先ほど説明したように、GeForce3はVertex Shaderが1個だったが、XGPU/GeForce4では2個になった。レンダリングパイプはいずれも4本だが、GeForce4ではPixel Shaderがずっと高速になっている。つまり、GeForce3とXGPUはベーシックアーキテクチャが拡張され、XGPUとGeForce4は基本のアーキテクチャは同じだが、ずっと高速化されている。
[Q] グラフィックス以外の機能を見ると、XGPUにはノースブリッジ機能も入っている。XGPUはnForceプラスGeForce4のように見える。この理解で正しいのか。
[Kirk氏] その通りだ。ただし、メモリコントローラは似てはいるものの違っている。nForceのメモリコントローラは2個なのに対して、XGPUとGeForce3/4のメモリコントローラは4個だ。4個のクロスバー式メモリコントローラで、各メモリバンクに対して独立したオペレートが可能になっている。
[Q] この違いはなぜ。
[Kirk氏] nForceはメインストリーム向けグラフィックス製品だからだ。nForceに統合されているグラフィックスは、GeForce2 MX相当で、それほどメモリ帯域に対する要求が高くない。それに対して、XGPUはよりメモリ帯域に対する要求が厳しい。
●CPUとグラフィックスのアクセスを特性に合わせてコントロール
[Q] XGPUのようなUMAアーキテクチャでは常にメモリ帯域の不安がある。XGPUでは、改良されたメモリコントローラ「Lightspeed Memory Architecture II」によって、UMAのボトルネックは解消できたと考えているのか。
[Kirk氏] LMA IIもそうだが、他にも2つの理由から、UMAはもう問題ではないと考えている。
問題はどこにあるかというと、CPUはレイテンシが重要だが、グラフィックスは帯域が重要という点にある。ところが、過去のUMA製品では、開発者はCPU向けのメモリコントローラを採用した。これは、ローレイテンシだがメモリ帯域の活用には向いていないアーキテクチャで、グラフィックスエンジンに十分なメモリ帯域を供給できなかった。
そこで、我々はXGPUとnForceでは、グラフィックス向けのメモリインターフェイスをベースにCPUに合わせた最適化をした。グラフィックス向けのメモリコントローラは、非常に高い帯域を実現するが、しばしばレイテンシが非常に長くなる。そこで、我々は、CPUからのアクセスには、ローレイテンシフィーチャを加えた。CPUは常に高いプライオリティを与えられ、低レイテンシでメモリにアクセスできる。それによって、グラフィックスからのアクセスは若干レイテンシが増えるが、これは性能にそれほど影響を与えない。グラフィックスにとって重要なのは帯域で、CPUアクセスはそれほど帯域を圧迫しないからだ。
Xboxに関して言えば、UMAが利点になる、もうひとつの理由がある。ゲームでは、頂点データやテクスチャのバッファ、レンダリングされたシャドウマップにリフレクションマップなど、膨大なデータが展開される。UMAではこれら全てが同じメモリ上にある。それに対して、メインメモリとグラフィックスメモリが分離している場合は、いちいちデータをコピーする必要が出てくる。UMAでは、その必要を削除できるため、より効果的なメモリ帯域の使い方ができる。
[Q] もし、第2世代のXbox向けのXGPUを開発するとしたら、どんなアーキテクチャにしたいと考えているか。
[Kirk氏] それは決してコメントできないな。
[Q] でも、もうプランはあるのではないのか。
[Kirk氏] 秘密は秘密のままだ(笑)。
●3Dグラフィックスは全てがハック
[Q] NVIDIAの製品でDirectX 9互換になる最初の製品はNV30なのか。
[Kirk氏] NV30って一体なんだ(笑)。DirectX 9製品については、まだ何も話せない。
[Q] しかし、マイクロソフトがDirectX 9を発表すれば、サポートしなければならないだろう。
[Kirk氏] Microsoftが次世代DirectXを出荷したら、我々はそれをハードウェアでサポートするだろう。その意味ではイエスだ。
[Q] NV30のトランジスタバジェットはどの程度なのか。0.13μmと想定すれば、1億数千万トランジスタに達するはずだが。
[Kirk氏] 増えるのは確かだが、正確な数は言えない。想像してもらうしかない。
[Q] 1月にMicrosoftのSeamus Blackley氏(Xbox Technology Officer:Xboxの技術担当)にインタビューした。その時、彼は、次のような非常に興味深いことを言った。「マルチテクスチャは、一種のハック的な手法だ。もともとピクセルシェーディングとサーフェイスシェーディングで実現できるグラフィックスに近いものを得るために考え出された。本当に望ましいのは、Shaderを使ってモデルを作り出すことだ」と。大きな流れとしては、今後のグラフィックスハードウェアは、Shader中心に向かって行くのか。
[Kirk氏] 私は、将来はさらにShaderでのプログラマビリティを増す方向へと向かってゆくと考えている。これは、非常に重要なトレンドで、グラフィックスアーキテクチャは大きな節目にあると認識している。当社の製品も、今後はさらにプログラマビリティを向上させる方向になるだろう。
ただ、Seamusがハックだと言ったのはちょっと面白いな。そういう意味では3Dグラフィックスは全てがハックだ。リアルワールドを実現する唯一の方法は、カメラしかない(笑)
[Q] もちろん、彼はいい意味でハックと言ったのだが(笑)
[Kirk氏] わかっている。クレバーなトリックということだ。そして、Programable Shaderは、よりクレバーなトリックだ。
●今後はひたすらProgramable Shaderの強化へ向かう
[Q] GeForce2まではグラフィックスの進化は単純だった。単純に機能やパイプラインやテクスチャ数が増えていった。しかし、今後はShaderの強化になるとすると、一体どんなカタチに進化して行くのか。
[Kirk氏] まず、大きな制約としてDRAM側のメモリ帯域がそれほど急激に向上しないという枷がある。まあ、これはディスプレイサイズとのバランスだからOKなのだが、メモリ帯域によってGPUのデータフロースルーは限られてしまっている。
ところが、GPUは毎世代、搭載するトランジスタが増える。そうすると、問題は、その増えた分のトランジスタをどう使うかという話になる。つまり、データフロースルーは増やせないが、PixelとVertexのプロセッシングパワーは増やすことができると。そうすると、論理的な帰結は、より多くのピクセルを処理するのではなく、よりよいピクセル処理に向かうことになるだろう。そして、それは今後、プログラマブルなプロセッシング能力を増やすことになる。
[Q] すると、世代毎にProgramable Shaderの数を倍増させる方向へ向かうわけか。
[Kirk氏] 倍かどうかはわからないが(笑)、プログラマビリティを強化するのは確かだ。
[Q] そうすると、例えば、レンダリングサイドでは、パイプ数は増えても、従来の固定機能のマルチテクスチャはもう強化されないわけか。
[Kirk氏] Shaderでのテクスチャのサンプル数の強化になるだろう。
[Q] DirectX 9に含まれるShader 2.0世代では、Shaderの命令セットも大きく拡張される。これは何を意味するのか。
[Kirk氏] Microsoftのプランについてコメントはできないが、全体の流れを説明しよう。非常に重要なのは、デベロッパがGPUプログラムを容易にできるようにすることだと考えている。現状では、Vertex & Pixel Shaderのプログラミングを学ぶのは、多くのデベロッパにとって非常に難しい。だから次世代のハードウェアとAPI、これはDirectXとOpenGLの両方だが、もっと容易にプログラムできる方向へと向かうだろう。
●膨れあがる一方の新フィーチャの搭載要求
[Q] 現在グラフィックスエンジン開発で、もっとも大きな障壁になっているのは何なのか。
[Kirk氏] もっとも困難なことは、機能の増大を誰もストップできないことだ。ともかく、膨大な新アイデアに膨大なチャンスがどんどん産まれてくる。しかし、当然全てを入れることはできないので、何を入れて何を入れないか、それを決定するのがまず困難だ。そして、ようやく1製品を開発し終わったと思ったら、翌月には次の製品に取りかからなければならない。
[Q] 最近のGPUのトランジスタ数は、CPUよりも多い。途方もない数になっている。何がいちばんトランジスタを食っているのか。
[Kirk氏] Pixel Shaderは、膨大な数を食っている。それから、メモリインターフェイスが食っている。
[Q] メモリインターフェイスがそんなにトランジスタを必要とするのは驚きだ。
[Kirk氏] GeForce4の場合、メモリコントローラに多くの情報を持たせているからだ。クロスバーだけでなく、テクスチャ圧縮やアンチエイリアシングなど、多くの処理をやらせている。だから、膨れあがる。
[Q] チップの規模が膨大になると、バリデーションが大変になる。この問題はどうやって解決するのか。実際、御社の製品は、最近メタルレイヤチェンジが頻繁で、発表してから製品出荷までに時間がかかることが多い。
[Kirk氏] ひたすらテストをするしかない。シミュレーションから始まって、多くのテストを実際に行なっている。
●GPUがギガヘルツにならない理由
[Q] 同じファウンダリで製造していても、GPUはCPUほど高クロックではない。あるCPUエンジニアは、CPU開発で培ったカスタムロジックデザインのテクニックを使えば、GPUをもっとはるかに高速にできる、例えば、GHzのGPUを作ることができると言っていた。この意見はどう思うか。
[Kirk氏] それは確かにそうかもしれない。カスタムデザインでチューンすれば、もっと高速になるのは確かだ。しかし、問題はもっとデザインに時間がかかることだ。
例えば、IntelなどのCPUを見ると、アーキテクチャデザイナが仕事を終えてから、約1~2年もトランジスタチューニングに時間をかけている。同じことをGPUでしたらどうなるかというと、今年、2GHzのTNT2を出すことになる。誰か買うと思うかい(笑)。
グラフィックスビジネスでは、アーキテクチャとフィーチャは、CPUよりはるかに頻繁に変化する。製品を仕上げるまで3年かけるわけにはいかない。まあ、グラフィックスの革新速度がスローダウンしたら、そうしたカスタムデザインで高クロックの製品を作れるかもしれない。しかし、それは多分20年後だろう。まだ、20年分くらいは、やり残していることがある。
[Q] IntelはDDR IIメモリを2004年のメインメモリとして使う予定だ。一部のDRAMベンダーは、その前にDDR IIをグラフィックス用として売り込みたいとも言っていた。
[Kirk氏] 我々は、常に新メモリテクノロジについて検討している。確かに、DDR IIは誰もが望むワンダフルな解に見えるが、それは十分安価ならの話だ。価格の面で納得がいくようになったら、使うだろう。
[Q] 汎用DRAMアーキテクチャは、メモリ帯域は向上しているが,ランダムアクセス性能はあまり向上していない。グラフィックスでは帯域とともに、ランダムアクセスも重要だと思うが、ランダムアクセスに強いメモリアーキテクチャは検討しないのか。
[Kirk氏] ランダムアクセスは重要だが、どちらかというと、大きなデータブロックをストリーム転送するため帯域の方が重要だ。……どちらも必要ということだ。
あるひとつの問題を解決できるメモリはよく開発されるのだが、その手のメモリは別の問題については逆に悪化させてしまうことが多い。つまり、すべての問題を解決する、というカタチにならない。それから、我々はメモリアクセスを効率化する多くのテクノロジをチップに組み込んでいる。こうしたテクノロジを実現するには、そのメモリアーキテクチャについて多くを知らなければならない。そうすると、あまり特殊なメモリには依存しにくい。
[Q] 2月にATI TechnologiesのCEO、K.Y.HO氏にインタビューした。彼は、R300が最初のDirectX 9対応GPUになり、NV30より優れていると言っていた、コメントは。
[Kirk氏] そうだな、2語だけ伝えて欲しい。「Good Luck」と。ATIのエンジニアも、NVIDIAのエンジニアも、非常にハードにやっている。我々にできるのは、ベストを尽くすことだ。
□関連記事
【4月28日】【海外】NVIDIAチーフ・サイエンティスト インタビュー(上)
~スーパースカラ&スーパーパイプライン化されたGeForce4
http://pc.watch.impress.co.jp/docs/2002/0409/kaigai01.htm
(2002年4月10日)
[Reported by 後藤 弘茂]