Mercurial > hg > Papers > 2011 > yutaka-sigos
changeset 13:083c7035b2cf
fix
author | Yutaka_Kinjyo |
---|---|
date | Wed, 13 Apr 2011 10:27:01 +0900 |
parents | e6a78ee8fb13 |
children | 06fe904e1951 |
files | presen/presen.html |
diffstat | 1 files changed, 201 insertions(+), 214 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/presen.html Tue Apr 12 17:13:21 2011 +0900 +++ b/presen/presen.html Wed Apr 13 10:27:01 2011 +0900 @@ -253,27 +253,25 @@ <h1>RenderingEngine</h1> RenderingEngineの例題<br> -月と +地球と月の例題 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> <tr> <th></th> <th>FPS</th> -<th>稼働率</th> +<th>mail待ちに割合</th> +<th>SPE稼働率</th> <!--<th>Mac(Core2Duo)</th>--> -<th>SPE稼働率</th> </tr> <tr align="center"> <td>universe</td> <td>17FPS</td> +<td>72.6%</td> <td>25.4%</td> -<!--<td>1.76s</td>29%--> </tr> </table> - - </div> @@ -292,28 +290,6 @@ </div> -<div class="slide"> -<h1>RenderingEngineの構成</h1> -RenderingEngineの構成 -<ul> - <li>CreatePolygon</li> - <ul> - <li>モデリングデータからポリゴンを生成する</li> - </ul> - <li>CreateSpan</li> - <ul> - <li>ポリゴンをSpanと呼ばれる水平な線に分ける</li> - </ul> - <li>DrawSpan</li> - <ul> - <li>Spanを実際にディスプレイに描画する</li> - </ul> -</ul><br> - -RenderingEngineは3種類のTaskから構成されている - -</div> - <div class="slide"> <h1>RenderingEngine</h1> @@ -327,7 +303,6 @@ <li>他のSPEを待つ</li> <li>次のTaskListを待つ</li> </ul> - <li>PPE側でTaskを生成、各SPEに割り振る</li> <li>Taskはバリア同期している</li> </ul> @@ -369,31 +344,203 @@ <div class="slide"> -<h1>Ceriumの改良点の概要</h1> +<h1>RenderingEngineの構成</h1> +RenderingEngineの構成 +<ul> + <li>CreatePolygon</li> + <ul> + <li>モデリングデータからポリゴンを生成する(PPE)</li> + </ul> + <li>CreateSpan</li> + <ul> + <li>ポリゴンをSpanと呼ばれる水平な線に分ける(SPE)</li> + </ul> + <li>DrawSpan</li> + <ul> + <li>Spanを実際にディスプレイに描画する(SPE)</li> + </ul> +</ul><br> + +RenderingEngineは3種類のTaskから構成されている + +</div> + + +<div class="slide"> +<h1>パイプライン化</h1> + +地球と月を表示する例題(universe)を使用。 + +<table height="100%" width="100%" border="0"> +<tr><td align="center" valign="middle"> +<img src="gazo/universe.png" style="width: 45%%"></td></tr> +</table> + +</div> + +<div class="slide"> +<h1>パイプライン化の比較</h1> -Ceriumの改良点の概要 +<table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> +<caption>パイプライン化の効果(universe)</caption> +<tr> +<th></th> +<th>FPS</th> +<th>mail待ちの割合</th> +<th>稼働率</th> +</tr> +<tr align="center"> +<td>Pipelineあり</td> +<td>19.6FPS</td> +<td>68.8%</td> +<td>29%</td> +</tr> +<tr> +<tr align="center"> +<td>Pipelineなし</td> +<td>17FPS</td> +<td>72.6%</td> +<td>25.4%</td> +</tr> + +</table> +</div> + +<div class="slide"> +<h1>パイプライン化の比較</h1> + +地球と月を表示する例題(universe)を使用。 + +<table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> +<caption>パイプライン化の効果(universe)</caption> +<tr> +<th></th> +<th>FPS</th> +<th>mail待ちの割合</th> +<th>稼働率</th> +</tr> +<tr align="center"> +<td>Pipelineあり</td> +<td>19.6FPS</td> +<td>68.8%</td> +<td>29%</td> +</tr> +<tr> +<tr align="center"> +<td>Pipelineなし</td> +<td>17FPS</td> +<td>72.6%</td> +<td>25.4%</td> +</tr> + +</table> +</div> + +<div class="slide"> +<h1>RenderingEngine</h1> + +RenderingEngineでは、描画するためのテクスチャをSPEに読み込む必要がある<br> + +テクスチャをSPE内でのキャッシュした。 <ul> - <li>TaskManager</li> - <ul> - <li>Taskの同期にはCellのMail機能を使う</li> - <li>Mailの同期するタイミングの改良</li> - <ul> - <li>MailQueue</li> - <li>TaskArray</li> - </ul> + <li>DrawSpan内で、描画するためのテクスチャデータを読み込む。</li> + <li>テクスチャは分割さていて、必要な時に必要な部分を読み込む</li> + <li>そこで、テクスチャをキャッシュするようにした(LRU)</li> + <li>テクスチャのデータはハッシュで管理する</li> </ul> - <li>RenderingEngine</li> - <ul> - <li>Taskのパイプライン化</li> - <li>扱う画像をSPE側でキャッシュする</li> - </ul> +</div> + + + +<div class="slide"> +<h1>SPEのキャッシュ効果</h1> + +<table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> +<caption>SPEのキャッシュの効果</caption> +<tr> +<th></th> +<th>キャッシュなし</th> +<th>キャッシュあり</th> +<th>性能</th> +</tr> + +<tr align="center"> +<td>ball_bound</td> +<td>4FPS</td> +<td>30FPS</td> +<td>7.5倍</td> +</tr> -</ul> +<tr align="center"> +<td>universe</td> +<td>6FPS</td> +<td>17FPS</td> +<td>2.8倍</td> +</tr> + +<tr align="center"> +<td>panel</td> +<td>0.2FPS</td> +<td>2.6FPS</td> +<td>13倍</td> +</tr> + +</table> + +<!--実は改良前の計測にバグが。 +キャッシュを無効にした場合にキャッシュヒットはしないが、 +キャッシュ処理は行う。つまり余計な処理が入っていた。 +--> + +<!--テクスチャは頻繁に読み込みが行われるので、キャッシュは有効だった。--> +<!--Span一つに対して、分割されたテクスチャが複数必要。 +Spanの数は、1920x1080 の解像度で、最低でも8000ほどのテクスチャ読み込みが起こる。--> </div> + +<div class="slide"> +<h1>SPEのキャッシュ効果</h1> + +<table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> +<caption>SPEのキャッシュの効果</caption> +<tr> +<th></th> +<th>キャッシュなし</th> +<th>キャッシュあり</th> +<th>性能差</th> +</tr> + +<tr align="center"> +<td>ball_bound</td> +<td>28FPS</td> +<td>30FPS</td> +<td>+2FPS</td> +</tr> + +<tr align="center"> +<td>universe</td> +<td>22.9FPS</td> +<td>17FPS</td> +<td>-5.9FPS</td> +</tr> + +<tr align="center"> +<td>panel</td> +<td>5.0FPS</td> +<td>2.6FPS</td> +<td>-2.4FPS</td> +</tr> + +</table> + +ball_bound は扱うテクスチャが少なく、小さい + +</div> + + <div class="slide"> <h1>Mailbox機能</h1> CellのMailbox機能<br> @@ -401,7 +548,7 @@ <ul> <li>PPEとSPEとの間を双方向で32bitのデータを受け渡す</li> <li>FIFO キュー構造</li> -</ul> +</ul><br> Mailboxの種類 <ul> <li>Inbount Mailbox(PPE->SPE 4つ)</li> @@ -472,7 +619,7 @@ 地球と月を表示する例題を使って計測した。 </div> - +<!-- <div class="slide"> <h1>Ceriumの改良点の概要</h1> @@ -498,7 +645,7 @@ </ul> </div> - +--> <div class="slide"> <h1>TaskArray</h1> @@ -507,7 +654,7 @@ <ul> <li>依存関係はグループ化できる</li> <li>TaskArrayを用いて複数のTaskのMailを一つに扱う</li> -</ul> +</ul><br> Mailの数を減らせるので、Mailのための処理が減る。その分処理速度が上がる @@ -535,7 +682,6 @@ </div> - <div class="slide"> <h1>MailQueueとTaskArray</h1> @@ -577,177 +723,18 @@ <div class="slide"> -<h1>Ceriumの改良点の概要</h1> - -Ceriumの改良点の概要 - -<ul> - <li>TaskManager</li> - <ul> - <li>Taskの同期にはCellのMailbox機能を使う</li> - <li>Mailの同期するタイミングの改良</li> - <ul> - <li><s>MailQueue</s></li> - <li><s>TaskArray</s></li> - </ul> - </ul> - - <li>RenderingEngine</li> - <ul> - <li>Taskのパイプライン化</li> - <li>扱う画像をSPE側でキャッシュする</li> - </ul> - -</ul> - -</div> - - - - -<div class="slide"> -<h1>パイプライン化</h1> -<table height="100%" width="100%" border="0"> -<tr><td align="center" valign="middle"> -<img src="gazo/renderingengine4.png" style="width: 40%%"></td></tr> -</table> - -あまり、多段にするとゲームのキー入力の反映が遅れる。DrawSpanの処理が他の二つに比べて重いので -DrawSpanとパイプラインを組むことで十分に隠れる - -</div> - -<div class="slide"> -<h1>パイプライン化の比較</h1> - -例題:<br> -PS3上で学生実験で学生が作成したシューティングゲーム -SuperDandy を用いる。 - - -</div> - - -<div class="slide"> -<h1>パイプライン化の比較</h1> - -<table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> -<caption>パイプライン化の効果(dandy)</caption> -<tr> -<th></th> -<th>改良前</th> -<th>改良後</th> -<th>性能</th> -</tr> -<tr align="center"> -<td>dandy</td> -<td>11.5FPS</td> -<td>16.6FPS</td> -<td>44%向上</td> -</tr> -</table> - -44%の向上がみられた。 - -</div> - -<div class="slide"> -<h1>Ceriumの改良点の概要</h1> - -Ceriumの改良点の概要 - -<ul> - <li>TaskManager</li> - <ul> - <li>Taskの同期にはCellのMailbox機能を使う</li> - <li>Mailの同期するタイミングの改良</li> - <ul> - <li><s>MailQueue</s></li> - <li><s>TaskArray</s></li> - </ul> - </ul> - - <li>RenderingEngine</li> - <ul> - <li><s>Taskのパイプライン化</s></li> - <li>扱う画像をSPE側でキャッシュする</li> - </ul> - -</ul> - -</div> - - -<div class="slide"> -<h1>SPEのキャッシュ効果</h1> - -SPE内でのキャッシュ - -<ul> - <li>DrawSpan内で、描画するためのテクスチャデータを読み込む。</li> - <li>テクスチャは分割さていて、必要な時に必要な部分を読み込む</li> - <li>そこで、テクスチャをキャッシュするようにした(LRU)</li> - <li>テクスチャのデータはハッシュで管理する</li> - </ul> - -</div> - - -<div class="slide"> -<h1>SPEのキャッシュ効果</h1> - -<table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> -<caption>SPEのキャッシュの効果(universe)</caption> -<tr> -<th></th> -<th>改良前</th> -<th>改良後</th> -<th>性能</th> -</tr> - -<tr align="center"> -<td>ball_bound</td> -<td>4FPS</td> -<td>30FPS</td> -<td>7.5倍</td> -</tr> - -<tr align="center"> -<td>panel</td> -<td>0.2FPS</td> -<td>2.6FPS</td> -<td>13倍</td> -</tr> - -</table> - -テクスチャは頻繁に読み込みが行われるので、キャッシュは非常に有効だった。 -Span一つに対して、分割されたテクスチャが複数必要。 -Spanの数は、1920x1080 の解像度で、最低でも8000ほどのテクスチャ読み込みが起こる。 - -</div> - -<div class="slide"> -<h1>SPEのキャッシュ効果</h1> - -実は改良前の計測にバグが。キャッシュを無効にした場合にキャッシュがHITしない動作 - - -</div> - - -<div class="slide"> <h1>OpenGLとの比較</h1> OpenGL(Open Graphics Library)とは、Silicon Graphics社が開発した、3Dグラフィックス処理の ためのプログラミングインターフェース。Taskに分割され、SPEを使用したCeriumと、PPEのみで動作 -するOpenGLとで、処理速度の比較をした。例題は先ほど紹介したSuperDandyを用いた。 +するOpenGLとで、処理速度の比較をした。<br><br> + +比較する例題には学生が実験中に作成したSuperDandyを用いた。 </div> <div class="slide"> <h1>OpenGLとの比較</h1> <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center"> -<caption>パイプライン化の効果(universe)</caption> <tr> <th></th> <th>OpenGL</th> @@ -778,7 +765,7 @@ <ul> <li>MailQueue</li> <li>TaskArray</li> -</ul> +</ul><br> で待ち時間の削減ができる @@ -791,7 +778,7 @@ <ul> <li>Task実行をパイプライン化</li> -</ul> +</ul><br> SPEの待ち時間を解消できる。頻繁に扱うデータはSPE内でキャッシュするのがよい