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

なぜLarrabeeベースのPS4はハードルが高いのか




●最初の世代のLarrabeeをゲーム機に載せるのは困難

 ソニー・コンピュータエンタテインメント(SCE)は、次世代のゲームコンソール(据え置きゲーム機)PLAYSTATION 4(PS4)のCPU&GPU選定を進めている。選定の中で、SCEはPS3に使っているCell Broadband Engine(Cell B.E.)を拡張する方向だけでなく、他のCPUを使うことも検討している。そして、その中には、Intelのスループットプロセッサ「Larrabee(ララビ)」をCPU&GPUとして使う案もあった。

 Larrabeeは、最初の世代で最大16コアと推定される多数のCPUコアを集積したメニイコアCPUだ。16wideとSSEの4倍のベクタ演算ユニットを備え、GPUと同じように3Dグラフィックス処理を行なうことができる。CPUコア自体はx86互換であり、通常のCPUとして扱うことが可能だ。

 現段階でも、SCEはPS4の心臓部をどうするのか決めかねていると言われる。PS4のプロセッサアーキテクチャ選択は、PLAYSTATIONが再浮上できるかどうかのカギを握る。そのため、Cell B.E.かLarrabeeか、それとも別なCPU&GPUなのかは、重要な問題だ。

 SCEは、おそらく上層部の意向があってLarrabeeを検討していた(あるいは、している)。しかし、実際には、最初の世代のLarrabeeをPS4に使うことは難しいだろう。Larrabeeが2世代ほどを経て、アーキテクチャもソフトウェア環境もこなれた頃になれば話は別だ。しかし、現在見えているLarrabeeを、そのままゲーム機に載せると、ハードウェアとソフトウェアの両面で、膨大な苦労を強いられることになりそうだ。だが、Larrabeeがこなれるのを待っていては、PS4など次のゲーム機の世代に間に合わない。

 なぜ、現在のLarrabeeをすぐにゲーム機に使うことが難しいかというと、それはLarrabee自体が新参者だからだ。全く新しいコンセプトのプロセッサであり、実際のアプリケーションを走らせる洗礼を受けていない。そのため、アーキテクチャ上の問題が噴出する可能性がある。

 Cell B.E.もコンセプトが明確でアーキテクチャ的にはきれいにまとまっていたのに、ソフトウェア&ツール側が間に合わないため、プログラミングが難し過ぎると批判を受けた。Larrabeeも、それとは違うが、やはり挑戦的な側面を抱えている。

Larrabeeの概要
PDF版はこちら

●似て非なるCell B.E.とLarrabeeのアーキテクチャ

 SCEがCell B.E.の代わりにLarrabeeを使えないかと検討するのは、自然な流れでもあるし、皮肉でもある。というのは、Larrabee自体が、Intel版のCell B.E.だったからだ。

 同時期のPC向けCPUより1桁高い浮動小数点演算性能を実現するCell B.E.のアーキテクチャが明らかになった時点で、CPU業界は揺れた。その前の段階で、消費電力の壁やILP(Instruction-Level Parallelism)の壁のために、CPUコアをどんどん大きくして、ユニプロセッサの整数演算性能を高めて行く路線は崩れていた。そこで、Intelも大型CPUコアの開発計画を破棄、代わってCPUコア数を増やす方向へと転じた。Intelはその時、従来の大型汎用CPUコアを複数個に増やすマルチコア路線と並行して、Cell B.E.のようにデータ演算性能を追求した小型CPUコアを多数載せるメニイコア路線の開発もスタートさせた。その結果、産まれたのがLarrabeeだった。

 つまり、Cell B.E.が提示したスループットコンピューティングを、Intelなりのアプローチで実現しようとしたら、Larrabeeになった。そのため、Cell B.E.とLarrabeeには共通点も多い。データ演算に最適化しながらも汎用性を保った小さなCPUコア、各CPUコアに分散したローカルメモリ、CPUコア群を結ぶリングバスなどは、Cell B.E.とLarrabeeで共通している。

 とはいえ、Cell B.E. とLarrabeeには、アプローチにはかなりの違いもある。ベクタエンジンの構成、メモリアーキテクチャ、命令セットの拡張方法がそれぞれ異なる。

 Cell B.E.は、4-wideの短いベクタエンジンを実装しながら、スカラ命令も実行できる、汎用性の高いCPUコア「SPU(Synergistic Processor Unit)」を採用した。ストリームプロセッシングでは有効ではないキャッシュアーキテクチャは取らず、各CPUコアのメモリ空間はそれぞれ独立している。CPUコアは、2種類のヘテロジニアス(Heterogeneous:異種混合)マルチコアで、制御用にPowerPC系のCPUコア「PPU(Power Processor Unit)」と、データ演算用のSPUがあり、SPUは新しい命令セットとなっている。

 それに対してLarrabeeは、16-wideとGPU並に長いベクタエンジンを実装しながら、Pentium相当のスカラエンジンで汎用性も維持する。メモリはキャッシュアーキテクチャだが、キャッシュ命令を拡張することでストリームプロセッシングに対応できるようにした。CPUコアは1種類のホモジニアス(Homogeneous:均質)で、命令セットはIntelのx86命令セット(IA-32)を拡張する形で実装した。

 Cell B.E.と比べると、Larrabeeの方がよりデータ並列に振っている。ベクタを長くしてデータ並列を強めると、コントロールフローのムダが大きくなる。つまり、演算性能の効率の追求と柔軟性がトレードオフの関係にある。Larrabeeは、Cell B.E.より性能効率に傾いている。これは、Cell B.E.登場からの数年で、GPUの台頭などを受けて、CPU業界が演算性能の効率をさらに追求する方向へ向かった流れを受けているように見える。また、Larrabeeが、グラフィックス処理をGPUと同レベルにこなすことを目指しているためでもある。

 実際には、Cell B.E.も最初の頃のプランでは、Cell B.E.アーキテクチャをベースにしたグラフィックス向けプロセッサを作る計画があった。この点でも、実はCell B.E.とLarrabeeの方向性には似た部分がある。Cell B.E.の試みで実現しなかったものを、やろうとしていると言い換えてもいい。

PS3版Cell Broadband Engineの概要
PDF版はこちら

●未だ未知数のLarrabeeのグラフィックス処理効率

 Larrabeeをゲーム機に使う利点は、GPU並のグラフィックス性能とCPUとしての柔軟性をワンチップで実現できる点。つまり、1個のメニイコアプロセッサを、CPUとしてもGPUとしても使うことができる。より正確に言えば、GPU並のデータ演算性能を持つCPUの上で、グラフィックス処理もCPUのアプリケーションの1つとして走らせてしまうことができる。

 しかし、Larrabeeのこのアプローチには、現状ではまだトレードオフがあると推定される。それは、パフォーマンス/消費電力だ。Larrabeeは、CPUとしては極めて高いパフォーマンス/消費電力を達成する可能性が高いが、GPUと既存のグラフィックス処理でのパフォーマンス/消費電力を競った場合は疑問符がつく。Larrabeeの柔軟性は、グラフィックス処理の電力消費を押し上げてしまう可能性があるからだ。

 話は非常に単純で、ロジック回路の常として、機能が固定されたハードウェアは、常にプログラマブルなハードウェアより効率がいい。そのため、必ず実行しなければならない決まったタスクがある場合は、固定機能ハードで実装した方が、少ない電力で処理できる。既存の3Dグラフィックスは、グラフィックスAPIを経由するため、ほとんどの場合、決まって処理しなければならないタスクが含まれる。

 GPUは、そうしたタスクのために固定機能ハードウェアを多数載せている。そのため、3Dグラフィックスが、ある一定の枠に収まり、タスクが決まっている場合は、GPUの方が効率面で有利になるケースが出てくる。Larrabeeでは、ラスタライズやスレッド(あるいはストランド)のスケジューリングなど、ほとんどの部分をソフトウェアで実装する。言ってみれば、高スループットCPUの上に乗ったソフトウェアGPUだ。

 また、GPUは、テクスチャをヘビーに使う現在の3Dグラフィックスに合わせたデータパスの内部構造を持っている。しかし、Larrabeeの内部バスはCPUとしての柔軟性を重視した構造となっている。これも、Larrabeeに不利な点だ。

 そのため、Larrabeeで、ハイエンドGPUに匹敵するグラフィックスパフォーマンスを達成しようとすると、消費電力が非常に大きくなる可能性がある。決して電力効率のいいGPUにはならないだろう。これは、すでに消費電力が大きな問題となっているハイパフォーマンスゲーム機にとって、いい特性ではない。

GeForce GTX 280の概要(一部推定)
PDF版はこちら

●Larrabeeが本領を発揮するためには3Dグラフィックス自体の革新が必要

 この問題は、Larrabeeのソフトウェア面での難しさと表裏一体となっている。それは、Larrabeeが最終的にグラフィックスアーキテクチャの変革を目指しているからだ。Larrabeeアーキテクチャがグラフィックス処理で真の力を発揮できるのは、グラフィックスのソフトウェア層が新たな方向へと転換した時だ。既存の3DグラフィックスAPIの流れに沿っていると、Larrabeeは相対的にGPUと比べてパフォーマンス/消費電力の面で不利になる可能性が高い。

 LarrabeeとGPUの最大の違いは、Larrabeeがほとんど全てのグラフィックス機能をソフトウェアで実装するのに対して、GPUは固定機能ハードウェアや固定されたデータフローなどの専用的なハードウェア設計を残している点だ。そのためLarrabeeでは、グラフィックスを固定されたグラフィックスAPI(ハイレベルとローレベルどちらであっても)の枠を通す必要がない。ソフトウェアによって、今のグラフィックスAPIに代わる、自由なレンダリングエンジンを作ることができる。

 これは、ソフトウェアデベロッパにとって、グラフィックスを差別化するチャンスが生まれることを意味する。これまでのように、ハードウェアとAPIによって、同じような絵に固定されてしまうことがなくなる。完全に自由なハードウェアの上で直接走るレンダリングエンジンによって、これまでにないグラフィックスを作りだすことが容易になる。ボリュームレンダリングやレイトレーシングなどのレンダリング手法も簡単に実装できる。

 もし、3Dグラフィックスの流れが、規定のAPIをバイパスして、直接(あるいは直接に近い形で)ハードウェアを動かす方向へと向かうなら、Larrabeeは最強のアプローチになりうる。その時代に、もしGPUがまだ固定機能を多数残していたら、それらの機能は盲腸のようにお荷物になってしまう可能性もある。

 しかし、こうした変化が起きるには時間がかかる。アーキテクチャを理解して、その上で優れたレンダラーソフトウェアを書いてくれるデベロッパが揃って来ないと、Larrabeeのアーキテクチャは生きない。例えば、SCEがPS4を3年以内に出すとしたら、ソフトウェア側の態勢を整えるのは非常に大変だろう。対して、GPUは既存の3DグラフィクスAPIに最適化しており、ゲームなどのソフトウェアデベロッパも現状では、既存のAPIとGPUをフルに活かすように開発している。その状況では、Larrabeeの柔軟性は重荷になってしまう。

 こうした背景を見ると、Larrabeeを活かすことは、Cell B.E.を活かすことと、多少似通ったところがあることに気がつく。本領を発揮するためには、ソフトウェア側の転換を求めており、それができるデベロッパとそうでないデベロッパを選ぶ。

グラフィックスソフトウェアモデルの変化
PDF版はこちら
グラフィックスのレンダリングパイプラインの歩み
PDF版はこちら

●アムダールの法則がCPUとしてのLarrabeeに疑問符をつける

 グラフィックス以外の部分に目を向けても、Larrabeeには疑問がつきまとう。ゲーム機のプロセッサをLarrabee一本に絞り、LarrabeeのCPUコアをゲーム機のメインCPUとして使う場合、単体プロセッサのシングルスレッドの実行性能が問題になるからだ。

 ゲームプログラム本体のコードは、OSのコードと同じように、整数演算中心で小さな範囲での並列しかできず、基本的には逐次実行しなければならないコードがほとんどだ。

 ゲームであっても、「アムダールの法則」(タスク中の逐次実行をしなければならない部分の比率が、タスク全体の実行時間を制約する)が生きている。そのため、逐次に実行しなければならないシーケンシャルなコード部分の性能がゲーム全体の性能を制約する。そしてそれは、単体のCPUコアのスカラ整数演算性能に依存する。

 ここで問題は、将来のゲームプログラムでも、逐次コードのパフォーマンスがどれだけ重要になるのか、読み切れないことにある。もしゲームでも、逐次処理の性能要求がある程度上がって行くのなら、将来のゲーム機向けCPUは、単体CPUコアの整数演算パフォーマンスもそれなりに向上させなければならない。

LarrabeeとCPUとGPUプログラミング実行の違い
PDF版はこちら

 しかしLarrabeeでは、ユニプロセッサの整数演算パフォーマンスに疑問符がついている。Larrabee CPUコアは、Pentium(P54C)をベースにしており、スカラ演算パイプに、大きな拡張が加えられたとは発表されていない。だとすると、Larrabeeの個々のCPUコアの整数演算パフォーマンスは、2GHz台で動作するP54Cのそれと同レベルとなる。

 In-Order実行で2命令発行のP54Cコアは、2GHz台で走らせても、それほど高いスカラ演算性能を発揮できないはずだ。同じIn-Order実行2命令発行でも、より洗練されたAtom系(Bonnell:ボンネル)アーキテクチャのCPUコアと比べて、同クロック時の性能が高いとは考えにくい。

LarrabeeとPentiumのx86コアブロック比較
PDF版はこちら

 PS3のCell B.E.の制御用CPUコア「PPU」や、Xbox 360のトリプルコア構成のCPUコアもIn-Order実行で2命令発行だ。しかし、こちらは現世代で3GHz台で動作しており、命令デコードが容易なRISC(Reduced Instruction Set Computer)命令セットによる実行効率上の利点もある。また、対抗するXboxの次世代が、Xbox 360世代と同レベルの整数演算パフォーマンスとは限らない。Microsoftが、より強力で汎用性の高いCPUコアを積むなら、そこでユニプロセッサの整数演算で差ができてしまう。

Cellの「PPE」の構成
PDF版はこちら

 そもそも、P54Cコアをベースにした今のLarrabeeは、メインの強力な汎用CPUがシステム内にあることを前提としているように見える。ユニプロセッサでの処理が重いコードは、大型の伝統的な汎用CPUで処理することを前提としていると考えられる。

 Larrabeeの実態は、単一種のプロセッサではなく、x86 CPUに対するベクタ拡張命令である「Larrabee新命令(Larrabee New Instruction:LNI)」だ。LNI自体はポータブルに、他のCPUコアに実装ができる。Intelは、最終的にLNIを、PC&サーバー向けの大型CPUコアを含めて、他のCPUコアに移植することを考えていると推定される(ただし、AVX系拡張命令との命令フォーマットのすりあわせが必要になる)。

 おそらく、その時になれば、大型の汎用コアと、データ演算に特化したコアを組み合わせた、ヘテロジニアス(Heterogeneous:異種混合)型マルチコア構成も出てくるだろう。しかし、最初のLarrabeeは、Larrabee以外に独立した大きな汎用CPUを持つ、システムレベルでのヘテロジニアス構成を前提としているように見える。

●さまざまな可能性があるLarrabeeの進化

 では、ゲーム機にもLarrabee以外に汎用性の高いCPUを積んで、Larrabeeをサブプロセッサ兼GPUとして使えばいいと思うかもしれない。しかし、それも難しい。SCEはチップ個数が多い初代PS3で、高コストに苦しんだ。その繰り返しになる可能性がある。コストと消費電力上の無駄をできるだけ減らしたいゲーム機では、チップ数を増やす選択肢はとりにくい。

 将来、IntelがヘテロジニアスなLNI実装CPUを作るとしたら、それはゲーム機にも向く可能性はある。しかし、それまではユニプロセッサの整数演算の性能は未知数のままで、ゲーム機にはリスクが大きい。最初はLarrabeeとCPUが別チップだが、あとでヘテロジニアスに統合するという手もあるが、チップ間接続とチップ内接続では、メモリやキャッシュ周りのアーキテクチャに違いが出るので難しい。

 あるいは、Larrabeeを現在のホモジニアス構成のままで、スカラ演算部分にP54C以外の選択肢を持ってくる手もある。例えば、より進んだAtom系(Bonnell:ボンネル)CPUコアをベースに、LNIを実装する方法もある。P54CよりCPUコアは大きくなるだろうが、それでもかなり小さく保つことが可能で、電力効率もよく、しかも、Intelの現在のPC&サーバー向けCPUと命令セット互換になる。

 LarrabeeのベースにAtomを使ったらどうか、という声は、実はCPU業界の中でよく聞く。最近だけでも数人から同じ意見を聞き、そのうち1人はIntelの技術スタッフだった。In-Order実行2命令発行のコアなら、Bonnell(Atom)コアをベースにした方がいいと考えるのは、CPUについて知っている人間なら誰でも同じようだ。

●Cell B.E.の採用にもハードルは高い

 いずれにせよ、Larrabeeをゲーム機のCPU+GPUとして採用することは、現状ではハードルが高そうだ。とはいえ、SCEにとって、低い開発コストで調達できるチップを求めていることは確かで、ジレンマは続く。

 ハードウェア的に考えれば、せっかく発展性を持たせて設計したCell B.E.の拡張版をPS4に採用するのが自然だ。かさむ一方のソフトウェア層の開発コストを考えても、Cell B.E.を継続した方が利点は多い。

 しかし、サードパーティのソフトウェアベンダーのCell B.E.に対する拒否感はかなり根強い。SPUを使い尽くすことは最初から諦め、マルチプラットフォーム向けに、Xbox 360と命令セット互換のPPUを中心に使っているベンダーも多い。PS3でのCell B.E.導入当初に、優れたコンパイラや教育体制を整えることができなかったつけが回っている。これで、プログラミングツールの専門家であるMicrosoftに対抗するのは辛い。

 SCEは、PS4にCell B.E.の拡張版を載せるなら、こうした暗雲を払拭する必要がある。プログラマ達を再びCell B.E.に向き合わせ、ハードウェア性能を活かすように鼓舞する必要がある。そうしない限り、例え、SPUの数を2倍に増やしても、あまり使われずに終わってしまいかねない。

 本来のSCEは、ここで、Cell B.E.にはこんな未来があると、ビジョンを広げて、デベロッパを惹きつけるテクニックがあった。デベロッパは、半ばウソだろうと思いながらも、引っ張られて難しいハードにチャレンジして行った(PS2の時がそうだった)。しかし、今のSCEはヴィジョンを提示するのがあまり上手くない。久夛良木健氏のように、そうした役回りの人物がいなくなってしまったためだ。SCEは、これからもハードウェアアーキテクチャの決定で迷うことになるだろう。

●ゲーム機がテクノロジドライバだった時代が終わる

 SCEがPS4の心臓部にLarrabeeも検討したことは、重要な転換を象徴している。それは、ゲーム機がテクノロジドライバとして、CPUやGPU、メモリの発展を引っ張る時代が終わりつつあることだ。これまでは、新奇なアプローチはゲーム機に導入され、PCはどちらかと言えば保守的なアプローチに留まることが多かった。ゲーム機はPCにない新技術をどんどん取り込んで技術革新をリードし、PCの方が後追いに回ることが多かった。ゲーム機とPCは、方向性が全く異なったのだ。

 例えば、初代PlayStation(PS)は、3Dレンダリングチップを採用。それが刺激となり、PCの3Dグラフィックス化が進み始めた。PS2では、PCの数倍の浮動小数点演算能力のEmotion Engineと、RDRAMのメインメモリ、ビデオメモリに組み込みDRAMを使ったGraphics Synthesizerを採用した。そして、PS3では、ヘテロジニアスマルチコアのCell B.E.と、3.2Gtpsの転送レートのXDR DRAMメモリなどを採用。CPU業界とメモリ業界にインパクトを与えた。その間、PC向けCPUは、粛々とCPUコアの大型化と、互換性を維持したメモリの進化を続けていた。

 PCの進化が大人しかったのは、レガシーの継承という重荷を抱えていたからだ。「既存のアプリケーションが、新しいCPUでより速く走らなければならない」。これがPC向けCPUが抱えていた荷物だった。対するゲーム機では、世代毎にソフトウェアがリセットされる。そのため、レガシーソフトを速く走らせるといった呪縛はなく、自由に優れた技術を取り入れることができた。

 しかし、IntelやAMDといったCPUベンダーは、2003~2004年にかけて方向を転換。レガシーをある程度犠牲にしても、純粋なCPU性能を向上させる方向へ向かうことにした。これまでとは違ったアーキテクチャや命令をどんどん追加、ソフトウェアはそれに対応しない限り性能を上げることができない、と言う割り切りを行なった。「フリーランチの終わり」と言われるこの変革で、CPUメーカーは自由なキップを手に入れた。そして、これまでゲーム機が独占して来た、先進的なテクニックの採用へと踏み切った。これが、今始まっている新潮流だ。

 そして、Larrabeeはその新潮流から出てきた最初のトライの1つだ。Larrabeeが市場で成功するかどうかはともかく、Larrabeeが象徴するものは大きい。それは、PCがこれまで呪縛から、ある程度脱却したことを示すからだ。過去のソフト資産に乗っかるのではなく、ソフトを変えて斬新な技術を積極的に採用しようとし始めている。

 おそらく、今後は、ゲーム機が、飛び抜けて新奇なアプローチで、技術革新を引っ張るというケースは消えて行くだろう。技術革新は、ゲーム機だけでなくPCの側でもさまざまなトライが行なわれ、それが横断的に波及するといった流れになるだろう。

□関連記事
【2月26日】【海外】携帯電話に対抗するPSP2、CellとLarrabeeで揺れるPS4
http://pc.watch.impress.co.jp/docs/2009/0226/kaigai492.htm
【2008年8月22日】【海外】正式発表されたLarrabeeアーキテクチャ
http://pc.watch.impress.co.jp/docs/2008/0822/kaigai461.htm
【2008年8月19日】【海外】LarrabeeがPentiumをベースにしたのはなぜか
http://pc.watch.impress.co.jp/docs/2008/0819/kaigai460.htm
【2008年8月11日】【海外】Cell B.E.と似て非なるLarrabeeの内部構造
http://pc.watch.impress.co.jp/docs/2008/0811/kaigai458.htm
【2008年8月4日】【海外】ついにベールを脱いだIntelのCPU&GPUハイブリッド「Larrabee」
http://pc.watch.impress.co.jp/docs/2008/0804/kaigai457.htm

バックナンバー

(2009年3月5日)

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


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp ご質問に対して、個別にご回答はいたしません

Copyright (c) 2009 Impress Watch Corporation, an Impress Group company. All rights reserved.