comparison resume/A-6-1-065746.tex @ 12:0786f5b33f5f

fix resume
author aaa
date Tue, 16 Feb 2010 10:25:46 +0900
parents 074431e5471a
children 6fe1db0ee07c
comparison
equal deleted inserted replaced
11:aac2e16af8c4 12:0786f5b33f5f
19 \setlength{\textheight}{261mm} 19 \setlength{\textheight}{261mm}
20 \setlength{\footskip}{0mm} 20 \setlength{\footskip}{0mm}
21 \pagestyle{empty} 21 \pagestyle{empty}
22 22
23 \begin{document} 23 \begin{document}
24 \title{SceneGraph を用いた\\マルチコア CPU 向けゲームの処理} 24 \title{マルチコア CPU における\\ SceneGraph を用いたゲームの作成}
25 \author{065746J 仲宗根広樹 指導教員 : 河野真治} 25 \author{065746J 仲宗根広樹 指導教員 : 河野真治}
26 \date{\today} 26 \date{\today}
27 \maketitle 27 \maketitle
28 \thispagestyle{fancy} 28 \thispagestyle{fancy}
29 29
110 110
111 現在、Cerium では SceneGraph の Move, Collision を PPE でシーケンシャルに処理しているので、この部分の処理を SPE を用いて並列に処理するように変更する。 111 現在、Cerium では SceneGraph の Move, Collision を PPE でシーケンシャルに処理しているので、この部分の処理を SPE を用いて並列に処理するように変更する。
112 112
113 \section{SceneGraph の並列処理} 113 \section{SceneGraph の並列処理}
114 \subsection{Property} 114 \subsection{Property}
115 オブジェクトの動作や衝突判定に必要になるのは Coordinates や Angle であり、Polygon や Texture のデータは不要になる。そこでゲームに必要なオブジェクトの内部状態を持った Property を用いる。Property には Coordinates, Angle の他に、tree を再生成する時に必要な親子関係なども含める。一方の tree を Rendering で使用し、もう一方を Move, Collision で使用し、両方の処理が終わったら、相互にバッファを切り替える。切替える時に二つのタスクは同期する必要がある。 115 オブジェクトの動作(move, collision) に必要になるのは Coordinates や Angle であり、Polygon や Texture のデータは不要になる。そこで、ゲームに必要なオブジェクトの内部状態を持った配列 Property を用いる。Property には Coordinates, Angle の他に、tree を再生成する時に必要な親子関係、オブジェクト生成消滅のパラメータなどが含まれる。\\
116 116  Move, Collsion の処理をする際は Property を SPE に送り、変更されて返された Updated Property を元に PPE 側で SceneGraphTree を構成する。 (図\ref{fig:sgtask})\\
117 \begin{figure}[htb]
118 \begin{center}
119 \includegraphics[scale=0.7]{image/SceneGraphTask.pdf}
120 \caption{SceneGraphTree の生成}
121 \label{fig:sgtask}
122 \end{center}
123 \end{figure}
117 \subsection{chain} 124 \subsection{chain}
118 例題作成中 125 SceneGraph の処理の例題として、学生実験で作成された鎖のシミュレーション chain を使用する。
126 この例題では、動作は Move の処理のみ行い、処理に使用する SPE は1基となっている。
127 \begin{figure}[htb]
128 \begin{center}
129 \includegraphics[scale=0.3]{image/chain.png}
130 \caption{chain の画面}
131 \label{fig:chain}
132 \end{center}
133 \end{figure}
134
135 [Move] chain のオブジェクトの値は一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。
136 \\
137  Move の処理を SPE で行った場合と PPE で行った場合の FPS の比較を以下に示す。
138 \begin{center}
139 \begin{tabular}{|l|l|}
140 \hline
141   & FPS(Frame Per Scecond) \\ \hline
142 PPE & 2.708696 \\ \hline
143 SPE & 2.893348 \\
144 \hline
145 \end{tabular}
146 \end{center}
147 PPE よりも SPE で処理した方の FPS が若干向上した。
119 \if 0 148 \if 0
120 \subsection{vacuum} 149 \subsection{vacuum}
121 SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。 150 SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。
122 vacuum には自機と吸収ブロック、敵ブロックの3種類のオブジェクトがあり、自機を上下左右に移動させ、ボタンを押している間は自機の周りのブロックを引き寄せ、うまく吸収ブロックだけを自機と衝突させるゲームである。このゲームのMoveとCollisionは以下のようになる。 151 vacuum には自機と吸収ブロック、敵ブロックの3種類のオブジェクトがあり、自機を上下左右に移動させ、ボタンを押している間は自機の周りのブロックを引き寄せ、うまく吸収ブロックだけを自機と衝突させるゲームである。このゲームのMoveとCollisionは以下のようになる。
123 152
159 PPE 側では返されてきた Property を元に SceneGraph を作成し Tree を再構成して Rendering に渡す。 188 PPE 側では返されてきた Property を元に SceneGraph を作成し Tree を再構成して Rendering に渡す。
160 \fi 189 \fi
161 190
162 \section{まとめと今後の課題} 191 \section{まとめと今後の課題}
163 \begin{itemize} 192 \begin{itemize}
164 \item 現在は SPE 1基で SceneGraph を処理する例題の作成途中なので、複数 SPE に均等に処理を割り振る例題の作成。 193 \item SPE 1基で SceneGraph を処理する例題はできたので、複数 SPE に均等に処理を割り振る例題の作成および、SPE での演算の SIMD 化。
165 \item Property から SceneGraph を生成し tree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う。 194 \item Property から SceneGraph を生成し tree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う。
166 \item xml から作成された SceneGraph はオリジナルとして配列に順次格納されている。現在は SceneGraph を create する場合はオリジナルの配列をリニアサーチしてきた物をコピーしている。このオリジナルの配列を Texture を管理している hash テーブルを用いてまとめて管理できるようにする。
167 \end{itemize} 195 \end{itemize}
168 196
169 \thispagestyle{fancy} 197 \thispagestyle{fancy}
170 \begin{thebibliography}{9} 198 \begin{thebibliography}{9}
171 199
172 \bibitem{cell}Sony Corporation. 200 \bibitem{cell}Sony Corporation.
173 201
174 Cell BroadbandEngine \texttrademark アーキテクチャ, 2006 202 Cell BroadbandEngine \texttrademark アーキテクチャ, 2006
175 203
176 \if 0
177 \bibitem{spursengine}TOSHIBA: SpursEngine 204 \bibitem{spursengine}TOSHIBA: SpursEngine
178 205
179 \verb|http://www.semicon.toshiba.co.jp|\\ 206 \verb|http://www.semicon.toshiba.co.jp|\\
180 \verb|/product/assp/selection/spursengine/index.html| 207 \verb|/product/assp/selection/spursengine/index.html|
181 208
184 \verb|https//sourceforge.jp/projects/cerium/| 211 \verb|https//sourceforge.jp/projects/cerium/|
185 212
186 \bibitem{opencl} OpenCL 213 \bibitem{opencl} OpenCL
187 214
188 \verb|http://www.khronos.org/opencl/| 215 \verb|http://www.khronos.org/opencl/|
189 \fi
190 216
191 \bibitem{wataru} Wataru MIYAGUNI. 217 \bibitem{wataru} Wataru MIYAGUNI.
192 218
193 Cell 用の Fine-Grain Task Manager の実装, 2009 219 Cell 用の Fine-Grain Task Manager の実装, 2009
194 220