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">