Mercurial > hg > Papers > 2009 > tkaito-sigos
changeset 24:f2d647428bdb default tip
final!!?
author | admin@mb22-no-macbook-2.local |
---|---|
date | Fri, 24 Apr 2009 14:31:04 +0900 |
parents | cbfd29809746 |
children | |
files | presen/pre1.html presen/pre1.html~ |
diffstat | 2 files changed, 166 insertions(+), 95 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/pre1.html Fri Apr 24 03:06:46 2009 +0900 +++ b/presen/pre1.html Fri Apr 24 14:31:04 2009 +0900 @@ -116,11 +116,12 @@ 公開されていないことから、Rendering Engine も独自のものを持つことにした </p> <ul> - <li><font color="maroon">問題点1</font> : SPE と Local Store</li><br> + <li><font color="maroon">問題点1</font> : SPE の Local Store</li> <ul> - <li>Cell に搭載されている SPE は Local Store (256KB) にしかアクセスできない</li> + <li>Cell に搭載されている SPE は Local Store (256KB) にしかアクセスできず、 + 直接メインメモリにアクセスすることができない</li> </ul> - <li><font color="maroon">問題点2</font> : MFC を用いた DMA 命令</li><br> + <li><font color="maroon">問題点2</font> : MFC を用いた DMA 命令</li> <ul> <li>メインメモリにアクセスするには MFC を用いて Direct Memory Access 命令を送らなければならない</li> <li>DMA には待ち時間が存在する。待ち時間の間 SPE が動作しなければマルチコアプロセッサのパフォーマンス @@ -277,6 +278,27 @@ </font> </div> +<div class="slide" id="opengl"> +<h1>OpenGL</h1> +<dl class="docutils"> +<dt>OpenGL</dt> +<dd>オープンソースの3Dグラフィックスプログラムインターフェース</dd> +</dl> +<ul> +<li>変換行列、光源、カメラなどの API を実装</li> +<li>親子関係の表現も可能</li> +</ul> +<p>Cerium での OpenGL の使用の問題</p> +<ul> +<li>SceneGraph の OpenGL の API にあわせるオーバーヘッド</li> +<li>SceneGraph は自身の変換行列を持っている<ul> +<li>SceneGraph 単体でオブジェクトの操作は可能</li> +</ul> +</li> +<li>SceneGraph だけで問題ない</li> +</ul> +</div> + <div class="slide"> <h1>Rendering Engine</h1> <br> @@ -299,15 +321,6 @@ </div> <div class="slide"> -<h1>Rendering Engine (Con't)</h1> -<br> -<center> -<img src="photo/byouga.jpg" alt="byouga" width="600" height="400"> -</center> -</ul> -</div> - -<div class="slide"> <h1>Task Manager</h1> <center> <p class="ep1">Task と呼ばれる、分割された各プログラムを管理する</p> @@ -560,9 +573,6 @@ <tr><td><font size="4">Gallium (SPE 6 個)</font></td> <td><font size="4">5.4 FPS</font></td> </tr> -<tr><td><font size="4">Cerium (SPE 1 個)</font></td> -<td><font size="4">2.5 FPS</font></td> -</tr> <tr><td><font size="4">Cerium (SPE 6 個)</font></td> <td><font color="maroon" size="4">9.5 FPS</font></td> </tr> @@ -579,26 +589,6 @@ </li> </ul> </div> -<div class="slide" id="opengl"> -<h1>比較 - OpenGL</h1> -<dl class="docutils"> -<dt>OpenGL</dt> -<dd>オープンソースの3Dグラフィックスプログラムインターフェース</dd> -</dl> -<ul class="simple"> -<li>変換行列、光源、カメラなどの API を実装</li> -<li>親子関係の表現も可能</li> -</ul> -<p>Cerium での OpenGL の使用の問題</p> -<ul class="simple"> -<li>SceneGraph の OpenGL の API にあわせるオーバーヘッド</li> -<li>SceneGraph は自身の変換行列を持っている<ul> -<li>SceneGraph 単体でオブジェクトの操作は可能</li> -</ul> -</li> -<li>SceneGraph だけで問題ない</li> -</ul> -</div> <div class="slide"> <h1>まとめ</h1> @@ -623,6 +613,54 @@ </ul> </div> +<div class="slide"> +<h1>Rendering Engine (Con't)</h1> +<br> +<center> +<img src="photo/byouga.jpg" alt="byouga" width="600" height="400"> +</center> +</ul> +</div> + +<div class="slide"> +<h1>Scale選択</h1> +<font size="4"> +<pre> + +static int +getScale(int width, int height, int tex_width, int tex_height, int scale_max) +{ + int base, tex_base; + int scale = 1; + + /** + * width と height で、長い方を基準に、 + * texture の scale を決める + */ + if (width > height) { + base = width; + tex_base = tex_width; + } else { + base = height; + tex_base = tex_height; + } + + if (tex_base > base) { + int t_scale = tex_base/base; + + while (t_scale >>= 1) { + scale <<= 1; + } + } + + return (scale > scale_max) ? scale_max : scale; +} + + +</pre> + +</div> + <!-- <div class="slide"> <h1>今後の課題</h1>
--- a/presen/pre1.html~ Fri Apr 24 03:06:46 2009 +0900 +++ b/presen/pre1.html~ Fri Apr 24 14:31:04 2009 +0900 @@ -86,31 +86,65 @@ </center> </div> -<div class="slide"> -<h1>研究の背景と目的</h1> -<font size="6">研究背景</font> +<div class="slide" id="id1"> +<h1>研究の背景</h1> +<p> + 現在、学生実験で PS3Linux を用いてゲーム開発を行っているが、 +学生には困難であることがわかってきている +</p> +<ul> +<li><font color="maroon">問題1</font> : Cell アーキテクチャプログラミング <ul> - <li><p class="ep1">Cell に搭載されている SPE は Local Store (256KB) にしかアクセスできない。</li> - <li><p class="ep1">メインメモリにアクセスするには MFC を用いて Direct Memory Access 命令を - 送らなければならない。</li> - <li><p class="ep1">また、この DMA には待ち時間が存在する。待ち時間の間 SPE が動作しなければマルチコアプロセッサのパフォーマンス - が極端に下がる。</li> +<li>Many Core による並列プログラミング +<p>(データ、コードの分割の必要性)</p> +</li> +<li>Cell の仕様 (DMA、データのアライメント、etc..) +</li> +</ul> +</li> +<li><font color="maroon">問題2</font> : ゲーム開発用の Framework が無い +</li> +</ul> +<p>実験期間の大半を Cell の勉強に費やさねばならず、 +開発されるゲームのレベルが例年一定以上にならない</p> +</div> + +<div class="slide"> +<h1>研究の背景 (Con't)</h1> +<p> + 我々の研究室では PS3 ゲーム開発用フレームワーク Cerium を開発した。さらに、PS3 の GPU の情報が +公開されていないことから、Rendering Engine も独自のものを持つことにした +</p> +<ul> + <li><font color="maroon">問題点1</font> : SPE の Local Store</li> + <ul> + <li>Cell に搭載されている SPE は Local Store (256KB) にしかアクセスできず、 + 直接メインメモリにアクセスすることができない</li> + </ul> + <li><font color="maroon">問題点2</font> : MFC を用いた DMA 命令</li> + <ul> + <li>メインメモリにアクセスするには MFC を用いて Direct Memory Access 命令を送らなければならない</li> + <li>DMA には待ち時間が存在する。待ち時間の間 SPE が動作しなければマルチコアプロセッサのパフォーマンス + が極端に下がる</li> + </ul> </ul> </div> <div class="slide"> -<h1>研究の背景と目的(Con't)</h1> -<font size="6">研究目的</font> +<h1>研究目的</h1> +<p> + SPE 内のデータ管理を行い Cell プログラミングの並列度を確保する手法を提案する +</p> <ul> -<!--<font size="5"> --> - <li><p class="ep1">SPE 内のデータ管理を行い Cell プログラミングの並列度を確保する手法を提案する。</li> - <li><p class="ep1">本研究室で開発した Cerium というの Rendering Engine を - 用いたゲームプログラミングを例題とする。</li> - <li><p class="ep1">描画に必要な Texture データは、SPE の LS に収まりきらない場合があるので、 - データを分割して転送、処理する必要がある。</li> - <li><p class="ep1">既に SPE 内にデータが転送されている場合、そのデータの管理を SPE 内で行うことによって、 - DMA 転送待ち時間の間も SPE 内での処理を継続させる。</li> -<!--</font>--> + <li><p class="ep1">描画における Texture の処理</li> + <ul> + <li>描画に必要な Texture データの SPE への分割、転送処理</li> + </ul> + <li><p class="ep1">DMA 転送待ち時間の間の SPE の処理</li> + <ul> + <li>既に SPE 内にデータが転送されている場合、そのデータの管理を SPE 内で行うことによって、 + DMA 転送待ち時間の間も SPE 内での処理を継続させる</li> + </ul> </ul> </div> @@ -122,7 +156,7 @@ <li>Cerium</li> <li>Rendering 部分の高速化</li> <li>比較</li> -<li>まとめと今後の課題</li> +<li>まとめ</li> </font> </ul> </div> @@ -135,7 +169,7 @@ <li><font color="silver">Cerium</font></li> <li><font color="silver">Rendering 部分の高速化</font></li> <li><font color="silver">比較</font></li> -<li><font color="silver">まとめと今後の課題</font></li> +<li><font color="silver">まとめ</font></li> </font> </ul> </div> @@ -206,7 +240,7 @@ <li>Cerium</li> <li><font color="silver">Rendering 部分の高速化</font></li> <li><font color="silver">比較</font></li> -<li><font color="silver">まとめと今後の課題</font></li> +<li><font color="silver">まとめ</font></li> </font> </ul> </div> @@ -244,6 +278,27 @@ </font> </div> +<div class="slide" id="opengl"> +<h1>OpenGL</h1> +<dl class="docutils"> +<dt>OpenGL</dt> +<dd>オープンソースの3Dグラフィックスプログラムインターフェース</dd> +</dl> +<ul> +<li>変換行列、光源、カメラなどの API を実装</li> +<li>親子関係の表現も可能</li> +</ul> +<p>Cerium での OpenGL の使用の問題</p> +<ul> +<li>SceneGraph の OpenGL の API にあわせるオーバーヘッド</li> +<li>SceneGraph は自身の変換行列を持っている<ul> +<li>SceneGraph 単体でオブジェクトの操作は可能</li> +</ul> +</li> +<li>SceneGraph だけで問題ない</li> +</ul> +</div> + <div class="slide"> <h1>Rendering Engine</h1> <br> @@ -266,15 +321,6 @@ </div> <div class="slide"> -<h1>Rendering Engine (Con't)</h1> -<br> -<center> -<img src="photo/byouga.jpg" alt="byouga" width="600" height="400"> -</center> -</ul> -</div> - -<div class="slide"> <h1>Task Manager</h1> <center> <p class="ep1">Task と呼ばれる、分割された各プログラムを管理する</p> @@ -316,7 +362,7 @@ <li><font color="silver">Cerium</font></li> <li>Rendering 部分の高速化</li> <li><font color="silver">比較</font></li> -<li><font color="silver">まとめと今後の課題</font></li> +<li><font color="silver">まとめ</font></li> </font> </ul> </div> @@ -475,7 +521,7 @@ <li><font color="silver">Cerium</font></li> <li><font color="silver">Rendering 部分の高速化</font></li> <li>比較</li> -<li><font color="silver">まとめの今後の課題</font></li> +<li><font color="silver">まとめ</font></li> </font> </ul> </div> @@ -527,9 +573,6 @@ <tr><td><font size="4">Gallium (SPE 6 個)</font></td> <td><font size="4">5.4 FPS</font></td> </tr> -<tr><td><font size="4">Cerium (SPE 1 個)</font></td> -<td><font size="4">2.5 FPS</font></td> -</tr> <tr><td><font size="4">Cerium (SPE 6 個)</font></td> <td><font color="maroon" size="4">9.5 FPS</font></td> </tr> @@ -546,36 +589,16 @@ </li> </ul> </div> -<div class="slide" id="opengl"> -<h1>比較 - OpenGL</h1> -<dl class="docutils"> -<dt>OpenGL</dt> -<dd>オープンソースの3Dグラフィックスプログラムインターフェース</dd> -</dl> -<ul class="simple"> -<li>変換行列、光源、カメラなどの API を実装</li> -<li>親子関係の表現も可能</li> -</ul> -<p>Cerium での OpenGL の使用の問題</p> -<ul class="simple"> -<li>SceneGraph の OpenGL の API にあわせるオーバーヘッド</li> -<li>SceneGraph は自身の変換行列を持っている<ul> -<li>SceneGraph 単体でオブジェクトの操作は可能</li> -</ul> -</li> -<li>SceneGraph だけで問題ない</li> -</ul> -</div> <div class="slide"> -<h1>まとめと今後の課題</h1> +<h1>まとめ</h1> <ul> <font size="6" color="#000000"> <li><font color="silver">Cell アーキテクチャの概要</font></li> <li><font color="silver">Cerium</font></li> <li><font color="silver">Rendering 部分の高速化</font></li> <li><font color="silver">比較</font></li> -<li>まとめと今後の課題</li> +<li>まとめ</li> </font> </ul> </div> @@ -591,17 +614,27 @@ </div> <div class="slide"> +<h1>Rendering Engine (Con't)</h1> +<br> +<center> +<img src="photo/byouga.jpg" alt="byouga" width="600" height="400"> +</center> +</ul> +</div> + +<!-- +<div class="slide"> <h1>今後の課題</h1> <ul> <li><p class="ex1">SceneGraph の SPE 上での実行</li> <li><p class="ex1">プログラムコードの SPE 上での <br>On demand load</li> <ul> <li><p class="ep1">現在は予め全てのコードを SPE 上に置いておく必要がある</li> -<li><p class="ep1">SPE のメモリ領域 (256B) を考えると好ましくない</li> +<li><p class="ep1">SPE のメモリ領域 (256KB) を考えると好ましくない</li> </ul> </ul> </div> - +--> <!-- <div class="slide">