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

ページ 2/3



■RADEON 9800のメモリコントローラが劇的に強化されたって本当?

善:
R9800で命令セットレベルでの拡張がないとすると,R9800はR9700のクロックアップ版として捉えればよいのでしょうか。

ABT:
改良点としては,メモリコントローラの最適化も挙げられますね。これによってR9700よりも,ずいぶんメモリパフォーマンスが向上しています。
善:
グラフィックサブシステムにおいて,ビデオメモリパフォーマンスの向上は描画パフォーマンスの向上に直結しますから,意味のある改良点だといえますね。

ABT:
そうです。メモリパフォーマンスの向上は,テクセルの取り出しやアンチエイリアス処理の高速化にも繋がります。アンチエイリアス処理には,フレームバッファやテクスチャバッファからのサンプル処理がありますからね。
大元のZバッファを4×4単位で見て,その代表値から1/4サイズの縮小型Zバッファを作成。さらに2×2単位で見てその代表値からさらに1/4サイズの縮小型Zバッファを作成する。例えば1024×768ドットの場合,縮小型Zバッファのサイズは256×192ドット 64×48ドットになる。64×48ドットの縮小型Zバッファは,容量的にはたかだか12KBなので,オンキャッシュ動作できる……というわけ
善:
具体的にどの程度高速化されたのでしょうか。

ABT:
R9700をオーバークロックしてR9800と同クロックにし,アンチエイリアス付きでシーンをレンダリングさせたところ,R9800のほうが圧倒的に高速だったという実験結果が得られています。
善:
具体的にはどのような工夫がなされているのですか?

ABT:
ページ境界をまたいでメモリアクセスしないほうが速いとか,そういった基本的な最適化も行っていますが,それ以上に,極力パイプラインの上流で隠面消去するというような工夫もしています。
善:
無駄なピクセル描画を減らすことによってメモリアクセスを節約するというアプローチですね。

ABT:
理想は,画面上の各ピクセルを一度しかレンダリングしないことです。完璧に前から後ろに向かってオブジェクトを並べ,隠れているオブジェクトは描画リストから排除する……と。でも現実的にはうまくいかなくて,1ピクセルを何度も描画することになってしまうわけですが,まぁとにかく我々はこの部分のロジック強化に力を入れたわけです。
善:
具体的にいうと?
実際の階層的Zバッファの様子(「SIGGRAPH 2002」にて発表されたNed Greene氏の論文「Visibility Culling」より)


ABT:
新たに描画する4×4ピクセルブロックが,すでに描画されている4×4ピクセルブロックに対して前面に来るのか背面に来るのかを判断します。もし背面に来たら,そのブロックを描画リストから排除します。そうすると描画しなくてもよい部分が増えるので,データ処理にかかる時間が節約できます。
善:
階層的Zバッファ(Hierarchical Z-Buffer)による早期Zカリング(Early Z-Culling)ですね。

ABT:
そうです。これにより,排除されたブロックに適用するはずだったテクスチャマッピングも不要になるため,テクスチャフェッチ,読み込みが不要になります。またピクセル描画も不要ですから,ビデオメモリへの書き込みもいりません。これによりビデオメモリ帯域を劇的に節約できます。
善:
これは従来のRADEONシリーズがもっていた機能ですよね?

ABT:
初代RADEONのHyperZがそうですね。RADEON 8500(以下,R8500)ではHyperZII,R9700でHyperZIII,R9800でHyperZIII+となりました。今回,R9700に対してさらに最適化を推し進めたというわけです。
善:
メモリコントローラそのものは,どのように最適化したのですか?

ABT:
メモリコントローラは,内部のさまざまなクライアントブロック(テクスチャユニット,頂点シェーダユニット,ピクセルシェーダユニットなど)に接続されています。各部へのメモリバスを解析し,パイプラインを停止させるような要件を一つ一つ潰していったという感じです。


■RADEON 9800もGeForce FX 5800同様にDDR2メモリに対応している?

RADEON 9800シリーズ。256MB版も登場するがDDR2メモリではない模様
善:
R9800はDDR2-SDRAMメモリに対応していますか?

ABT:
対応していますが,現状128MB版のR9800はDDR1です。256MB版はDDR2版も検討したのですが,今回は見送ることにしました。
善:
それは意外ですね。最適化されたメモリコントローラにDDR2メモリを組み合わせれば強力そうですが。

ABT:
DDR2メモリはとても気になる存在ではありますが,現状のDDR2はグラフィックスに適しているとは思えないのです。現在のDDR2メモリがDDR1に対して圧倒的な速さをもっているかというと,そうでもないですし。グラフィックス用のDDR3メモリはグラフィックスに適していると聞いていますが。


■どうなる? どうする? ディスプレースメントマッピング機能

ATIは,「GDC 2003」でディスプレースメントマッピングのセッションを開いた。"ハイテクなのに冷遇されている"この技術の布教活動に乗り出したようだ
善:
"3Dモデルを形状データに変形"という,まったく新しい3Dグラフィックステクノロジといえる「ディスプレースメントマッピング機能」は,今後どうなるんでしょうか? DirectX 9期待の機能のはずが,妙に冷遇されているような気がするのですが。

ABT:
我々はR8500で,法線ベクトル(Normal Vector)を補う(PATCHする)形で曲面自動生成を行う「N-PATCH」テクノロジをインプリメントしました。
善:
「TRUFROM」ですね。

ABT:
そうです。我々は,これをもっとプログラマブルに拡張しようとマイクロソフトと協議したのです。その結果生まれたのが,ディスプレースメントマッピングです。
善:
TRUFORM2.0という名前になっていますね。

ABT:
確かにまだ一般的ではないですが,ここ数年のうちには一般に浸透すると思います。
善:
これを利用するための"サポートツール"がないという意見も聞かれますが。
あの「スタートピア」のMuckyfoot Productionsは,CPU+頂点シェーダによるディスプレースメントマッピングをXbox用ゲーム「BladeII」で実現している。GDC 2003では,MuckyfootProductionsのTom Forsyth氏が,その手法について講演した


ABT:
そうした意見に応えるために,サポートソフトウェアやグラフィックス制作ツールなどのプラグインソフトを開発しているところです。
善:
ディスプレースメントマッピングを実現するテッセレータ(ポリゴン分割)ユニットが進化すれば,現在各3DゲームエンジンでCPUが処理しているような動的LOD(*4)も,GPUで行えるようになるのではと考えるのですが。

ABT:
動的LODのアクセラレーションには,いくつかのアプローチが存在すると思います。たとえば,3DオブジェクトをGPUに投げてそれをテッセレータが分割するとか。また頂点シェーダプログラム側でテッセレートする手法も考えられますね。  ただし,LODをCPUがやるかGPUがやるかは,結局,3Dアプリケーション側のデザインに左右されると思うんです。
善:
LODを必ずGPUでやる必要はないと?

ABT:
つまり,CPUが非常に高負荷な物理エンジンを塔載している場合は,LODはGPUで処理したほうがいいかもしれませんが,高度なシェーダプログラムの実行するような,GPUが高負荷にさらされるような3Dゲームエンジンなら,LODはCPUで処理したほうがいいでしょう?LODの処理場所については,ゲームに合わせて開発者が選択すべきだと考えています。

  (*4)視点からの距離に応じて,3Dオブジェクトを構成しているポリゴンを増減する処理系


■RADEON 9600はRADEON 9800よりも高クロックになる?

善:
R9600は,RADEON 9500(以下,9500)と何が違うんでしょう? またR9800と同様に,Fバッファなどの新フィーチャーのサポートはあるのでしょうか?

ABT:
ありません。R9500/R9700と同等のフィーチャーになります。(RADEON9600のカタログを見せて)「SMARTSHADER」のバージョンがR9700と同じ,"2.0"になっているでしょう?(笑)
下位モデルのRADEON 9600は,ひと足お先に0.13μmへ
善:
R9700をベースに,0.13μmプロセスルールでデュアル頂点シェーダ,4ピクセルパイプラインのバージョンをデザインしたという感じですね。

ABT:
同クロックで動作させたときには,R9800のちょうど半分のパフォーマンスになります。
善:
R9600は,DDR2メモリをサポートしていますか?

ABT:
R9800同様にサポートはしていますが,ビデオカード製品としてDDR2を採用する予定はありません。なぜなら,DDR2を採用するとカードの価格が高くなり,RADEON 9600シリーズが本来狙っているマーケットレンジからズレててしまうからです。もっとも,カードベンダーのSAPPHIREなどは,R9600にDDR2を組み合わせたがっていましたね。とはいえ,我々のリファレンスデザインでR9600とDDR2を組み合わせることはないです。
善:
R9600は,0.13μmプロセスルールを採用していますね。となれば,0.15μmプロセスルールを採用しているR9800シリーズと比べて,R9600はクロックスピードが高く設定できますよね?

ABT:
そうなりますね。まだクロックが何MHzになるかはお話しできませんが,大体400MHz前後になると思います。
善:
ATIでは,R9600が0.13μmプロセスルール製造第一号のGPUなわけですが,問題はありませんか。

ABT:
とくに問題は出ていませんね。
善:
R9600とR9800でクロックスピードが逆転したとしても,パフォーマンスはR9800の方が上になるわけですね。

ABT:
そうです。R9600は,頂点シェーダやピクセルシェーダがR9800の半分しかありませんから。
善:
400MHzを超えた,たとえば500MHzのR9600などが登場する可能性は?

ABT:
400MHzを超えるR9600を出すことは可能です。しかしR9600という製品は,"たくさん"そして"安く"出すのを狙っていますから,高クロックで高効率な,しかも高価な熱排気システムを組み合わせられません。その意味で,超高クロックなR9600が出る可能性は低いでしょうね。
善:
消費電力についてはどうなんでしょうか。
RADEON 9600シリーズ


ABT:
R9600は0.13μmプロセスルールですから,かなり少ないはずです。R9800は0.15μmプロセスルールで,しかもR9700よりも高クロック駆動していることもあり,5W程度大きいと思います。ちなみにR9800は1.5V駆動,R9600は1.2V駆動です。

ページ 2/3