Mercurial > hg > Papers > 2010 > hiroki-thesis
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>