Text by トライゼット西川善司

ページ 2/3



▼え? GeForce FXの頂点シェーダは1基だけしかない?

善:
 「GeForce FXの頂点処理能力はGeForce 4Tiの2倍だ」ということを公言されていますね。ここから考えてGeForce FXの頂点シェーダーユニット数はGeForce 4Tiの2倍の4基と考えていいんでしょうか?
GB:
 いや,違うんです。実はGeForce FXの頂点シェーダーは1基なんですよ。1基,2基,4基と増やしていくのはクラシックな方法で,Direct X9世代のGPUでは,この方法はうまくないと我々は思っているんです。そこでGeForce FXでは,非常に高性能なジオメトリプロセッサユニットを1基搭載するという,まったく新たなアプローチを見いだしたのです。
善:
 それは具体的にどういう構造なんですか?
GB:
 これまでのように明確に独立した複数の頂点シェーダーがあるわけではないのです。GeForce FXの頂点シェーダーは内部に複数の実数演算器を持っていて,頂点処理時にはそのつどその計算に必要な演算器をスケジューリングして効率良く利用していくんです。
善:
 3DlabsのWildcatVPに使われているP10プロセッサもそれと同じ発想なんですね。P10では16基のジオメトリプロセッサをスケジューリングして使用する構造になっています。これはGeForce FXには同種のテクノロジーが使われていると解釈していいんでしょうか?
GB:
 「同じ」と言い切ることなんてできませんよ,もちろん(笑)。
善:
 どういった経緯でこういうアーキテクチャを採用したんですか?
GB:
 とにかく,今や複数基の頂点シェーダーを持つだけでパフォーマンスが上がるなんていう単純なものではないんです。なぜなら,「ある頂点は非常にシンプルな変換処理しかしない」けれど「ある頂点については非常に長いGeForce FXならではの頂点シェーダープログラムが実行される」という場合に,単純な処理のほうは頂点シェーダーを持てあましてしまいますし,複雑なほうはもっと演算パワーが欲しいという状況に陥ります。
 効率良く,スムースに頂点処理を行う場合には,我々のアーキテクチャの考え方のほうが自然なんですよ。

GeForce FXのデモ「Dawn」の見どころは,微妙な表情の変化を頂点シェーダを駆使して実現したフェイシャルアニメーション


▼GeForce FXは各パイプラインにテクスチャユニットを持たない?

善:
 ピクセルシェーダーユニットはどうなっていますか? ピクセル・レンダリング・パイプライン(以下ピクセルパイプ)は8本ありますよね。
GB:
 GeForce 4Ti以前では,1本のピクセルパイプあたりにそのパイプライン専用の複数個のテクスチャが存在していました。例えばGeForce 4Tiでは1パイプラインあたり2基のテクスチャユニットがありましたよね。GeForce FXではちょっと違う構造になっているんです。
 まず8本のピクセルパイプがありますが,全体で1クロックあたり8ピクセルの処理ができて,最大8テクセル処理が可能なんです。そして16個のテクスチャアドレッシッング(従属テクスチャ参照)が可能となっています。1クロックあたり同時には8テクセル処理しかできないですが,16個のテクスチャアドレッシング処理はできるようになっています。8本ある各パイプごとに各ユニットがあるというのではなくて,それぞれのパイプラインは各ユニットを利用するという感覚なんですね。
善:
 ではクロックあたり8テクセル処理が可能なのに,なぜテクスチャアドレッシングは16個できるのですか?
GB:
 例えばの話をしましょう。4本のピクセルパイプで二つのテクスチャ処理をしたとすると,8テクスチャを処理することになってイッパイイッパイですよね。しかし,その間に次のテクスチャ適用のためのアドレッシング処理ができれば,次回のテクスチャ適用時にはそのアドレッシング処理にかかる時間を隠すことができます。
善:
 それはテクスチャ参照時のメモリレイテンシを覆い隠すことにも繋がるんですね。
GB:
 はい。我々はパイプラインを増やすということがパフォーマンス向上に繋がるという考えを改め,こういう構造にしました。現在の3Dグラフィックスでは,同時に利用できるテクスチャ数とテクスチャアドレッシング数を増やすことこそがパフォーマンス向上に繋がると考えるようになったのです。
 こうした工夫により1クロックで8ピクセル処理できることもあれば,2ピクセルしか処理できないケースも起こりえますが,こうしたフレキシビリティな実行形態が全体を高速化すると考えています。
善:
 GeForce FXは,ビデオ・オーバーレイ・サーフェイスをピクセルシェーダで処理する能力は持っていますか?
GB:
 GeForce FXは,Direct X8以降サポートされたVMR(Video Mixing Renderer)テクノロジーに対応しています。物理的にはビデオ処理ユニットはピクセルシェーダユニットとは分かれていますが,論理的にはピクセルシェーダーの内部で利用できるような構成になっています。


▼メモリバス幅が128ビットなのはなぜ?

善:
 メモリバス幅が128ビットなのはどうしてでしょう? MATROX Parhelia-512やATI RADEON9700などいわゆるDirect X9世代GPUは,どれも256ビットを採用していますが……。
GB:
 ビデオメモリバス幅が何ビットかという問題は,我々はあまり重要なこととは考えていません。それよりも「最大パフォーマンスを出すにはどうしたらよいか?」ということを最優先させました。その場合,DDRIIというソリューションが最良だと考えたのです。コアクロック500MHzとDDRIIビデオメモリ1GHzを組み合わせたときにビデオメモリバス幅は128ビットで問題ないと判断しました。
善:
 128ビットビデオメモリバスでも速度的には競合GPUをしのぐということですね。
GB:
 そうですね。パフォーマンスを体感して頂ければ,128ビットだ,256ビットだというのは大した問題ではないことが分かって頂けると思います。キーワードとなる数値も「128ビット」よりも「500MHz」「1GHz」のほうが圧倒的にインパクトが強いと思うのですが,どうでしょう?
発表会では駆動クロックを非公開としたATIやMATROXとは対照的に,NVIDIAはクロックスピード値をアピールした


▼シャドウマッピングがGeForce 4Tiよりも高速化された

善:
 私は現在の3Dゲームグラフィックスにおいて「影の生成」というのが最も重要だと考えているんです。ぜひGeForce FXの影生成に関する機能を教えていただけませんか?
GB:
 GeForce FXには,影生成に関するアクセラレーションはいろいろ搭載されています。まず,シャドウマッピングのアルゴリズムがGeForce 4Tiと比べて改善され高速化しています。
善:
 Direct X9でサポートされたボリュームシャドウ(DOOMIIIの影生成にもこれが使われている)の高速化に繋がる2サイドステンシル操作にも対応しているんですか?
GB:
 はい,その通りです。2サイドライティングというテクノロジーがあるんですが,これはワークステーションプロダクト用(NV30コアを利用したQuadroシリーズのことを指すと思われる)にリザーブしてあります。
床に落ちる影だけでなく自分の一部の影が自分自身に映る「セルフシャドウ」は,次世代3Dグラフィックスにおいて必要不可欠の要素。このシャドウマッピング技法は,実はGeForce 3からサポートされている

ページ 2/3