changeset 17:5f9478510c44

fix presen
author aaa
date Thu, 18 Feb 2010 13:44:07 +0900
parents 7856523eef7e
children c7344fbacd60
files presen/pre.html
diffstat 1 files changed, 129 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- 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 @@
 <div class="slide pre">
 <h1>発表の流れ</h1>
 <ul style="line-height: 1.2;">
-  <li>SceneGraph とは
-  <li>SceneGraph によるゲーム作成
-  <li>SceneGraph の並列化
+  <li>SceneGraph とは</li>
+  <li>動作と描画の処理</li>
+  <li>Property の導入</li>
+  <li>Property を用いた例題</li>
+  <li>評価</li>
   <li>今後の課題
 </ul>
 <br>
@@ -64,7 +66,9 @@
 
 <div class="slide pre">
 <h1>SceneGraph とは</h1>
-SceneGraph のノードは親子関係を持つ Tree で構成される。<br>
+SceneGraph とはゲーム中の全てのオブジェクトを表す Tree 構造である。
+<!--ゲーム中の一つの場面を構成するオブジェクトやその振る舞い、ゲームのルールの集合です。
+ SceneGraph は Tree 構造です。<br>-->
 <br>
 <center>
 <img src="image/SceneGraph.jpg" width="500">
@@ -75,6 +79,7 @@
 
 <div class="slide pre">
 <h1>SceneGraph とは(Con't)</h1>
+SceneGraph の内部構造
 <!--
 <h3>ゲーム中の1つの場面(Scene)を構成するオブジェクトやその振る舞い、ゲームのルールの集合</h3>
 <center>
@@ -112,7 +117,7 @@
     <td>オブジェクトの角度</td>
   </tr>
   <tr>
-    <td>Property</td>
+    <td><font color=red>Property</font></td>
     <td>オブジェクトの内部情報</td>
   </tr>
 </table>
@@ -127,49 +132,83 @@
   </tr>
   <tr>
     <td>Collision</td>
-    <td>他のノードとの衝突判定をする</td>
+    <td>他のノードとの衝突判定</td>
   </tr>
 </table>
 </font>
 </div>
 
 <div class="slide pre">
-<h1>SceneGraph とは(Con't)</h1>
+<h1>ゲームの流れ</h1>
+<font size="6"><b>オブジェクトが描画されるまでの流れ</b></font>
+<ul>
+<li>オブジェクトの動作を Move 関数、Collision 関数として定義する</li>
+<li>SceneGraph に Move, Collision をセットする</li>
+<li>全ての SceneGraph の Move, Collision が実行される</li>
+<li>Move, Collision によって SceneGraph の値が変更される</li>
+<li>変更された SceneGraph を用いて描画処理を行う</li>
+</ul>
+</div>
+
+<div class="slide pre">
+<h1>動作と描画の処理</h1>
+<!--
 <font size="5">
 <sup>
  SceneGraph の親子関係に沿って TransMatrix を計算し、Move, Collision を実行することで SceneGraph 内のオブジェクトが変化する。<br>
  Collision によって Move が変更され、Move によって Coordinates, Angle が変更される。これらをどのように変更させていくかがゲームのルールとなる。
 </sup>
 </font>
-<br>
+-->
+<font size="6"><sup>
+現在、画面の描画とオブジェクトの動作は逐次的に行われている。<br>
+</font></sup>
+<ul>
+  <li>Cellは1基の制御系のプロセッサコアPPEと、8基の演算系プロセッサコアSPEで構成される
+  <li>現在、オブジェクトの動作は PPE で実行されている
+  <li>しかし、PPE よりも SPE の方が演算処理に優れている
+  <li>また SPE を用いることで並列に実行できる
+  <!--<li>オブジェクトの動作を SPE で処理することで演算速度の向上が見込める-->
+</ul>
 <br>
-<font size="5"><sup>
-現在、Cerium では画面の描画と Move, Collision の処理は<br> PPE で逐次的に行われている。<br>
-</font></sup>
-<br>
-Move, Collision をマルチメディア系の処理を得意とする <font color=red>SPE</font> で処理し<br>Rendering と並列に実行する。
+<font size="6">
+そこで、オブジェクトの動作を SPE で行うことにより、画面の描画と<font color="red">並列</font>に実行する。
+</font>
 </div>
 
 <div class="slide pre">
-<h1>Property</h1>
+<h1>Property の導入</h1>
 <ul style="line-height: 1.2;">
-  <li>SPE で処理するには PPE からデータを送り込む必要がある。
-  <li>SPE はの Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。
-  <li>Move, Collision には Polygon や Texture データは不要になる。
+  <li>SPE で処理するには PPE からデータを送り込む必要がある。</li>
+  <!--<li>オブジェクトの動作には SceneGraph を用いていたので Polygon や Texture などの不要なデータが含まれている。</li>-->
+  <li>SceneGraph はオブジェクトの動作と描画処理の両方で用いられているので Polygon や Texture などの不要なデータが含まれている。
+  <li>しかし、SPE の Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。</li>
 </ul>
 <br>
 <font size="6">
 <sup>
-SceneGraph の代わりにゲームに必要な内部状態を持った配列 <font color=red>Property</font> を SPE に転送する。
+SceneGraph の代わりにゲームに必要な内部状態を保持した構造体 <font color=red>Property</font> を用いる。
 </sup>
 </font>
 </div>
 
 <div class="slide pre">
+<h1>Property の導入(Con't)</h1>
+Property には以下のパラメータが含まれている
+<ul style="line-height: 1.2;">
+<li>オブジェクトの動作に必要な Coordinates, Angle</li>
+<li>Tree を構成するための親子関係の情報</li>
+<li>SceneGraph を生成するための固有ID</li>
+</ul>
+<br>
+Property はゲームごとに定義されている
+</div>
+
+<div class="slide pre">
 <h1>Property の処理</h1>
 <ul style="line-height: 1.2;">
-<li>Property を SPE に転送し、SPE 上で Move, Collision の処理を実行し Property を更新する。<br>
-<li>更新されて返された Updated Property を元に SceneGraphTree を生成する。
+<li>Property を SPE に転送し、SPE 上でオブジェクトの動作を行い Property を更新する。<br>
+<li>更新されて返された Property を元に SceneGraphTree を生成する。
 </ul>
 <center>
 <img src="image/Property.jpg" width="350">
@@ -178,9 +217,8 @@
 
 <div class="slide pre">
 <h1>Property を用いた例題</h1>
-Property を用いた例題として複雑な演算をする鎖のシミュレーション chain を使用した。<br>
-<font color="red" size="3">※ chain は Move の処理のみ行い、使用する SPE は1基となっている。</font><br>
-chain の各オブジェクトの値は、一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。
+Property を用いた例題として鎖のシミュレーション chain を使用した<br>
+この例題では Move の処理のみを行っており、Collision の処理は行っていない
 <br>
 <br>
 <center>
@@ -189,12 +227,79 @@
 </div>
 
 <div class="slide pre">
-<h1>結果</h1>
+<h1>実行速度比較</h1>
+chain の Move を SPE で処理した場合と PPE で処理した場合の実行速度の比較を以下に示す。
+<center>
+<table>
+  <tr>
+    <td></td>
+    <td>FPS(Frame Par Second)</td>
+  </tr>
+  <tr>
+    <td>PPE</td>
+    <td align="center">2.708696</td>
+  </tr>
+  <tr>
+    <td><font color="blue">SPE</font></td>
+    <td align="center"><font color="blue">2.893348</font></td>
+  </tr>
+</table>
+</center>
+<br>
+Move を SPE で処理したことで<font color="red">約0.2FPS</font>の速度向上がみられた<br><br>
+Move は SPE 上にあるので、SIMD 演算を用いて、速度の向上が期待できる。
 </div>
 
 <div class="slide pre">
 <h1>今後の課題</h1>
+<ul style="line-height: 1.2;">
+<li>複数 SPE に均等に処理を割り振る例題の作成
+<li>Collision を SPE で処理する例題の作成
+<li>Property から SceneGraphTree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う
+</ul>
+</div>
+
+<div class="slide pre">
+<h1></h1>
+ご清聴ありがとうございました
+</div>
+
+<div class="slide pre">
+<h1>Cellとは</h1>
+
+<big>Cell</big>とはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ。 <br><br>
+Cellは1基の制御系のプロセッサコアPPEと、8基の演算系プロセッサコアSPEで構成される。
+(Ceriumで扱えるSPEの数は6基)それぞれ高速なバスで接続されている<br><br>
+
+<img src="image/cell1.png" style="width: 45%%">
 </div>
 
+<div class="slide pre">
+<h1>Ceriumとは</h1>
+<big>Cerium</big>とは当研究室で開発したゲーム開発用フレームワーク<br><br>
+
+<u>Task Manager</u><br>
+ タスクと呼ばれる分割されたプログラムを管理する<br>
+
+<u>Scene Graph</u><br>
+ ゲーム中のオブジェクトの振る舞いや、ルールを管理する。<br>
+<u>Rendering Engine</u><br>
+ Cerium独自に開発した描画用のエンジン
+
+<br><br>
+の3つの要素から構成される。<br><br>
+Ceriumは PS3/Cell、linux, macosx 上で動作する。
+
+</div>
+
+<div class="slide pre">
+<h1>SIMD 演算とは</h1>
+<font size="6">
+<sup>
+SIMD 演算とは1つの命令で複数のデータに対して処理を行う演算方式<br>
+Cellでは、SPEに実装されている128ビットレジスタを用いてSIMDを行うことができる<br>
+</sup>
+</font>
+</div>
 </body>
 </html>