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

PlayStation 3のグラフィックスチップはCellベース?




●大間違いの先週のCellの記事

 先週、「SCEIのPlayStation 3の心臓「Cell」の正体」を書いたが、これが『お・お・ま・ち・が・い』。なんと、演算ユニットの数を、数え間違えてしまっていた。

 Cellは多くのサブプロセッサ「Attached Processing Unit (APU)」で構成されるが、このAPUの中に含まれるSIMD演算ユニット数は4個ではなく1個だった。つまり、先週の記事では、4Wayのスカラーユニットに分かれて描かれたSIMD構成ユニットを、4個のSIMDユニットと勘違いしていたわけだ。

 これが、ほとんどバカをさらけ出すような間違いなのは、気づくべきポイントが山ほどあったからだ。例えば、レジスタからのポートがリード3でライト1なのは、3オペランドフォーマットだからだろうし。そもそも、原文もAPUがSIMDと書いてある。これだけ壮大な間違いをすると、自分でもあきれてしまう。本当に申し訳ない。ご指摘下さった方、ありがとうございました。

 下が間違い推測ブロック図と、正解の推測ブロック図だ。

AttachedProcessing Unit(APU)
PDF版はこちら

 そして、問題は演算ユニットの数が異なることで、ガラガラと全ての推測値が変わってしまうこと。まず、32GFLOPSの性能をAPUの演算ユニットが達成するのに必要な動作周波数は変わる。4wayのSIMD演算ユニットの場合だと、4GHzが必要となる。

 これが8GHzでないのは、積和算なら1命令で2オペレーションと計算できるからで、最近の多くのCPUのスペックは積和算で数えた数値になっている。この積和算で2オペレーションという点も、昨年3月の記事「PlayStation 3の核となるCellは全く新しい概念のCPU」で自分で指摘しておきながら、今回は、すっかり抜け落ちていた。

 そして、4GHzとなると、前回のレポートでの推測に疑問符が出てくる。というのは、90nmプロセスで4GHz駆動した場合は、消費電力が非常に大きいからだ。一般に、周波数を下げて並列度を上げた方が、性能当たりの電力消費を下げられる。駆動電圧を下げたり、リーク電流を抑える工夫がしやすくなるからだ。なので、PlayStation 3のCellが、想定より多くのAPUを搭載しているという可能性も出てきた。

●Cellアーキテクチャのグラフィックスチップ?

Visualizer(VS)
PDF版はこちら
 また、間違いという意味では、去年のこのコラム「PlayStation 3のグラフィックスチップはこんな構成になる」での想定が大きく崩れた部分もある。それはPlayStation 3のグラフィックスチップだ。特許文書では、Cellアーキテクチャベースのグラフィックスチップについても言及している。つまり、SCEIはCellアーキテクチャをベースにしたグラフィックスチップを考えているように見える。

 Cellアーキテクチャのグラフィックスユニットは「Visualizer(VS)」と呼ばれ、通常のCellのプロセッサコア「Processor Element(PE)」に、ピクセルエンジンとイメージキャッシュを加えたものとなっている。これを見ると、ジオメトリ処理だけでなく、ピクセルパイプでのシェーダ処理もAPUでやらせようとしているように見える。

 PlayStation 3のGPUがこうした構成になっているとすると、昨年のこのコーナーで、Cellベースのピクセルパイプはないだろうと予想したことは、全く外れたことになる。じつは、昨年の予測の根拠は、業界関係者からSCEIがCellベースではないグラフィックスチップを検討しているという話を聞いたためだった。Cellで3D全体の処理をやると予想したメールをいくつかいただいたが、その方達の意見が正しいと思われる。

 実際、今になって見ると、Cellアーキテクチャで3Dグラフィックスパイプライン処理を行なうというのは、3Dグラフィックスの最新トレンドを考えると、理にかなっている。というのは、過去1年でGPUはシェーダ(プログラム)指向へとがらりと変わり、プログラム性が3Dグラフィックスの最重要なポイントとなりつつあるからだ。2005年の3Dグラフィックスでは、ジオメトリ処理とレンダリング処理の両方で高度なプログラム性が不可欠になっていると想像される。

 実際、プログラマブルGPUがやろうとしている処理の大半は、APUでも高効率に処理できる。そもそも、DirectX9 GPUが搭載するProgramable Shaderの中核部分は、APUが備えるのと同じSIMD演算ユニットだ。例えば、Vertex Shaderの正体は単精度(32bit)浮動小数点データ×4wayの128bit幅SIMD浮動小数点演算ユニットで、年末のShader 3.0でテクスチャ(メモリ)アドレスユニットが加わる。だから、APUの128bit幅SIMD浮動小数点演算ユニットで同じ処理ができる。

 Pixel Shaderの中核は、SIMD浮動小数点&整数演算ユニット+テクスチャアドレスユニット+各種フィルタリング回路。演算ユニットの精度は、2005年時点では32bit単精度x4wayの128bit幅SIMDの見込み(現在はGeForce FXだけが32bit)で、これも、APUで同じ処理ができる。

●データによって異なるグラフィックスに必要なAPUの数

 では、3Dグラフィックスにどれだけの処理ユニット(APU)が必要となるのだろう。

 ASICであるGPUの動作周波数は、2005年の時点でようやく1GHz台と言われている。おそらく、Cellアーキテクチャはその2~3倍の周波数に達していると思われる。だから、同じユニット数なら、シェーダの演算処理に関してはCellベースの方が2倍以上の処理性能になる計算になる。

 ジオメトリ処理に必要な演算の量は、ハイヤーオーダー(高次)サーフェスをサポートするかどうかで大きく変わる。

 例えば、ハイヤーオーダーサーフェスを重視しないGeForce FX 5800(NV30)は、旧来の数え方で3ユニット分程度のVertex Shaderしか搭載していない。Vertex Shaderの比重が少ないのは、現状では、3Dグラフィックス処理全体でのジオメトリ処理の比率が下がっているからとNVIDIAは説明する。2005年の時点でも、ポリゴンベースの場合はジオメトリ処理量は急増しないだろうと言われる。そのため、Cellアーキテクチャでも、3~4個程度のAPUを割り当てれば対応できそうだ。

 しかし、ハイヤーオーダーサーフェスが加わると話が変わる。例えば、ハイヤーオーダーサーフェスのサポートに熱心なATIやMatrox Graphicsでは、合計4つのVertex Shaderを搭載する(ATIはさらに各Shaderにスカラ演算ユニット1基も実装する)。これは、今の3Dアルゴリズムでは「テッセレータ(平面分割ユニット)によって、カーブサーフェス(曲線で構成されたサーフェス)をポリゴンに変換すると、膨大な数のポリゴンが生成されるデータ爆発が起こるからだ」とATIのDavid E. Orton(デビッド・E・オートン)社長兼COOは説明する。もちろん、カーブサーフェスを直接レンダリングするアルゴリズムを編み出せば、これも話は変わってくるが……。

 SCEIがハイヤーオーダーサーフェスのサポートに熱心のように見える(PSPですらNURBSをサポート)ことを考えると、当然、APU向けにカーブサーフェスのライブラリを用意すると想像される。アルゴリズムが複雑なNURBSのような特殊なサーフェスの演算とテッセレート、そして増大したポリゴン処理が加わると、はるかに多くのAPUが必要となるケースが出ると想像される。

 このように、ジオメトリの処理量が、データタイプによって大きく異なることを考えると、PlayStation 3ではこの処理はCellプロセッサに割り当てるのが自然のように見える。フレキシブルにAPUを割り当てられる幅が広がるからだ。実際、ジオメトリ処理については、すでにPlayStation 2時代からCPU「Emotion Engine」の汎用VLIWプロセッサ「VU」で行なっていた。VUもAPU同様にジオメトリ処理専用ではなく他用途に使うことができる(もっとも、実際にはGT4ですら、物理シミュレーション演算はVUではなくEmotion EngineのMIPS CPUコアを使う予定で、必ずしもVUは汎用的に使われてはいない)。

 では、レンダリング処理側ではどうなるのだろう。

 レンダリング過程で必要な演算性能を左右する最大の要素は、シェーダプログラムの規模だ。シェーダが重ければそれだけ多くのAPUをテクスチャ&レンダリング処理に割り当てる必要が出てくる。ピクセル側のシェーダプログラムは、リアルタイムCGでも、今後急激に増大の一途を辿ると言われている。そのため、PCでは、2005年のGPU世代では16個相当のShaderをレンダリング処理用に使える構成になっていると推定されている。

 もし、PlayStation 3のグラフィックスチップが、4個のAPUを搭載するVSを4個搭載しているとするなら、最大16個のAPUをレンダリング処理に使えることになる。処理能力としては、十分に対応できることになる。

●3Dに特化したアルゴリズムの実装が必要

 こうして見ると、3Dグラフィックスでのシェーダプログラムの実行は、APUで処理しても、GPUと同様の効率を達成できる。PlayStation 3でもAPUの数さえ確保できればいいことになる。しかし、3Dグラフィックス処理の場合、ポイントはプログラマブルな演算ユニット(Shader)以外の部分にあるとGPU業界関係者は口を揃える。

 過去1年、GPUを集中的に取材して来て理解できたのは、GPUベンダーが3D専用アルゴリズムに膨大な技術の蓄積を持ち、その実装に膨大なトランジスタを割いていることだった。ラスタライズのように決った処理や、隠面処理やフィルタリング、テクスチャやZなどの圧縮&キャッシュアルゴリズムなどの多くを、GPUは専用ハードウェアで実装している。それは、GPUの処理の効率化のためだ。

 一例を挙げると、パイプライン上流での隠面除去がある。隠面除去をパイプラインの下流で行なうと、せっかくレンダリングしたピクセルが破棄されるという無駄が大量に生じる。従来だと「通常のゲームでは3~4回ピクセルをオーバードローするため、3~4倍のレンダリング(能力)が必要となっていた」(ATI, Eric Lundgren氏, Product Manager)という。そこで、最新GPUではピクセルパイプに入る前の段階でオブジェクトをサブデバイドして、隠面消去(のかなりの部分)を行なっている。それにより「データのプロセッシングとメモリアクセスを大幅に減らしている」(ATI Research, Andrew B. Thompson氏, Director, Advanced Technology Marketing)という。

 もうひとつ例を挙げると、キャッシングアルゴリズムもGPUでは異なる。GPUでは、データ量が膨大なテクスチャのキャッシングが重要になりつつあるが「テクスチャキャッシュのアルゴリズムは、CPUよりはるかに複雑で高度なものが必要になる。そのため、テクスチャに合った、プレイスメントやエイジングなどのアルゴリズムを多数開発した」とATI ResearchでNINTENDO GAMECUBEを担当したGreg Buchner氏(Vice President, Engineering)は説明する。

●3Dグラフィックス処理の要は効率の向上

 GPUベンダーは、このように、GPUにプログラム性を加えるだけでなく、3Dに特化したアルゴリズムをハードウェアで膨大に加えてきた。それによって、無駄を削って処理量や必要メモリ帯域を数分の1にすることで、GPUは、ようやく今のパフォーマンスを達成している。「GPUは、あくまでも特殊目的用プロセッサだ。だから、プログラマブルになっても、まだ3D専用のロジックを多数搭載しており、だから汎用プロセッサより効率が高い」(NVIDIA, David B. Kirk氏, Chief Scientist)というわけだ。

 そのため、PlayStation 3が、もしCellアーキテクチャベースのGPUを搭載するとしたら、こうした3Dに特化したアルゴリズムをどう実装するかが、注目となる。ソフトウェアで実装しようとすると、どうしてもトランジスタ数当たりの性能は落ちてしまう。

 もっとも、SCEIはこの点を理解していると思われる。ある業界関係者は一昨年、SCEIがGPUベンダーの技術も検討(?)していると語っていた。採用するつもりだったのかどうかはわからないが、GPUの技術トレンドを研究しているのは確からしい。だとすると、3Dに特化したハードウェアをそれなりに備えているのではないだろうか。

 現状では最新ゲーム機の中でPlayStation 2が一番グラフィックス的に見劣りがする。その最大の理由は、3Dグラフィックスの技術トレンドを多少なりとも外してしまったためだ。ジオメトリ処理をプログラマブルにしたのは先進的だが、バンプマップすらハードウェアサポートしないレンダリングパイプは弱体過ぎると多くの人が指摘していた。しかし、SCEIは、次回は3D技術トレンドにきっちり合わせて来るのではないだろうか。

 ちなみに、興味深いことにPC向けのGPUも、2005年には、似たようなアーキテクチャになっている可能性が高い。下が、ATIのOrton氏やThompson氏、NVIDIAのKirk氏、3DlabsのBrian C. Duckering氏(Senior Product Manager)などの説明を元に想定した2~3年後のGPUの図だ。この時点では、Vertex ShaderとPixel Shaderの区別はなくなり、汎用性の高い統合Shaderになっているという。アレイ状に並んだ統合Shaderが、ジオメトリかレンダリングのどちらかの処理を行なう。

 こうなると旧来の3Dパイプライン構造は、崩れることになる。しかし、それと同時に3Dパイプ専用のロジックもSIMDアレイの周囲に備える。PlayStation 3のグラフィックスも、方向としては、これに近いものになるのではないだろうか。

2年後のGPUの想定図
PDF版はこちら

□関連記事
【5月29日】SCEIのPlayStation 3の心臓「Cell」の正体
http://pc.watch.impress.co.jp/docs/2003/0529/kaigai01.htm
【2002年3月28日】PlayStation 3のグラフィックスチップはこんな構成になる
http://pc.watch.impress.co.jp/docs/2002/0328/kaigai02.htm

バックナンバー

(2003年6月2日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


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

Copyright (c) 2003 Impress Corporation All rights reserved.