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

SCEがCellのプログラミング環境を発表
~シェーディング言語はNVIDIAのCg




●スタンドアローン向けのCellプログラミングモデルを発表

 ソニー・コンピューターエンタテインメント(SCE)は、次世代PlayStation(PS3?)「Cellプロセッサ」のプログラミングモデルの一部を、サンフランシスコで開催中のゲーム開発カンファレンス「GDC(Game Developers Conference)」で発表した。今回発表したのは、PS3向けのプログラミングモデルの基本的な部分など。つまり、スタンドアローンのゲームコンソールに搭載されたCellプロセッサを意識したモデルだ。

 そのため、今回の発表には、以前、このコーナーで紹介したような、ネットワーク経由での分散型のプログラミングモデルは含まれていない。分散型のCellコンピューティングのためのオブジェクトフォーマットである「ソフトウェアCell」を使ったモデルは、現状ではまだOSに実装されていないという。それは、次または次の次のステップということになりそうだ。

 また、GDCでは、プログラミングモデルだけでなく、グラフィックス回りのインターフェイスなどについても簡単な説明があった。中でも重要な発表は、次世代PlayStation(PS3?)のシェーディング言語にNVIDIAが開発した「Cg」を採用すること。PS3は、CellプロセッサとNVIDIAが開発中のメディアプロセッサを搭載するが、CgはメディアプロセッサのShaderなどをプログラムするために使う。この発表で、NVIDIAのCgの重要性は一気に高まった。

【編集部注】プレゼンテーション多数のため、今回は800×600ドットの画像が別ウィンドウで開きます。

●PS2とPS3の演算プロセッサコアを比較

 GDCでのセッションでは、1ヶ月前のISSCC(IEEE International Solid-State Circuits Conference)でのCell発表後のフィードバックを受けて、プログラミングの容易性を説明することにポイントが置かれた。Cell発表後に開発者などの間で持ち上がった、Cellのプログラミングの容易性に対する疑問を払拭するためと見られる。PlayStation 2のCPU「Emotion Engine(EE)」が、非常にプログラミングが難しかったため、Cellのプログラミングモデルを疑問視する声が多かった。

 そこで、今回は下のスライドのように、Cellの内蔵するデータ処理用プロセッサコア「SPE(Synergistic Processor Element)」と、EEが内蔵する「VU(Vector Unit)」を比較。CellのSPEの優位性とプログラミングの容易性を強調した。

 また、SPEの実行ユニットについても、ISSCC以上の情報が公開された。

 Cellのプログラミングの基本概念では、中核となるコントロール用プロセッサコア「PPE(Power Processor Element)」を指揮者、SPEをオーケストラに見立てて説明。開発者は作曲者としてPPEにSPEを指揮させて、演奏(アプリケーションを走らせる)させると比喩した。

●複数のプログラミングモデルを紹介

 プログラミングモデルでは、まず基本となる「Job Queue」が説明された。SPE上で走る非常に小さなOSカーネルであるSPEランタイムに、PPEが管理するシステムメモリ上のJob QueueからJobが発行される。それに続いてJobの情報が読み込まれ、SPEのメモリ「Local Store」にプログラムやデータのエリアがマップされる。それ以降はDMAがシステムメモリからプログラムやデータを転送、実行とシステムメモリへのアウトプットがなされる。

 PPEは、単一のJob Queueを管理、複数のSPEに対してJobを割り当てる。PPEがジョブスケジューリングを通じてSPEをスケジューリングしているわけだ。

 また、Self Multi-taskingと呼ぶ、複数のSPEによる連携型の処理が説明された。タスクをコードブロック単位で分割。分散型のSPEカーネルにより、複数のSPEで処理を行なう。

 これは、Stream Processingの例。3個のSPEでストリーム処理を行なう仕組みが説明された。依存性がないストリーム型処理の場合は、こうした並列化が可能になる。

 SPE内部のローカルメモリLSを、プログラム側でキャッシュとして働かせるSoftware Managed cacheについても説明された。

 このほか、今回のセッションでは、複数のSPEを使ったパイプライン処理、ネットワーク分散型の処理、SPE上でのバーチャルマシン(JIT型)といったプログラミングモデルも開発することが示された。逆を言えば、これらのモデルは現状ではまだ完成していないと見られる。

●開発環境の充実を約束するSCE

 セッションでは、ソフトウェア戦略の全体像についても概説された。基本戦略は、ユーザーに親しみ安いAPI、高品質のツールとライブラリの提供、基本的なシステムサービスのOSへの組み込み、ツールやミドルウエアの充実、アート資産の再利用の促進など。

 強調していたのはEEと異なりアセンブラコーディングが必要がない点。PPEとSPEはどちらもC/C++でのプログラミングが可能で、SIMD(Single Instruction, Multiple Data)化も基本的にはビルドインコンパイラで可能になる。また、両プロセッサコアで共通のAPIを備える。ツールについては、ソフィスケイトされたツール群を提供することが約束された。また、ミドルウェアコミュニティに対しても働きかけていることが明かされた。実際、昨年頃からSCEは活発にミドルウェアベンダーに接触している。

 グラフィックスAPIでは以前このコーナーでレポートした通り、OpenGL ESが採用されることが正式に明らかにされた。これは次バージョンのOpenGL ES 2.0をベースにする見込みだ。ただし、シェーディング言語はNVIDIAのCgを組み合わせる。ちなみに、PS3のグラフィックスパイプラインは、ジオメトリ側はCellが担当する可能性が高いが、その場合も、OpenGL ESとCgで、ソフトウェア側からは隠蔽されると推定される。

 アート資産の再利用では、データ交換のフォーマットとしてXMLフォーマットの「COLLADA」を採用することが伝えられた。

 以上が、GDCでのSCEのCellプログラミングセッションの簡単な内容だ。プログラミングモデルについては、また、もう少し詳しく説明したい。

 全体に見えることは、以前にも書いた通り、EEが半導体屋的な使う側のことをあまり考慮していないソリューションだったのに対して、Cellはコンピュータサイエンスの側からどうやって使うかを考えて作られたアーキテクチャのように見える。もちろん、CellもOSやライブラリ、ミドルウェア、ツールといったソフトウェア環境が整わないと、そうした特性は発揮できないわけだが、SCEは今回、そうした部分に力を入れたことを一生懸命強調しようとしているように見える。実際にどうかは、本格的な開発キットが広汎に配布される時までは、わからないが。

□関連記事
【3月8日】【海外】久夛良木氏のポジションがCellにもたらす影響
http://pc.watch.impress.co.jp/docs/2005/0308/kaigai163.htm
【2月9日】【海外】PlayStation 3に搭載されるCellの性能
http://pc.watch.impress.co.jp/docs/2005/0209/kaigai154.htm

バックナンバー

(2005年3月10日)

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


【PC Watchホームページ】


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

Copyright ©2005 Impress Corporation, an Impress Group company. All rights reserved.