changeset 9:df0056a7b95d

ひとまず完成
author gongo@gendarme.cr.ie.u-ryukyu.ac.jp
date Tue, 10 Feb 2009 14:06:39 +0900
parents 0789faebeac1
children cd28a12aa36a
files paper/cell.tex paper/cerium.tex paper/compare.tex paper/conclusion.tex paper/images/amdahl.bb paper/images/cell_arch.bb paper/images/cell_mailbox.bb paper/images/cell_ppe.bb paper/images/cell_simd.bb paper/images/cell_spe.bb paper/images/cell_spurs_pipeline.bb paper/images/cell_spurs_task.bb paper/images/cerium_game_1.bb paper/images/cerium_game_1.pdf paper/images/cerium_game_sg.bb paper/images/cerium_game_sg.graffle paper/images/cerium_game_sg.pdf paper/images/cerium_rendering_draw_span.bb paper/images/cerium_rendering_half.bb paper/images/cerium_rendering_spack.bb paper/images/cerium_rendering_span.bb paper/images/cerium_rendering_span_tex.bb paper/images/cerium_rendering_tex_tapestry.bb paper/images/cerium_rendering_tile.bb paper/images/cerium_sg_create.bb paper/images/cerium_sg_createlist.bb paper/images/cerium_sg_example.bb paper/images/cerium_sg_tree.bb paper/images/cerium_task.bb paper/images/com_gallium.bb paper/images/com_gallium.pdf paper/images/cp_opencl_plat.bb paper/images/manycore_data_split.bb paper/images/manycore_step.bb paper/images/tm_scheduler.bb paper/images/tm_sm_global.bb paper/images/tm_sm_pipeline_wait.bb paper/images/tm_sm_rbuf.bb paper/images/tm_sm_state.bb paper/images/tm_sm_wbuf.bb paper/images/tm_sort.bb paper/images/tm_sort_calc.bb paper/images/tm_sort_calc1m.bb paper/images/tm_sync.bb paper/images/tm_task_depend.bb paper/images/tm_task_post.bb paper/images/tm_task_struct.bb paper/introduciton.tex paper/master_paper.bib
diffstat 49 files changed, 404 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/paper/cell.tex	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/cell.tex	Tue Feb 10 14:06:39 2009 +0900
@@ -208,7 +208,7 @@
 
 ここでは、現在発表されている Cell の開発環境である SPURS について説明する。
 
-SPURS は、閉じた並列分散と考えることができる Cell の環境で、
+SPURS \cite{spurs} は、閉じた並列分散と考えることができる Cell の環境で、
 いかに効率よく動作させるかということを考えたシステムである。
 
 Cell の性能を存分に生かすためには SPE を効率よく使い切ることであり、
--- a/paper/cerium.tex	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/cerium.tex	Tue Feb 10 14:06:39 2009 +0900
@@ -1,6 +1,6 @@
 \chapter{Cerium} \label{chapter:cerium}
 
-Cerium \cite{cerium} は、我々が提案したゲーム開発フレームワークで、
+Cerium \cite{gongo2} \cite{cerium} は、我々が提案したゲーム開発フレームワークで、
 独自に Rendering Engine (\ref{sec:cerium_rendering}節) を持つ。
 ゲーム中のオブジェクトの振る舞いや
 ルールは SceneGraph (\ref{sec:cerium_scene_graph}節) で管理し、
@@ -71,7 +71,7 @@
   \item Collision: 他のノードと衝突したときの動き
 \end{itemize}
 
-\subsection{Scene ポリゴンの生成}
+\subsection{Scene ポリゴンの生成} \label{sec:cerium_sg_xml}
 ゲーム中に登場するオブジェクトは、オープンソースの
 3Dモデリングツールである Blender \cite{blender} を用いる。
 Blender で記述したポリゴンオブジェクトを、座標やテクスチャイメージを
@@ -928,4 +928,151 @@
 タスク終了後、linebuf をフレームバッファに DMA 転送することで、描画が完了する。
 
 
-\section{Cerium を用いた学生によるゲーム開発}
+\section{Cerium を用いた学生によるゲーム開発} \label{sec:cerium_student}
+
+\figref{cerium_game_1} は、学生が Cerium を実際に
+使用して作った作成した 3D シューティングゲームである。
+学生は、始めに MacOSX で開発を進め、移動や衝突判定のアルゴリズムを
+確認し、そのままの形で PS3 で動作することも確認できた。
+開発期間は1ヶ月である。
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.2]{images/cerium_game_1.pdf}
+    \caption{SuperDandy3D (仮)}
+    \label{fig:cerium_game_1}
+  \end{center}
+\end{figure}
+
+このゲームの SceneGraph は \figref{cerium_game_sg} のようになる。
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.8]{images/cerium_game_sg.pdf}
+    \caption{SuperDandy3D (仮) の SceneGraph}
+    \label{fig:cerium_game_sg}
+  \end{center}
+\end{figure}
+
+
+
+Player はキーボードやジョイスティックの十字キーで移動ができ、
+対応するボタンを押すと弾を発射する。以下がそのコードである。
+
+{\small
+\begin{verbatim}
+player_move_all(SceneGraphPtr node, int screen_w, int screen_h)
+{
+    Pad *pad = sgroot->getController();
+
+    // 移動中は機体の傾きが変わるため
+    // move_right, move_left, move_up, move_down 内で
+    // 傾きの計算をしている
+    if (pad->right.isHold() || pad->left.isHold() ||
+        pad->up.isHold() || pad->down.isHold()) {
+        if (pad->right.isHold()) {
+            player_move_right(node, screen_w, screen_h);
+        } else if (pad->left.isHold()) {
+            player_move_left(node, screen_w, screen_h);
+        }
+
+        if (pad->down.isHold()) {
+            player_move_up(node, screen_w, screen_h);
+        } else if(pad->up.isHold()) {
+            player_move_down(node, screen_w, screen_h);
+        }
+    } else {
+        player_move_idle(node);
+    }
+
+    // 弾を発射
+    if (pad->circle.isPush()) {
+        // 弾の SceneGraph を生成し、初期化したあと
+        // node (player) の兄弟として SceneGraph に登録する
+        SceneGraphPtr bullet = sgroot->createSceneGraph(BULEBULLET);
+        bullet->set_move_collision(bluebullet_move, bullet_collision);
+        bullet_init(bullet, node);
+        node->addBrother(bullet);
+    }
+}
+\end{verbatim}
+}
+
+発射された弾は Enemy と衝突判定を行う。
+弾と Enemy が衝突していれば、両者とも SceneGraph から削除する。
+また、弾が画面外から消えたら弾自身を削除する。
+以下がそのコードとなる。
+
+
+{\small
+\begin{verbatim}
+void
+bullet_collision(SceneGraphPtr node, int w, int h,
+                 SceneGraphPtr tree)
+{
+    SceneGraphIteratorPtr it = sgroot->getIterator(tree);
+    static int damage = 0;
+
+    // tree に E_PLANE が入れば全て判定する
+    for (; it->hasNext(E_PLANE);) {
+        // Iterator を E_PLANE まで進める
+        it->next(E_PLANE);
+        // Iterator が現在参照している SceneGraph を返す
+        SceneGraphPtr enemy = it->get();
+
+        int judge = square_judge(node, enemy);
+        if (judge == HIT) {
+            enemy->remove();
+            node->remove();
+        }
+     }
+
+     // 画面外に消えたら削除
+     if (node->xyz[1] > 100) {
+         node->remove();
+     }
+}
+\end{verbatim}
+}
+
+SceneGraphIterator とは、SceneGraph を走査するオブジェクトである。
+上記コードの様に、tree の中から特定の SceneGraph を検索する場合に用いる。
+SceneGraph を指定しなければ順に SceneGraph を辿っていく。
+
+Back は \figref{cerium_game_1} の画面中央にある背景画像である。
+本来は Back は画面全体に表示されるべきだが、
+Cerium にはまだ背景用の SceneGraph が実装されていない。
+
+このゲームを、MacOSX、Linux、PS3上でそれぞれ動作させ、
+それらの実行速度を比較してみた。\tabref{cerium_game_tab} が結果となる。
+
+\begin{table}[htb]
+  \begin{center}
+    \caption{SuperDandy3D(仮) の各動作環境での実行速度} \label{tab:cerium_game_tab}
+    \hbox to\hsize{\hfil
+      \begin{tabular}{l|r} \hline \hline
+        MacOSX 10.5 & 5.7 FPS \\ \hline
+        Linux (Fedora 10)  & 7.8 FPS \\ \hline
+        PS3 SPE 1個 & 8.1 FPS \\ \hline
+        PS3 SPE 6個 & {\bf 29.3 FPS} \\ \hline
+      \end{tabular}\hfil}
+  \end{center}
+\end{table}
+
+Linux は FrameBuffer に直接描画しているため
+一旦 SDL\_Surface を経由して描画する MacOSX より速い。
+
+PS3 では、SPE の数を 1 から 6 に変えると、およそ 3.6 倍となった。
+性能は上がっているものの、台数効果が出ていないと言える。
+この原因として以下の点が挙げられる。
+
+\begin{itemize}
+\item SceneGraph の演算を SPE で行っていない
+\item SPE での処理に SIMD 演算を組み込んでいない
+\end{itemize}
+
+各 SceneGraph の move、collision は、現在メインスレッドの関数として
+実行している。これらをタスクとして生成し、SPE 上で実行することにより、
+並列度が確保でき、実行速度が向上すると考えている。
+また、SIMD 演算を積極的に用いることにより、SPE の処理能力を最大限に
+使うことができるため、今後の課題として挙がる。
--- a/paper/compare.tex	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/compare.tex	Tue Feb 10 14:06:39 2009 +0900
@@ -1,6 +1,9 @@
 \chapter{比較} \label{chapter:compare}
 
-ここでは
+ここでは Khronos OpenCL Working Group が開発している、
+並列プログラミングのフレームワークである OpenCL 及び、
+Cell で動作する OpenGL のドライバである Gallium3D について説明し、
+TaskManager 、Cerium との比較を行う。
 
 \section{OpenCL}
 
@@ -10,7 +13,6 @@
 OpenCL C プログラミング言語は ISO/IEC 9899:1999 (C99) 規格を
 ベースとしている。
 
-
 OpenCL のプラットフォームモデルは \figref{cp_opencl_plat} のようになり、
 一つの Host と複数の OpenCL Device で構成されている。
 OpenCL devices の中では Compute Units (CUs) として分割され、その中でさらに
@@ -49,3 +51,124 @@
 アクセス権限が異なる (アドレス空間が異なる)。
 
 プログラミングモデルとしては、データ並列、タスク並列をサポートしている。
+
+OpenCL は Host や 各 device に kernel があることや、
+device 毎にメモリアドレス空間が違う、プログラミングモデル等、
+TaskManager とよく似ている。
+
+OpenCL に対して TaskManager が優れている点は、Mac OS X や Linux、
+Cell といった複数の環境で動作することによる信頼性の確保のしやすさにある。
+このことは \figref{manycore_step} のような段階に沿って
+開発が可能になることに繋がる。
+
+\section{Gallium}
+
+Gallium3D \cite{gallium} とは Tungsten Graphics 社が開発している、
+オープンソースの 3D グラフィックドライバ である。
+現在、Gallium には Intel GPU (i915) と Cell のドライバが実装されており、
+OSMesa \cite{osmesa} ではこの Cell ドライバを用いている。
+現在の Cell Driver のバージョンは 0.2 で、
+Cell SDK (Software Development Kit) の version 2.1 もしくは 3.0が 必要となる。
+
+Gallium Cell Driver では、Triangle を SPE に送り、
+そこから得られた Span に対してテクスチャを貼りレンダリングする。
+この時、Tile と呼ばれる、分割した描画領域毎に FrameBuffer へ書き込む。
+SPE は 6 個使用している。SPE 上では SIMD 演算を積極的に使用している。
+
+\subsection{実行速度比較}
+
+Cerium は OSMesa のレンダリング実装を参考にしているため、
+Galiium と同様のレンダリングを行っている。
+ここでは、Cerium と Gallium の実行速度を計測し比較した。
+例題プログラムとして、\figref{cerium_sg_example} の地球のオブジェクトを
+表示して (\figref{com_gallium}) 、SDL から得られる実行時間を元に
+FPS (Frame Per Second) を出力して比較する。解像度は 1920x1080 とする。
+Gallium、Cerium それぞれで以下のような実行環境を構築している。
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.2]{images/com_gallium.pdf}
+    \caption{Gallium、Cerium 例題}
+    \label{fig:com_gallium}
+  \end{center}
+\end{figure}
+
+\subsubsection{実行環境構築 Gallium}
+
+Gallium の例題プログラムでは、Cell Driver が組み込まれている
+OpenGL library (libGL) をロードして実行する。
+また、\ref{sec:cerium_sg_xml} 節で説明した xml ファイル を用いて
+OpenGL の API で表示するルーチンは同研究室の杉山が実装した。
+以下がそのコードとなる。
+
+\begin{verbatim}
+void
+SceneGraph::gl_draw(void)
+{
+  glEnable(GL_TEXTURE_2D);
+  glBindTexture(GL_TEXTURE_2D, (GLuint)texture);
+
+  glTranslatef(xyz[0], xyz[1], xyz[2]);
+
+  glTranslatef(c_xyz[0], c_xyz[1], c_xyz[2]);
+  glRotatef(angle[0], 1, 0, 0);
+  glRotatef(angle[1], 0, 1, 0);
+  glRotatef(angle[2], 0, 0, 1);
+  glTranslatef(-c_xyz[0], -c_xyz[1], -c_xyz[2]);
+
+  glBegin( GL_TRIANGLES);
+  for(n = 0; n < size*3; n += 3) {
+      glTexCoord2f(tex_pos[n], 1-data[n+1]);
+      glVertex3f(coord[n], coord[n+1], coord[n+2]);
+      glNormal3f(normal[n], normal[n+1], normal[n+2]);
+  }
+  glEnd();
+  glDisable(GL_TEXTURE_2D);
+}
+\end{verbatim}
+
+\subsubsection{実行環境構築 Cerium}
+
+Cerium の描画出力は SDL Window と FrameBuffer の二種類ある。
+FrameBuffer では、SPE から直接 FrameBuffer へ DMA 転送により書き込むが、
+SDL Window 経由では、一度 PPE の バッファ (SDL\_Surface) へ書き込んでから
+FrameBuffer へ書き込む。以下がそのコードとなる。
+通常、SDL を用いる場合はこの様なコードになる。
+
+\begin{verbatim}
+  // bitmap : RGB値を持つ バッファ (SPE から書き込まれる)
+  // screen : FrameBuffer のアドレスを指す
+  SDL_BlitSurface(bitmap, NULL, screen, NULL);
+  SDL_UpdateRect(screen, 0, 0, 0, 0);
+\end{verbatim}
+
+\subsection{実行結果と考察}
+
+各環境の実行結果を \tabref{com_gallium} に示す。
+コンパイラの最適化レベルは -O9 を用いている。
+
+\begin{table}[htb]
+  \begin{center}
+    \caption{Gallium、Cerium 実行速度比較結果} \label{tab:com_gallium}
+    \hbox to\hsize{\hfil
+      \begin{tabular}{l|l} \hline \hline
+        Gallium (SPE 6個) & {\bf 5.4 FPS} \\ \hline
+        \hline
+        Cerium (SDL 出力、SPE 1個) & 2.2 FPS \\ \hline
+        Cerium (FrameBuffer 出力、SPE 1個) & 2.5 FPS \\ \hline
+        Cerium (SDL 出力、SPE 6個) & 6.7 FPS \\ \hline
+        Cerium (FrameBuffer 出力、SPE 6個) & {\bf 9.5 FPS} \\ \hline
+      \end{tabular}\hfil}
+  \end{center}
+\end{table}
+
+結果から、SPE の数が同じ場合は Cerium の方が Gallium よりも実行速度が
+速いと確認できた。
+また、直接 FrameBuffer に書き込む方が速いことも確認できる。
+
+Cerium では光源やシェーディング、アルファブレンディングなどの処理は
+行っておらず、現在は最低限のレンダリング機能しか実装していないため
+速度に差が出たのではないかと考えられる。
+しかし、Gallium と違い Cerium は SIMD 演算をまだ組み込んでいないため、
+%各種レンダリング機能を追加したとしても、
+さらに速度向上が期待できる。
--- a/paper/conclusion.tex	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/conclusion.tex	Tue Feb 10 14:06:39 2009 +0900
@@ -1,1 +1,67 @@
 \chapter{結論} \label{chapter:conclusion}
+
+\section{まとめ}
+
+本稿では、Many Core Architecture を用いた、
+並列プログラムの開発をサポートするフレームワークとして
+Fine Grain Task Manager を提案し、Task Manager を用いて
+独自のレンダリングエンジンを持つPS3ゲーム開発フレームワークの
+Cerium を開発した。
+
+並列プログラミングの経験が浅い学生にとって、
+PS3 を用いたゲーム開発は困難で、学生実験の期間内に
+開発したゲームのレベルが毎年一定以上にはならないという問題があった。
+また、並列プログラムの特徴から、並列度の維持や信頼性の確保が困難であることが
+指摘されている。
+
+そこで、第\ref{chapter:taskmanager}章では
+並列プログラミングのフレームワークとして TaskManager の仕様と実装を説明し、
+この TaskManager を用いた Sort プログラムでは
+並列度が確保でき、台数効果が出ていることが確認できた。
+
+第\ref{chapter:cerium}章では、TaskManager を用いた、ゲーム開発用
+フレームワークである Cerium の仕様と実装を説明した。
+また、実際に学生に Cerium を用いてゲーム開発を行ってもらい、
+その結果から Cerium のフレームワークとして有用性と
+今後必要な実装を確認できた。
+
+最後に、第\ref{chapter:compare}章では、
+Khronos OpenCL Working Group が開発している、
+並列プログラミングのフレームワークである OpenCL 及び、
+Cell で動作する OpenGL のドライバである Gallium3D について説明し、
+TaskManager 、Cerium との比較を行った。
+
+
+\section{今後の課題}
+
+\subsection{SceneGraph の SPE 上での実行}
+
+\ref{sec:cerium_student}節 で述べたように、現在 SceneGraph は
+メインスレッドのみで実行されている。
+衝突判定や行列演算など、SPE で効果的な演算を多くもつ SceneGraph を
+SPE 上で実行させる必要がある。
+
+%そのために実装の必要がある機能を以下に示す。
+%
+%\begin{itemize}
+%\item SPE 上での SceneGraph の操作 (add, remove)
+%\item 
+%\end{itemize}
+
+\subsection{SPE 上での SIMD 演算の導入}
+
+現在の SPE 上での処理は全てスカラ演算で記述されており、
+SPE の機能を活用するには SIMD 演算を使用する方が効果的だと期待している。
+また、コンパイラの最適化により、自動的に SIMD 演算に変換されるような
+データ構造を採用するのも効果的だと考えている。
+
+\subsection{テクスチャのロードアルゴリズム}
+
+\ref{sec:cerium_rendering_texture_hash}節 で述べたように、
+現在テクスチャの追い出し処理は FIFO で実装している。
+そのため、テクスチャのヒット率が確保できない可能性がある。
+高いヒット率を維持するためには、さらに効果的な追い出し法を採用する必要がある。
+また、同じテクスチャを使う Span を同じ SPE に集めるなどの、
+データ構造や SPE への割り振り処理を修正する必要がある。
+
+%\subsection{コードの入れ替え}
--- a/paper/images/amdahl.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/amdahl.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./amdahl.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 360 252
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_arch.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_arch.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_arch.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 505 339
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_mailbox.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_mailbox.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_mailbox.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 514 342
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_ppe.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_ppe.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_ppe.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 370 327
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_simd.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_simd.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_simd.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 402 261
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_spe.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_spe.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_spe.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 380 340
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_spurs_pipeline.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_spurs_pipeline.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_spurs_pipeline.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 533 187
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cell_spurs_task.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cell_spurs_task.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cell_spurs_task.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 507 229
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cerium_game_1.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -0,0 +1,5 @@
+%%Title: ./cerium_game_1.pdf
+%%Creator: ebb Version 0.5.2 (+ArtBox)
+%%BoundingBox: 0 0 1920 1080
+%%CreationDate: Tue Feb 10 14:06:13 2009
+
Binary file paper/images/cerium_game_1.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/cerium_game_sg.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -0,0 +1,5 @@
+%%Title: ./cerium_game_sg.pdf
+%%Creator: ebb Version 0.5.2 (+ArtBox)
+%%BoundingBox: 0 0 491 207
+%%CreationDate: Tue Feb 10 14:06:13 2009
+
Binary file paper/images/cerium_game_sg.graffle has changed
Binary file paper/images/cerium_game_sg.pdf has changed
--- a/paper/images/cerium_rendering_draw_span.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_draw_span.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_draw_span.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 591 313
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_rendering_half.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_half.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_half.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 372 274
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_rendering_spack.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_spack.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_spack.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 533 319
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_rendering_span.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_span.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_span.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 413 247
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_rendering_span_tex.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_span_tex.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_span_tex.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 408 420
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_rendering_tex_tapestry.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_tex_tapestry.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_tex_tapestry.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 563 305
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_rendering_tile.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_rendering_tile.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_rendering_tile.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 510 385
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_sg_create.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_sg_create.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_sg_create.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 487 228
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_sg_createlist.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_sg_createlist.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_sg_createlist.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 557 496
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_sg_example.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_sg_example.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_sg_example.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 625 466
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_sg_tree.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_sg_tree.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_sg_tree.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 425 274
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/cerium_task.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cerium_task.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cerium_task.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 470 535
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/com_gallium.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -0,0 +1,5 @@
+%%Title: ./com_gallium.pdf
+%%Creator: ebb Version 0.5.2 (+ArtBox)
+%%BoundingBox: 0 0 1920 1080
+%%CreationDate: Tue Feb 10 14:06:13 2009
+
Binary file paper/images/com_gallium.pdf has changed
--- a/paper/images/cp_opencl_plat.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/cp_opencl_plat.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./cp_opencl_plat.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 510 237
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/manycore_data_split.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/manycore_data_split.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./manycore_data_split.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 587 154
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/manycore_step.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/manycore_step.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./manycore_step.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 549 335
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_scheduler.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_scheduler.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_scheduler.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 517 562
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sm_global.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sm_global.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sm_global.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 523 364
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sm_pipeline_wait.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sm_pipeline_wait.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sm_pipeline_wait.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 395 213
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sm_rbuf.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sm_rbuf.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sm_rbuf.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 405 225
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sm_state.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sm_state.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sm_state.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 370 342
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sm_wbuf.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sm_wbuf.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sm_wbuf.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 505 487
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sort.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sort.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sort.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 553 371
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sort_calc.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sort_calc.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sort_calc.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 360 216
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sort_calc1m.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sort_calc1m.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sort_calc1m.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 360 216
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_sync.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_sync.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_sync.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 577 554
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_task_depend.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_task_depend.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_task_depend.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 527 383
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_task_post.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_task_post.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_task_post.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 335 388
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/images/tm_task_struct.bb	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/images/tm_task_struct.bb	Tue Feb 10 14:06:39 2009 +0900
@@ -1,5 +1,5 @@
 %%Title: ./tm_task_struct.pdf
 %%Creator: ebb Version 0.5.2 (+ArtBox)
 %%BoundingBox: 0 0 591 364
-%%CreationDate: Mon Feb  9 17:47:56 2009
+%%CreationDate: Tue Feb 10 14:06:13 2009
 
--- a/paper/introduciton.tex	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/introduciton.tex	Tue Feb 10 14:06:39 2009 +0900
@@ -65,8 +65,11 @@
 TaskManager を用いた基本的な並列プログラムを紹介する。
 
 第\ref{chapter:cerium}章では Cerium を構成する機能の紹介と実装を述べる。
-また、実際に学生に制作してもらったゲームを紹介し、学生からユーザとしての
-Cerium の使用の評価を紹介する。
+また、実際に学生に制作してもらったゲームを紹介し、
+その有用性を述べる。
+
+%学生からユーザとしての
+%Cerium の使用の評価を紹介する。
 
 第\ref{chapter:compare}章では TaskManager や Cerium と同じく、
 並列プログラミングのフレームワークである OpenCL や 、Cell 上で動作する
--- a/paper/master_paper.bib	Mon Feb 09 17:59:31 2009 +0900
+++ b/paper/master_paper.bib	Tue Feb 10 14:06:39 2009 +0900
@@ -131,3 +131,9 @@
 title ="{The OpenCL Specification Version 1.0}",
 year = 2007
 }
+
+@misc{gallium,
+author = "",
+title = "{Gallium3D}",
+howpublished = "{http://www.tungstengraphics.com/wiki/index.php/Gallium3D}"
+}
\ No newline at end of file