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

MatroxがハーフDirectX 9世代のGPU「Parhelia」で復活


●ジオメトリ部はほぼ完全にDirectX 9世代のハードウェア

Parheliaのチップイメージ

 Matrox Graphicsが復活のノロシを上げた。ハーフDirectX 9世代のグラフィックスチップ(GPU)「Parhelia(パフィリア)」を発表したのだ。“ハーフDirectX 9”としたのは、Parheliaの場合、アーキテクチャ的に見ると、グラフィックスパイプの半分はDirectX 9世代、半分はDirectX 8世代のハイブリッド構成になっているからだ。だが、ParheliaからはDirectX 9世代のGPUが、どんな姿になるのかがはっきり見て取れる。

 DirectX 9では、ジオメトリ処理を担当するVertex Shaderと、レンダリング処理を担当するPixel Shaderがそれぞれ2.0にバージョンアップする。MatroxのParheliaは、このうちVertex Shader 2.0を備えるが、もうひとつの大変革であるPixel Shader 2.0は持たない。Pixel ShaderはDirectX 8世代の1.3のままとなっている。また、Parheliaは、「Hardware Displacement Mapping(ハードウェアディスプレースメントマッピング)」呼ばれる機能をジオメトリ側に備えるが、MatroxのKamran Ahmed氏(Senior Manager, Technical Marketing and Product Management)によると、これもDirectX 9準拠の機能を備えているという。そして、ParheliaはDirectX 7のハードウェアT&Lを持たない。これもDirectX 9世代の特徴だ。

 こうして見るとParheliaは、ジオメトリ側はDirectX 9で、レンダリング側はDirectX 8ということになる。いい言い方をすればフルDirectX 9ハードへの布石、悪い言い方をすればフルDirectX 9ハード一歩手前のチップがParheliaだ。もっとも、次回に説明するがこれには合理的な理由がある。また、ここまでDirectX 9フィーチャをインプリメントしたMatroxが、後を続けないはずはない。おそらく、来年にはフルDirectX 9ハード(Parhelia 2?)が待っているだろう。

●バスの負担を減らしてGPUの性能向上を図る設計思想

 Parheliaのグラフィックスパイプラインで最も目立つのはHardware Displacement Mapping(ディスプレースメントマッピング)などを実現する「Surface Creation Engine」が加わったことと、Vertex Shaderを4個備えたこと、ハードウェアT&Lを持たないこと。これらはいずれも業界初のアーキテクチャで、3つがそれぞれ密接に関係している。

ディスプレースメントマッピング

 まず、機能面で言うと、大きな変化はディスプレースメントマッピングだ。ディスプレースメントマッピングについては西川善司氏の記事「DirectX 9注目の新テクノロジー「D-MAP」を理解する その1/その2」に詳しいのでここでは詳細は省くが、簡単に言ってしまうと、テクスチャマッピングにより単純なポリゴンから複雑な形状を作り出す技術だ。バンプマッピングと一見似ているが、レンダリング過程でのマッピングにより擬似的に見かけを変えるバンプマップと異なり、ディスプレースメントマッピングはジオメトリパイプでマッピングすることで、実際に頂点(Vertex)データを操作する。つまり、バンプマッピングでは疑似変形だったのが、ディスプレースメントマッピングは本当に新しいジオメトリを生成する。そのため、より正確で大幅な変位が可能になる。

 具体的にどうしているかというと、ディスプレースメントマッピングでは、ポリゴンモデルに高低情報(Height Data)のテクスチャを貼り込む。ベースとなるポリゴンデータに、高低情報を加えることで、より複雑な形状を生成する。

 このアーキテクチャの基本的な思想は明白で、GPU内部で頂点(Vertex)データを生成してしまうことで、ジオメトリデータの増大を止めることにある。言い換えれば、ジオメトリデータ圧縮になるわけで、CPUからGPUへと送り込む頂点データの量は同じでも、より複雑な形状を実現できるようになる。GPUに入る時は少ない頂点データが、GPU内で増殖するようなイメージだ。

 結果として、バス(この場合はAGP、CPUのFSB、メインメモリ)に負担をかけずに、より複雑なグラフィックスが実現できるようになる。これは、今後性能を上げ続けるための現実的な方向と言える。というのは、バスの帯域向上より、GPUのチップ内部のプロセッシング能力の向上の方がはるかに簡単だからだ。処理上では、GPU内部のスループットだけが制約になるので、ボトルネックも回避しやすい。

●ハードウェアT&Lがなくなった

 それから、Surface Creation Engineの「Tessellator(平面分割ユニット)」は、N-patchやベジェ曲線のハードウェア実行にももちろん利用できる。つまり、脱ポリゴン、ハイオーダーサーフェイス化への布石ともなっている。最終的にはハイオーダサーフェイスやディスプレースメントマッピングでデータを持っていて、各GPUがそれをSurface Creation Engineでポリゴン化するといったビジョンをMatroxは描いているように見える。

 ちなみに、DirectX 9世代のTessellatorは、Depth-AdaptiveのLOD(Level of Detail)、つまり、視点からの遠近に応じてオブジェクトの複雑度を段階的に変化させることで、頂点データ数を減らし、Vertex Shaderの負担を軽くする機能も備えている。これにより、Tessellatorの段階で、GPUの処理能力に応じた頂点データ量に調整することも可能になる。

 もっとも、Surface Creation Engineが頂点を生成するとなると、これまでよりVertex Shaderの負担はやはり増える。そのため、Parheliaでは4個のVertex Shaderを備えて並列処理をさせるアーキテクチャとなっている。つまり、4個のVertex Shaderは、Surface Creation Engineを搭載したための必然とも言える。おそらく、他社もSurface Creation Engineを搭載した段階で、4Vertex Shader構成にしてくるだろう。

 Parheliaでは、DirectX 7世代のハードウェアT&Lは、このVertex Shader上でのエミュレーションで実現する。ある関係者によると、ハードウェアT&LのVertex Shaderエミュレーション化は、MicrosoftのDirectX 9ハードのインプリメントで推奨されている方式だという。また、Ahmed氏によると、4個のVertex Shaderの並列処理により、ハードウェアT&Lエミュレーションも、現実的なパフォーマンスを達成できるという。

●レンダリング部も拡張

 大きく変わったParheliaのジオメトリ部。それに対して、Parheliaのレンダリングパイプは4本で、Pixel Shaderの命令セット/レジスタ体系もバージョン1.3のままと、一見大した拡張がされていないように見える。しかし、実際には、こちらもジオメトリ部分の拡張に見合うような性能向上が図られている。

3つのディスプレイでMicrosoft Flight Simulator 2002をプレイ

 例えば、Shader自身は5ステージにパイプライン化されているため、スループットは高いと見られる。また、4本のレンダリングパイプそれぞれに、テクスチャユニットは各4段のテクスチャステージを備える。そのため、各パイプがクロック当たり4テクスチャのマッピングをできる。また、このテクスチャユニット自体も固定機能ユニットではなく、Ahmed氏によると、実際にはMatrox独自の仕様でプログラマブルになっているという。Pixel Shader 2.0になれば、このステージもPixel Shaderでサポートできるようになるという。それから、Parheliaのレンダリングパイプでは、RGBA各色10bitのデータを扱えるようになっている。これも、DirectX 9の一部を先取りした形になっている。

 いずれにせよ、こうしたParheliaのレンダリングパイプの構成を見る限り、ピクセル処理能力もかなり高いと想像される。そして、このピクセルプロセッシング能力を、Parheliaはマルチディスプレイの3Dアクセラレーションに使う。PC Watchのレポートにある通り、Parheliaでは最大3つのディスプレイで同時に3Dグラフィックス表示ができる。


●メモリ帯域のトレードオフ

 しかし、マルチモニタには当然のことながらトレードオフがある。それはメモリ帯域だ。パフォーマンスを落とさずに3モニタで3Dグラフィックスアクセラレーションを実現するには、頂点&ピクセルのプロセッシング能力だけでなく、膨大なメモリ帯域が必要となる。フレームバッファと各種バッファの量が増えるだけでなく、描画するシーンが増える分だけテクスチャリードも増える。というわけで、Parheliaは通常のGPUの2倍の256bit幅のDDR DRAMインターフェイスを備える。

Parhelia-512コア ブロックダイヤグラム

 Parheliaでは、合計で512bit幅になるメモリコントローラアレイが、256bit幅のDRAMコントローラ経由でDRAMチップにアクセスする。つまり、内部の各ユニットに対応するメモリコントローラ群が合計で512bit幅分あって、それが256bit幅(DDRなので4チャネルになる)の物理的なインターフェイスにアクセスする。

 512bit幅はとてつもなく感じられるかもしれないが、実際にはゲーム機系のエンベデッドDRAM搭載GPUの場合には、この程度のメモリコントローラ幅は普通だ。ゲーム機では512bit幅ならその幅のままエンベデッドDRAMにアクセスする。しかし、Parheliaでは、外付けDRAMなので、がんばって256bitと、物理的なインターフェイス幅が制約される。当然、各メモリコントローラ間の調停が必要となる。

 256bitメモリインターフェイスのトレードオフは明白だ。パッケージのピン数が非常に増え、ボード設計の難度が上がり、メモリチップの個数が増えることでメモリコストが増大し、メモリのグラニュラリティ(粒度)も倍増する。現状では、Parheliaボードは8層で、x32の128Mbit DRAMチップ8個の構成で128MBを搭載する。256bitインターフェイスの場合、8個128MBはミニマムのグラニュラリティだ。それに対して、通常の128bitメモリインターフェイスGPUの場合は、x32が4個で64MBが最小構成となる。結果として、Parheliaは、高級路線に向かわざるをえないが、これはチップ自体のコストの高さを考えれば釣り合うだろう。

□関連記事
【5月15日】Matrox「Parhelia-512」技術資料公開
http://pc.watch.impress.co.jp/docs/2002/0515/matrox.htm
【5月14日】Matrox、世界初512bit GPU「Parhelia-512」を発表
http://pc.watch.impress.co.jp/docs/2002/0514/matrox.htm
【5月10日】【海外】DirectX 9が3DLabsとMatroxを復活させる
http://pc.watch.impress.co.jp/docs/2002/0510/kaigai01.htm
【3月28日】【西川】DirectX 9注目の新テクノロジー「D-MAP」を理解する --その1
http://pc.watch.impress.co.jp/docs/2002/0328/dmap1.htm
【3月29日】【西川】DirectX 9注目の新テクノロジー「D-MAP」を理解する --その2
http://pc.watch.impress.co.jp/docs/2002/0329/dmap2.htm


バックナンバー

(2002年5月15日)

[Reported by 後藤 弘茂]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
個別にご回答することはいたしかねます。

Copyright (c) 2002 impress corporation All rights reserved.