|
会場:Los Angels Convention Center
(1) UMAを採用せず、CPU(CELLプロセッサ)に接続されるメインメモリをXDR DRAMを256MB、グラフィックスチップ(GPU:RSX、以下RSX-GPU)にGDDR3 SDRAMを256MB……という構成にしたこと。 (2) NVIDIA社長のJen-Hsun氏のプレゼンでRSXが、自身のビデオメモリ容量256MBを超える512MBのレンダリングが行なえるという記述があったということ。
この2点だ。
お相手は、NVIDIAの全てのGPU開発に携わる「GeForceの父」の異名を取るチーフ・サイエンティストのDavid Kirk氏だ。 ■ PS3のRSX-GPUはメインメモリへもレンダリングが可能
さらに大量のデカールテクスチャの他に、法線マップまでペアに活用される次世代機の3Dグラフィックスではビデオメモリをかなり消費する。 メインメモリとビデオメモリが統合された形で512MBあるXbox 360では、シーンや状況に応じて512MBの範囲で自在にグラフィック用途とその他の用途で振り分けられる。ところがPS3では256MBの境界があるために自由度の面でXbox 360に劣るのではないか……という疑問が浮上する。 これについてKirk氏はこう説明する。 「RSXはCELL側のメインメモリであるXDR DRAM側をレンダーターゲットとして利用できるのだ。だからそうした制約はほとんどないと思っていい」つまり、RSXは、GDDR3 256MB+XDR 256MB=512MBの、トータル512MBの領域をビデオメモリとして活用することが理論上は可能と言うことだ。これが自ずと(2)の謎を解き明かすことになる。 そう、PCをよく知る読者であればPCでいうころのAGPメモリ……GART(Graphics Aperture Remapping Table)という機構を利用して、GPUがメインメモリをローカルビデオメモリ感覚で直接アクセスできる機能……に近いもの……と考えればこの概念がイメージしやすいはずだ。
それでは、現実的に、メインメモリをGPUに直結されるGDDR3ビデオメモリと同等の活用ができるかどうかという話をすれば、それは難しいと言わざるを得ない。
RSX-GPUはCELLとFlex I/Oで接続され、CPU→GPUの下り方向が20GB/s、CPU←GPUの上り方向が15GB/secの帯域に制限される。CPUからXDRメインメモリへの帯域は25.6GB/secあるが、結局、GPUからメインメモリへのレンダリングは上りバス帯域の15GB/secに制限されてここがボトルネックとなってしまう。 さらにいえば、ブロック図中の「BUS」と記載された部分はPPEと8基のSPEをバケツリレー式に結んだ「Element Interconnect Bus」リングバス構造をしておりここを通る際のレイテンシーはゼロではない。
結局、完全にビデオメモリのように取り扱うのは難しいということだ。具体的に言えば、シーンをテクスチャにレンダリングしてこれをさらにそのシーンのレンダリングに適用するようなマルチパスレンダリングのシナリオにおいて、そのレンダーターゲットとしてXDRメインメモリだけを活用するとかなりパフォーマンスが低下してしまうということだ。 ■ PS3にはSPEというサブGPUがあるじゃないか~RSX-GPUと7基のSPEがSLIを実現する? それでは、結局、このPS3のアーキテクチャにアドバンテージはないのだろうか。 「そんなことはない。CELLプロセッサ内の7基のSPE(Synergistic Processor Element)とRSX-GPUは共同作業ができる。メインメモリ上のグラフィックス関連データにSPEが前処理を施したり、あるいはRSX-GPUからのレンダリング結果をポスト処理的な映像加工を施すことだってできる(Kirk氏)」。 RSX-GPUがCELLプロセッサのメインメモリにアクセスできると言うことは、裏を返せば、メインメモリはいわば、CELLプロセッサとRSX-GPUの共有メモリという見方もできる。PS3ではこのアーキテクチャがアドバンテージとなる。 既にここで基本的な解説は行なっているが、CELLプロセッサにはSPEと呼ばれる、4要素の32ビット浮動小数点実数ベクトル演算に特化した128ビットSIMD型RISCプロセッサが7基搭載されている。 このSPE自身のポテンシャルは、SCEの性能指標を信じてよいものならば、たとえばSPE1基に頂点処理を行なわせると3.2GHz動作時で8億頂点毎秒となり、これは一般的なGPUの複数個分のプログラマブルシェーダに相当する。さらにプログラマビリティに関してはフルスペックのC++が動作するレベルであり、プログラマブルシェーダを遙かに凌駕している。
既に、SCEでは複数個のSPEをGPU的に活用するソフトウェアグラフィックスエンジンも実験的に完成させており、先日開催されたプレスカンファレンスでも、SPEだけでレンダリングしたグラフィックスを公開した。
たとえば、図のような水面に周囲の情景が映り込むシーン。
こうしたシーンの場合、シーン全体のレンダリングの前に、水面を境に反転した水面下の位置からのシーンをテクスチャとしてレンダリングする(反射マップの生成)。
この反射マップをもし、CELLプロセッサ側のSPEでRSX-GPUの動作と並行してレンダリングすることができれば、RSX-GPU一人で全てをやるよりも処理時間の短縮になる。すなわちパフォーマンスが向上する。 RSX-GPUが最終的なレンダリングを行なう際には、XDRメインメモリからこの反射マップを取り出すことになり、これはFlexIOのGPUへの下り帯域である20GB/secに制限される。しかし、トータルで見れば十分な性能稼ぎになるはずだ。 この場合、メインメモリ側にもビデオメモリ側にもジオメトリセットやテクスチャセットをロードしておく必要があるが、反射マップのような用途の場合、もともと歪ませて表示したりするので、モデル精度が粗かったりテクスチャ解像度が低くてもさしたる問題にはならない。まあ、ここで示したものは説明のための例でしかないが、このようにレンダリングをRSX-GPUとSPEの共同作業で行うというアイディアはかなりユニークなフィーチャーだと言える。
NVIDIAは複数のGPUでレンダリングを行なう技術「SLI」をもっているが、このPS3の仕組みは、ある意味、セミ版SLIといえるかもしれない。 ■ SPEでレンダリングした映像の画像処理を行なうこともできる
高速に動いているようにぶれて見せるモーションブラー、ピントが合ってないようなぼやけた映りにする被写界深度のシミュレーション、あまりにも強く輝いているために光が溢れ出して見えるブルームエフェクトなどの処理においては、RSX-GPUがXDRメインメモリ側にシーンをレンダリングし、このフレームに対して、複数のSPEがよってたかって画像加工処理する……という流れになるだろうか。
あるいは、先ほどの反射マップの考え方と同じに、解像度の低いブラー用、ほやけ用、ブルーム用のフレームをSPEで作成し、これを最終段階でRSX-GPUにてレンダリングした表示フレームと合成する……といった流れも考えつく。どちらが効果的か、性能が高いか、はケースバイケースだ。 ■ SPEでレンダリングした映像の画像処理を行なうこともできる
RSX-GPUには既にプログラマブル頂点シェーダがあるため、SPEで頂点処理をする意味がないように思えるかもしれない。しかし、SPEの高いプログラマビリティをもってすれば、RSX-GPU側のプログラマブル頂点シェーダにはできない高度な処理系を実装することができる。 たとえば、次世代Windowsのグラフィックサブシステムでも標準実装が見送られてしまったテッセレータをSPE上のソフトウェアで実装するアイディアを思いつくだろう。ちなみにテッセレータとは特定のメソッドでポリゴンを自動分割する仕組みのこと。 テッセレータの応用はいくつかあって、最も基本的な活用は、少ない頂点で与えられた3Dモデルをベジェ曲線関数などに従ってテッセレータを適用して多ポリゴンモデルに昇華させる場合だ。
もう少し高度なのは、凹凸を表現した高さマップ・テクスチャに従って3Dモデルを粘土細工のように変形させる活用法もある。これは特にディスプレースメントマッピング(変移マッピング)という。
こうしたテッセレータの処理系がGPUにインプリメントされない理由はいくつかあるが、理由の筆頭としてあげられているのは、GPU側でテッセレータを実装してしまうと、ゲーム処理系とは分離されてしまい、ビジュアルとゲーム処理の整合性がうまくいかなくなるため。 たとえばディスプレースメントマッピングで角をキャラクタに生やせた場合。ゲームの当たり判定はCPUのソフトウェア処理で実践するのが一般的だ。GPU側の処理系で見た目的に角を生やしたとしても、CPU側で管理するキャラクタモデルには角が生えていないため、角には事実上当たり判定が行なえない。ところが、SPEはCPUの一部であり、SPEで角を生やせば、この角を生やしたモデルに対しても当たり判定の処理が行なえる。
この他、視点からの距離に応じて描画ポリゴン数を増減させる動的なLODの実装もSPEを活用して行なえるかもしれない。
■ SPEで物理シミュレーションをさせて結果をグラフィックスに反映させる 「SPEとGPUの共同作業を活用すれば、グラフィックスと相互作用する物理シミュレーションも可能になるか」という問いかけに対してKirk氏は「十分可能だろう」と答える。 水面の“さざ波”表現は現在、法線マップのアニメーションで表現されることが多い。このさざ波の波動シミュレーションは、さざ波の高さをテクスチャ化したハイトマップ(高さマップ)の次元で波動物理シミュレーションを行ない、その結果から法線マップを生成して、これを最終的なレンダリングに使用する。
これまではこうしたテクスチャベースの波動シミュレーションをGPUで行なっていたが、これをCELLのSPEでRSX-GPUと並行作業で行なえればパフォーマンスアップに結びつく。これもやっている内容自体は違うが、考え方としては、最初の反射マップの例と変わらない。
アーキテクチャ・ブロック図上はメインメモリとビデオメモリとで分断されてしまった形のPS3だが、CELLのSPE達がグラフィックス処理に参加できる可能性が示唆されたことは、「PS3でできること」の可能性を大きく広げたように思える。
もちろん、CELLのSPE、7基全部がグラフィックス処理にかり出されるケースは少ないと思われるが、SPEのグラフィックス処理への活用が、RSX-GPUのポテンシャルを超えた映像を作り出すことに結びつくことは間違いない。
□ソニー・コンピュータエンタテインメントのホームページ http://www.scei.co.jp/ □関連情報 【5月17日】3Dゲームファンのためのプレイステーション 3基本講座 ~プレイステーション 3のスペック表の読み方 http://game.watch.impress.co.jp/docs/20050517/ps3.htm 【3月16日】3DゲームファンのためのPS3発表直前予習講座 ~PS3はOpenGL/ES“2.0”ベース http://game.watch.impress.co.jp/docs/20050316/ps3.htm (2005年5月19日) [Reported by トライゼット西川善司]
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp Copyright (c)2005 Impress Corporation, an Impress Group company. All rights reserved. |
|