このページの本文へ

【ISSCC 2005 Vol.4】幻に終わったCell版GPUとは?――Cellプロセッサーから見えてくるPlayStation3の姿 その1

2005年02月11日 17時12分更新

文● 西川善司(トライゼット)

  • この記事をはてなブックマークに追加
  • 本文印刷
CellプロセッサーのSPEは、パソコン用GPUのプログラマブルシェーダーユニットに似ている。PlayStation3の設計では、CellをGPUとして使う可能性もあっただろうが、実際にはNvidiaベースのGPUが採用された
CellプロセッサーのSPEは、パソコン用GPUのプログラマブルシェーダーユニットに似ている。PlayStation3の設計では、CellをGPUとして使う可能性もあっただろうが、実際にはNvidiaベースのGPUが採用された

おぼろげに見えてきたPlayStation3の姿

Cellプロセッサーに8基搭載される“SPE”(Synergistic Processor Unit)は、パソコン用最新GPUのプログラマブルシェーダーユニットに非常によく似ている。しかしそのプログラマビリティー面のポテンシャルは、GPUのそれを凌駕している。このことから“PlayStation3はCellプロセッサーコアを、グラフィックスプロセッサー(GPU)にも転用するのではないか”という憶測が生まれたこともあった。

実際Cellプロセッサーに関連した特許ドキュメントには、別掲の図1、2のようなブロックダイアグラムが示されている。これはCellプロセッサーでグラフィックス処理を行なう仕組みを実装したときの模式図だ。なお図中の“PU”は第1世代Cellプロセッサーの“PPE”(Power Processor Element)、“APU”はSPEのことである。

図1:CellコアベースのGPUの構成例その1
図1:CellコアベースのGPUの構成例その1

図1は、1基のCellコア(左側)をメインプロセッサーとして、もう1基のCellコア(中央)をGPU的にカスタマイズした構成の図である。ちなみに特許ドキュメントの時点では、Cellプロセッサーは1PPE+8SPEを1コアとして、4コアを1チップに集積するマルチコア構成を前提としていた。そのためメインプロセッサー側は、1PPE+8SPE(APU)の構成が描かれている。

図2:CellコアベースのGPUの構成例その2。いずれも4コアのマルチコアプロセッサーとなっている。PlayStation3開発初期には、この構成も検討していたと思われる
図2:CellコアベースのGPUの構成例その2。いずれも4コアのマルチコアプロセッサーとなっている。PlayStation3開発初期には、この構成も検討していたと思われる

図2の左側に描かれたCellコアは、アプリケーションプロセッサー(メインCPU)+ジオメトリープロセッサー的に活用されることようだ。この場合、SPE(APU)のいくつかは現行GPUのプログラマブル頂点シェーダー的に活用されるのであろう。右側のCellコアはピクセルレンダリングパイプライン専用に構築されたものだ。こちらのSPE(APU)は、GPUにおけるプログラマブルピクセルシェーダーユニットの役割を持つ。

これらの構成はCellプロセッサーベースのゲーム機、すなわちPlayStation3のデザインとして、一時期はかなりの現実味を帯びていたようだ。しかし2004年12月にPlayStation3のGPUに米エヌビディア(Nvidia)社の技術を採用することが発表され、幻と消えた。ISSCC 2005に参加しているCellプロセッサーの関係者に聞くと、CellベースのGPU開発は結局断念されたのだという。裏を返せば、ここ1~2年の間はPlayStation3専用のGPUコア探しが行なわれていたと推察できる。

なぜGPUがCellコアベースでなくNvidiaベースとなったのかという点については、関係者からは答えを得られなかった。ただしCell関係者達は口をそろえて、「Nvidiaに決まった時は驚いた」と述べていることと、Nvidia側からの情報では「最初のコンタクトは2年ほど前からだった」ということを照らし合わせると、GPU選択がかなり極秘裏に進められていたことがうかがい知れる。

PlayStation3のGPUには利用されなかったCellプロセッサーだが、Cell関係者によれば、開発実験室レベルでは基本的な3Dグラフィックスをレンダリングするテストプログラムが、今回発表されたCellプロセッサーを用いて実際に動いているとのことだ。つまり現行の1PPE+8SPEのCellプロセッサーコアでも、GPUとしてのポテンシャルは十分に持っているということの証になる。

これは、たとえばCellプロセッサーをカーナビゲーションシステムなどに応用する際には、説得力のある事例となるだろう。現在のカーナビではCPUのほかに、3Dグラフィックス表示用に3Dアクセラレータのようなコンパニオンチップを組み合わせることが多い。これをCellプロセッサー1個に置き換えられれば、シンプルな構成にできる。ISSCC 2005でそのようなデモ映像が公開されなかったのは、それが“PlayStation3の映像”と誤解されるのを避けるためと推察される。

SPEはプログラマブル頂点シェーダーとして活用される?

PlayStation3におけるCellプロセッサーの位置づけを考えると、Cellプロセッサー内のSPEに3Dグラフィックス生成の頂点処理を任せるのかという疑問が出てくる。より具体的に言えば、“PlayStation3はCellプロセッサー内の8SPEをプログラマブル頂点シェーダーとして活用し、ピクセルパイプラインのみをNvidiaベースのGPUに任せるアーキテクチャーなのか?”ということだ。この可能性は十分ありうる。

第1の問題は、“SPEがプログラマブル頂点シェーダーとして活用できるだけのポテンシャルを持っているか”ということだが、結論からいえばYesと言える。SPEは16Wayの128bit SIMD演算を基本としたRISCプロセッサーである。SPEのデータフローも、4×32bitが基本の32bit単精度浮動小数点実数4個からなる、ベクトル演算処理に特化した仕様になっている。

SPEはあくまで汎用RISCプロセッサーであると、ソニー(株)、米IBM社、(株)東芝の3社連合は強調する。しかし分岐制御を高効率化するためのハードウェア支援機構がほとんどない、1次キャッシュがない、プログラム実行は基本的に256KBのSPE内蔵メモリー“ローカルストアー”内で実行されるといった特徴から考えると、次から次へとやってくるデータストリームを、独立性の高い閉じたプログラムタスクで逐次処理し、ストリーム出力する用途に向いていることは明らかだ。そうしたプログラムタスクは例と言えば、音声処理や映像処理、3Dグラフィックスではジオメトリー処理(頂点ストリーム処理)が挙げられる。

SPEはベクトル演算だけでなく、多彩なスカラ演算や論理演算、ビットシフト/ローテート、分岐制御、128個もの汎用レジスターという、高度なプログラム実行能力を備えている。ポテンシャル的には現行GPUのプログラマブル頂点シェーダーを遙かに凌駕する。しかしCellプロセッサーの8基のSPEは強力だが、8基すべてが汎用演算用途向けというのでは、あまりにも現在主流のソフトウェアパラダイムからかけ離れすぎている。たとえば一般的なゲームエンジン内のどの処理系ならば、8基のSPEで分散処理させると効果的なのか? すぐには思いつかない。

「だからこそ8SPEが新たなソフトウェアパラダイムを切り開くのだ」と言う考え方もあるだろうが、かつてPlayStaion2のCPU“Emotion Engine”の“Vector Unit(VU)”が、その論法ではうまく扱えなかったことは記憶に新しい。それならば適材適所として、複数のSPEをプログラマブル頂点シェーダーとして活用する……というのは、ごく自然な発想と言えるのではないか。

頂点シェーダーとしてはGPUの10倍以上の性能

PlayStation3に搭載されるCellプロセッサーの8SPEすべてが、常にプログラマブル頂点シェーダーとして活用されるのかと言えば、おそらくそうではないだろう。

第1世代Cellプロセッサーは4GHz超で動作すると発表されたが、実験室レベルでの最大クロック周波数が、量産製品のスペックになるとは考えにくい。おそらくPlayStation3に搭載されるCellプロセッサーは、3GHz~4GHz程度のクロック周波数になるだろう。その場合、8SPEをすべて頂点処理にあてたケースを試算してみると、4GHzで80億頂点/秒、3GHzでも60億頂点/秒となり、カナダATI Technologies社やNvidiaのハイエンドGPUの10倍以上の値になってしまう(GeForce 6800 Ultraのジオメトリー性能は6億頂点/秒)。性能が高くて悪いことはないが、現実的かつ常識的なピクセルレンダリングパイプライン性能とのバランスを考えると、これはナンセンスといえるほど高すぎる能力だ。

Cellプロセッサー内部のバスにリングバスを採用したことにともなうレイテンシーの影響などを考慮して、実効性能はもっと低いとしても、SPEが4基もあれば事足りる。いずれにせよ、SPEがプログラマブル頂点シェーダーとして活用される場合でも、その個数は固定的ではなく、実行させる頂点シェーダープログラムの複雑性やグラフィックスそのものの複雑性に応じて、プログラマブル頂点シェーダーとして動作するSPEの個数は、可変にできるシステムとなるだろう。

SPEのダイ写真。大きさは2.5mm×5.8mm。SPE 1基あたりのトランジスタ数は2100万と巨大で、これだけでPentium III(Coppermine)やGeForce 256に匹敵する
SPEのダイ写真。大きさは2.5mm×5.8mm。SPE 1基あたりのトランジスタ数は2100万と巨大で、これだけでPentium III(Coppermine)やGeForce 256に匹敵する

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン