# HG changeset patch # User aaa # Date 1266468247 -32400 # Node ID 5f9478510c44794f0f720e70b97ff568cdc661ca # Parent 7856523eef7ef845b05c244b9ca13195fcde7da2 fix presen diff -r 7856523eef7e -r 5f9478510c44 presen/pre.html --- a/presen/pre.html Wed Feb 17 19:00:22 2010 +0900 +++ b/presen/pre.html Thu Feb 18 13:44:07 2010 +0900 @@ -53,9 +53,11 @@

発表の流れ


@@ -64,7 +66,9 @@

SceneGraph とは

-SceneGraph のノードは親子関係を持つ Tree で構成される。
+SceneGraph とはゲーム中の全てのオブジェクトを表す Tree 構造である。 +
@@ -75,6 +79,7 @@

SceneGraph とは(Con't)

+SceneGraph の内部構造 + +現在、画面の描画とオブジェクトの動作は逐次的に行われている。
+
+
    +
  • Cellは1基の制御系のプロセッサコアPPEと、8基の演算系プロセッサコアSPEで構成される +
  • 現在、オブジェクトの動作は PPE で実行されている +
  • しかし、PPE よりも SPE の方が演算処理に優れている +
  • また SPE を用いることで並列に実行できる + +

- -現在、Cerium では画面の描画と Move, Collision の処理は
PPE で逐次的に行われている。
-
-
-Move, Collision をマルチメディア系の処理を得意とする SPE で処理し
Rendering と並列に実行する。 + +そこで、オブジェクトの動作を SPE で行うことにより、画面の描画と並列に実行する。 +
-

Property

+

Property の導入

    -
  • SPE で処理するには PPE からデータを送り込む必要がある。 -
  • SPE はの Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。 -
  • Move, Collision には Polygon や Texture データは不要になる。 +
  • SPE で処理するには PPE からデータを送り込む必要がある。
  • + +
  • SceneGraph はオブジェクトの動作と描画処理の両方で用いられているので Polygon や Texture などの不要なデータが含まれている。 +
  • しかし、SPE の Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。

-SceneGraph の代わりにゲームに必要な内部状態を持った配列 Property を SPE に転送する。 +SceneGraph の代わりにゲームに必要な内部状態を保持した構造体 Property を用いる。
+

Property の導入(Con't)

+Property には以下のパラメータが含まれている +
    +
  • オブジェクトの動作に必要な Coordinates, Angle
  • +
  • Tree を構成するための親子関係の情報
  • +
  • SceneGraph を生成するための固有ID
  • +
+
+Property はゲームごとに定義されている +
+ +

Property の処理

    -
  • Property を SPE に転送し、SPE 上で Move, Collision の処理を実行し Property を更新する。
    -
  • 更新されて返された Updated Property を元に SceneGraphTree を生成する。 +
  • Property を SPE に転送し、SPE 上でオブジェクトの動作を行い Property を更新する。
    +
  • 更新されて返された Property を元に SceneGraphTree を生成する。
@@ -178,9 +217,8 @@

Property を用いた例題

-Property を用いた例題として複雑な演算をする鎖のシミュレーション chain を使用した。
-※ chain は Move の処理のみ行い、使用する SPE は1基となっている。
-chain の各オブジェクトの値は、一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。 +Property を用いた例題として鎖のシミュレーション chain を使用した
+この例題では Move の処理のみを行っており、Collision の処理は行っていない

@@ -189,12 +227,79 @@
-

結果

+

実行速度比較

+chain の Move を SPE で処理した場合と PPE で処理した場合の実行速度の比較を以下に示す。 +
+ + + + + + + + + + + + + +
FPS(Frame Par Second)
PPE2.708696
SPE2.893348
+
+
+Move を SPE で処理したことで約0.2FPSの速度向上がみられた

+Move は SPE 上にあるので、SIMD 演算を用いて、速度の向上が期待できる。

今後の課題

+
    +
  • 複数 SPE に均等に処理を割り振る例題の作成 +
  • Collision を SPE で処理する例題の作成 +
  • Property から SceneGraphTree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う +
+
+ +
+

+ご清聴ありがとうございました +
+ +
+

Cellとは

+ +Cellとはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ。

+Cellは1基の制御系のプロセッサコアPPEと、8基の演算系プロセッサコアSPEで構成される。 +(Ceriumで扱えるSPEの数は6基)それぞれ高速なバスで接続されている

+ +
+
+

Ceriumとは

+Ceriumとは当研究室で開発したゲーム開発用フレームワーク

+ +Task Manager
+ タスクと呼ばれる分割されたプログラムを管理する
+ +Scene Graph
+ ゲーム中のオブジェクトの振る舞いや、ルールを管理する。
+Rendering Engine
+ Cerium独自に開発した描画用のエンジン + +

+の3つの要素から構成される。

+Ceriumは PS3/Cell、linux, macosx 上で動作する。 + +
+ +
+

SIMD 演算とは

+ + +SIMD 演算とは1つの命令で複数のデータに対して処理を行う演算方式
+Cellでは、SPEに実装されている128ビットレジスタを用いてSIMDを行うことができる
+
+
+