ゲームフレームワーク Cerium TaskManager の改良

金城 裕, 河野 真治,
多賀野 海人, 小林 佑亮

琉球大学大学院理工学研究科情報工学専攻並列信頼研

概要

ゲームフレームワーク Cerium TaskManager を開発した。

Ceriumの改良を行いOpenGLと比べ、2.9倍の性能向上を達成した(Cell上)

OpenGL Cerium 性能差
dandy 17.5FPS 49.5FPS 2.9倍
FPS(Frames Per Second)

概要

Amdahlの法則より
 プログラム全体の並列化率が低ければ、マルチコアの性能を活かすことはできない。

SPEの稼働率を落とさない為の改良点
以上の改良により、FPSが5〜10倍程度性能向上がありました

概要

Amdahlの法則より
 プログラム全体の並列化率が低ければ、マルチコアの性能を活かすことはできない。

SPEの稼働率を落とさない為の改良点
Ceriumの改良点を紹介していく。

Cellの構成

Cell Broadband Engine

Cellの基本機能

DMA Mailbox

Ceriumの構成

Ceriumの構成

TaskManager

TaskManager は、Taskと呼ばれる分割された各プログラムを管理する。Task の単位 はサブルーチンである。Task 同士の依存関係を考慮しながら実行していく。

Task を生成する際に、以下のような要素が設定可能である

RenderingEngineの構成

RenderingEngineの構成

改良前RenderingEngine

改良前のRenderingEngineの例題
地球と月の例題
FPS mail待ちの割合 SPE稼働率
universe 17FPS 53.6% 45.4%

処理全体の45%時間がmail待ちになっている.

Mail待ちについて

mail待ちが起こるタイミング

Mailbox機能

バリア同期

RenderingEngineのTaskは、3つそれぞれバリア同期をしている。

パイプライン化

地球と月を表示する例題(universe)を使用。

パイプライン化の比較

パイプライン化の効果(universe)
FPS mail待ちの割合 稼働率
Pipelineあり 19.6FPS 68.8% 29%
Pipelineなし 17FPS 72.6% 25.4%

パイプライン化の比較

地球と月を表示する例題(universe)を使用。
パイプライン化の効果(universe)
FPS mail待ちの割合 稼働率
Pipelineあり 19.6FPS 68.8% 29%
Pipelineなし 17FPS 72.6% 25.4%

RenderingEngine

RenderingEngineでは、描画するためのテクスチャをSPEに読み込む必要がある
テクスチャをSPE内でのキャッシュした。

SPEのキャッシュ効果

SPEのキャッシュの効果
キャッシュなし キャッシュあり 性能
ball_bound 4FPS 30FPS 7.5倍
universe 6FPS 17FPS 2.8倍
panel 0.2FPS 2.6FPS 13倍

SPEのキャッシュ効果

SPEのキャッシュの効果
キャッシュなし キャッシュあり 性能差
ball_bound 28FPS 30FPS +2FPS
universe 22.9FPS 17FPS -5.9FPS
panel 5.0FPS 2.6FPS -2.4FPS
ball_bound は扱うテクスチャが少なく、小さい

MailQueueの効果

MailQueueの効果
改良前 改良後 性能
universe 16FPS 18.5FPS 12%向上
地球と月を表示する例題を使って計測した。

TaskArray

Task毎のMailは、Task同士の依存関係を解決するために用いている。
Mailの数を減らせるので、Mailのための処理が減る。その分処理速度が上がる

TaskArray

TaskArrayの効果(universe)
改良前 改良後 性能
universe 16FPS 18.5FPS 12%向上

MailQueueとTaskArray

MailQueueとTaskArrayの効果(universe)
TaskArray MailQueue FPS 性能
あり あり 20FPS 22%向上
あり なし 18.5FPS 12%向上
なし あり 18.5FPS 12%向上
なし なし 16.4FPS 0%向上

OpenGLとの比較

OpenGL(Open Graphics Library)とは、Silicon Graphics社が開発した、3Dグラフィックス処理の ためのプログラミングインターフェース。Taskに分割され、SPEを使用したCeriumと、PPEのみで動作 するOpenGLとで、処理速度の比較をした。

比較する例題には学生が実験中に作成したSuperDandyを用いた。

OpenGLとの比較

OpenGL Cerium 性能差
dandy 17.5FPS 49.5FPS 2.9倍
コア一つを使用するOpenGLに比べ、Cerium では2.9倍の性能向上が見られた。 SPEを活用、待ち時間の短縮を行い、性能向上がみれた。

END

/*end*/
[any material that should appear in print but not on the slide]