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

NVIDIAチーフ・サイエンティスト インタビュー(上)
--スーパースカラ&スーパーパイプライン化されたGeForce4


 PCグラフィックスだけでなく、Xboxでゲーム機にも進出を果たしたNVIDIA。同社で、Chief Scientistを務めるDavid B. Kirk(デビッド・B・カーク)氏に、GeForce4やXGPU、今後のGPUの方向性などについて話を伺った。

●GeForce4のフォーカスはShader機能の強化

NVIDIA Chief Scientist David B. Kirk氏

[Q] GeForce4(NV25)のグラフィックスエンジン「nfiniteFX II」では、Vertex ShaderがGeForce3(NV20)の倍の2個になった。しかし、そのほかのハードウェアがどのように強化されたのかが、発表資料だけではわかりにくい。実際のインプリメンテーションについて教えて欲しい。

[Kirk氏] まず、基本的な部分から説明しよう。我々は通常、毎年1つ新アーキテクチャのGPUを開発し、新フィーチャと新テクノロジを導入する。そして、約6カ月後に次の製品を出して、そのフィーチャのパフォーマンスをアップさせる。

 今回で言うと、GeForce3つまりNV20が新アーキテクチャで、GeForce4つまりNV25がその発展版ということになる。そして、GeForce4では、GeForce3の新テクノロジだったProgramable Vertex ShaderとPixel Shaderの機能の向上に特にフォーカスした。

[Q] つまり、GeForce4のアーキテクチャ的な拡張はShader部分で、従来からの固定機能のT&Lエンジンとテクスチャユニット部分にはないと考えていいのか。

[Kirk氏] 他にもあるが、おもにShader部分だ。それは、Shaderを強化した方が、長期的に見た場合、開発者の助けになると判断したからだ。どちらのShaderも、ほぼ2~3倍は高速になっている。Vertex Shaderは、GeForce3の1個から2個になり、同クロックでの処理性能は倍増した。一方、Pixel Shaderも処理によっては2倍以上高速になっている。それは、Pixel Shaderにパイプライン(の段数)を追加したことと、データパスを追加したことで実現した。


●スーパースカラ&スーパーパイプライン化されたShader

[Q] なぜVertex Shaderだけを2倍にしたのか。Pixel Shaderを2倍にすることは考えなかったのか。技術上の制約なのか。

[Kirk氏] そもそも、我々はXboxのXGPUで、Vertex Shaderを2個にした。そのXGPUのテクノロジを、PCグラフィックスユーザにも提供するのは利にかなっていると考えた。Vertex Shaderが2倍になれば、頂点座標処理のスループットがずっと速くなる。そうすると、ジオメトリ処理の量を増やすだけでなく、より長いVertex Shaderプログラムも書きやすくなる。これは、デベロッパのGPUの使い方の方向性に合っている。

 一方、Pixel Shaderを2倍にするのは難しい。それは、Pixel Shaderが膨大なシリコン面積を消費するからだ。Vertex Shaderよりずっと面積が大きいため、プロセス技術の進歩が必要となる。その代わりに、我々はPixel Shaderではスループットを速くすることに集中した。

 GeForce3と4では、ピクセルパイプの数自体は同じ4本で、4ピクセル/クロックだ。しかし、パイプラインのステージを増やしたことで、より並列にコンピュテーションが実行されるようになった。これまで、Pixel Shaderのスループットはしばしば2クロックで、4クロックという場合もあったが、これをできる限りスループット1に近づけるようにした。これだけで性能はかなり上がっている。

[Q] これはわかりやすい。CPUで言えばPixel Shaderはスーパーパイプライン化され、Vertex Shaderはスーパースカラ化されたことになる。

[Kirk氏] そうだ(笑)。次に、開発者がPixel Shaderの上でプログラムしたスペシャルエフェクトが実際にどのようにプログラムされているかを研究した。その上で、そうしたよく使われるプログラムがShaderの上で高速に走るように改良した。具体的には、テクスチャ読み出しと、レンダーしたテクスチャの利用のためのパスを追加している。例えば、リフレクショナルマップやシャドウマップのようなレンダリングしたテクスチャのマップは、専用の内部データパスを使うことで、レンダリングパスのサブシークエントとして扱えるようにした。

 それから、Shader以外のエリアでフォーカスしたのは、アンチエイリアシングのパフォーマンスの向上だ。GeForce4ではAccuview Shifted Antialiasingという技術を導入した。パフォーマンスの低下を心配して、アンチエイリアシング機能をオフにする必要がないことを目標にした。


●フラットパネルで増すアンチエイリアシングの必要性

[Q] Accuview Shifted Antialiasingだが、なぜ高速になるのか。サンプリングポイント数自体は変わらないように見える。

[Kirk氏] 我々は、2つのサンプリングポイントで疑似的に5サンプルを得られる「Quincunx」サンプリングパターンをGeForce3で採用した。GeForce4では、サンプリングポイントをシフトすることで精度を高めている。この方式では、本当に1ピクセルで4ポイントサンプリングした場合ほどの精度は得られないが、十分な精度とパフォーマンスを得られる。

 それから、Geforce4では、サンプリングとフィルタリングのプロセスを分離した。フィルタリングは、グラフィックスエンジンでオンザフライで行なうだけでなく、フレームバッファディスプレイエンジンで行なうことができる。つまり、サンプリングだけをしておいて、それを後でスキャンアウトしてフィルタリングすることができる。このテクニックも高速化に寄与している。

[Q] Accuviewでは、アンチエイリアシングのパフォーマンスの問題は完全に解決されたと考えているのか。

[Kirk氏] もちろん、問題は決して完全に解決されることはない。というのは、今後もジオメトリの性能が上がり、シェーディングも増え、より高解像度も可能になる。そうすると、もっとピクセルフィルを上げる技術が必要になる。しかし、現状ではかなり満足できるレベルに達した。

 アンチエイリアシングが重要になるのは、今後さらにフラットパネルディスプレイが普及するからだ。フラットパネルはCRTよりもずっと画像がクリスプでシャープなので、ピクセルがクリアに見えて、ジャギーが目立つ。だから、アンチエイリアシングが重要になる。それにフラットパネルになると、ディスプレイが小さくなるのでデュアルディスプレイも容易になる。だから、GeForce4では、どの製品もnView Multi-display Technologyで、マルチディスプレイへの3Dアクセラレーションを可能にしている。


●次世代GPUは8レンダリングパイプへ?

[Q] NV25(GeForce4)は0.13μmプロセスの製品になると想像していた。というのは、NVIDIAの5ナンバー世代は、これまで新プロセス世代で作られてきたからだ。しかし、今回のNV25はNV20(GeForce3)と同じ0.15μmプロセスだ。これは、TSMCの0.13μmプロセスの歩留まりが非常に悪いからか。

[Kirk氏] いや、TSMCのコンディションがいいか悪いかで決めたわけではない。半導体マーケット全体を見た場合に、まだ0.13μmでこれだけ大きなチップを製造するのが難しい(ダイサイズが大きくなると歩留まりが落ちる)というだけの話だ。我々は、新プロセステクノロジを使うことには熱心だ。実際、0.13μmでも最初に使うGPUベンダーのひとつになるだろう。問題はタイミングで、今の時点では0.13μmはまだ成熟していない。早すぎず遅すぎずのタイミングで0.13μm製品は出す。

[Q] 良いタイミングは今年後半あたりか。

[Kirk氏] それはいい推測だ。もちろん、私がそれを認めることはできないが(笑)。

[Q] NV25(GeForce4)のダイサイズ(半導体本体の面積)はどれくらいなのか?

[Kirk氏] 正確な数字は言えない。知りたければパッケージを開けてもらえればいい。言えるのは、Pentium 4とPentium IIIを合わせたより巨大ということだ。トランジスタ数は6,300万だから、それも当然だが。

[Q] TSMCは0.15μmで複数のオプションを用意している。ローパワー版の「LV」やハイスピード版の「HS」などだ。このうち、どのプロセスをGeForce4では使っているのか。

[Kirk氏] うーん、私自身は、実際のところ、プロセスをどの製品に使っているのか詳細は知らない。言えるのは、ポータブル向け製品にはローパワープロセスを使っていることだ。デスクトップ製品にはハイスピードプロセスを使うのが利にかなっているが、正直なところ、わからない。

[Q] NV25(GeForce4)については、6レンダリングパイプになるというウワサも流れていた。

[Kirk氏] 6パイプなんて製品のプランは、これまで聞いたことがないな(笑)。いや、パイプを増やすことを検討していないという意味ではなく、6パイプ計画は決してなかったということだ。……だって、普通考えたら、倍々の方が簡単だろう? 2、4、8みたいな(笑)。

[Q] ということは、次の世代は8パイプになると考えていいのか。

[Kirk氏] それはコメントできないな(笑)


●今後の新機能はShaderのアルゴリズムに

[Q] これは友人(西川善司氏)から尋ねてくれと頼まれた質問なのだが、GeForce4はソフトフォーカスシャドウとZ-Correctバンプマッピングに対応したと発表された。しかし、これらは実際にはProgramable Shaderで実現しているだけではないのか。

[Kirk氏] ソフトフォーカスシャドウは、Programable Shaderのフィルタリングで、シャドウエッジングのソフトブレンディングを実現している。Z-Correctバンプマッピングも、Pixel Shaderの機能だ。

[Q] だったらProgramable Shaderを備えたGeForce3でも実現できるわけで、GeForce4の新機能というのはおかしいのではないのか。

[Kirk氏] 確かにGeForce4固有の機能というわけではない。しかし、先ほど説明したようにGeForce4のShaderのパフォーマンスを向上させたために、こうした機能が頻繁に使うに耐えるだけの速度になった。それが新機能とした理由だ。

 今後は、新機能はほとんどがこうしたShader上で開発された新アルゴリズムや数学テクニックになるだろう。これらは一例に過ぎない。これからは、ハードウェアで特定の機能を加えるよりも、プログラマブルパイプラインで機能を実現する方を選んで行く。その方がユーザーも多くの機能を得ることができるからだ。そして、デベロッパもフレキシビリティを手に入れることで、我々が予期しないような新テクニックを開発するようになる。実際に、そうした動きが始まっている。

[Q] デベロッパサイドからもShaderを使った新しいアルゴリズムがどんどん登場しているのか。

[Kirk氏] そうだ。GeForce3を出してからは驚くほどの状況だ。我々がGPUにフレキシビリティとプログラマビリティをどんどん加えるにつれて、デベロッパが何をするのか見当がつかなくなりつつある。彼らが書きそうなプログラムを全部テストするのは不可能だし、驚くような使い方をする人が出てくる。そうした動きは、ハードウェアを開発する我々にインスピレーションを与えてくれる。

[Q] 2年前のE3で会った時、あなたは一時期ゲームデベロッパでアーキテクトをやっていたと言っていた。あなたの経験は、そうした時に生きるのではないのか。

[Kirk氏] ゲーム開発会社にいたのは、非常にエキサイティングな経験だった。制作プロセスの感覚とゲーム開発の思考を理解できるようになった。ハードウェアを作る側とデベロッパ側では、同じハードウェアに対する見方が全然違う。私はゲームデベロッパの意見をもっと慎重に聴くようになった。


●DirectX 8.1はMicrosoftにとってプアな選択

[Q] DirectX 8.1では、ATIだけがサポートするPixel Shader 1.4テクノロジが入って、あたかも2つのダイレクションに分かれつつあるように見える。この状況はどう思うか。

[Kirk氏] Microsoftが互換性のないPixel Shaderのバージョンを許したのはちょっとお粗末(poor)な選択だったと思う。それによって、ハードウェアを抽象化するという、DirectXの路線はつまづいた。もっとも、幸いなことに、Microsoftも次のバージョンではこれをフィックスするつもり(DirectX 9では統合される)だ。

 デベロッパたちに聞いてみれば、Pixel Shader 1.4は、Pixel Shader ATIだと言うだろう。彼らは、どちらが優れているとは言わないはずだ、なぜなら、基本的にどちらも同じ絵を得られるのだから。唯一の違いは、NVIDIAのPixel Shaderの方が、ずっと大きなインストールドベースを持っていることだ。だから、誰もPixel Shader 1.4に特化してプログラムを書かないだろう。

[Q] なぜNVIDIAはN-patchのサポートに消極的なのか。

[Kirk氏] N-patchについては判断が難しかった。しかし、私は、N-patchがデザイナの意図通りに正確な表現をできるテクニックではないと考えている。N-patchでは、あるオブジェクトのシェイプの近似表現をするわけだが、その場合はサーフェイスにホールや不連続を残してしまう可能性がある。ホールが多少残ってもいいからソフトなシェイプのキャラクタが欲しいというなら、N-patchは有効だが、デベロッパがどう考えるかだ。つまり、N-patchはリアルなサーフェイスのためには十分でない、中途のステップに過ぎないと思う。それから、プロフェッショナルユースのデザインやCADのツールの多くでも、近似サーフェイスが使えないものがある。



バックナンバー

(2002年4月9日)

[Reported by 後藤 弘茂]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
個別にご回答することはいたしかねます。
Copyright (c) 2002 impress corporation All rights reserved.