Mercurial > hg > Papers > 2010 > yutaka-thesis
diff paper/conclusion.tex @ 0:fd9154e03f46
thesis
author | e065725@kinjyo.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sat, 13 Feb 2010 21:38:25 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/conclusion.tex Sat Feb 13 21:38:25 2010 +0900 @@ -0,0 +1,87 @@ +\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 との比較を行った。 + +TaskManager 及び TaskManager を機能の一つとする Cerium は、 +学生にとって身近なアーキテクチャである Mac OS X や Linux、 +学生には困難な並列プログラミングが必要となる PS3 Cell など、 +複数の環境で動作することが可能である。 +学生が手を付けやすい環境から開発を始めることができ、 +大幅な変更なく PS3 上で動作を確認できる。 +更に、タスク単位で Cell に特化したプログラミングを行うことで +PS3 上で動作するゲームの開発が可能となる。 + +\section{今後の課題} + +\subsection{SceneGraph の SPE 上での実行} + +\ref{sec:cerium_student}節 で述べたように、現在 SceneGraph は +メインスレッドのみで実行されている。 +衝突判定や行列演算など、SPE で効果的な演算を多くもつ SceneGraph を +SPE 上で実行させる必要がある。 + +%しかし、SPE には分岐予測命令がないため、 +%if 文を多用する木構造のアクセスはクリティカルな処理となる。 +%また、SPE 上で木の要素を追加した場合、それをメインメモリに反映させる +%必要があるが、独立した要素毎にメインメモリへのアロケートを行うのも +%重い処理となる。 + +%そこで、SceneGraph を木構造ではなく、それを表す配列として持つ + +%そのために実装の必要がある機能を以下に示す。 +% +%\begin{itemize} +%\item SPE 上での SceneGraph の操作 (add, remove) +%\item +%\end{itemize} + +\subsection{SPE 上での SIMD 演算の導入} + +現在の SPE 上での処理は全てスカラ演算で記述されており、 +SPE の機能を活用するには SIMD 演算を使用する方が効果的だと期待している。 +また、コンパイラの最適化により、自動的に SIMD 演算に変換されるような +データ構造を採用するのも効果的だと考えている。 + +\subsection{SPE 上でのテクスチャデータの管理} + +\ref{sec:cerium_rendering_texture_hash}節 で述べたように、 +現在テクスチャの追い出し処理は FIFO で実装している。 +そのため、テクスチャのヒット率が確保できない可能性がある。 +高いヒット率を維持するためには、さらに効果的な追い出し法を採用する必要がある。 + +また、同じテクスチャを使う Span を同じ SPE に集めるなどの、 +データ構造や SPE への割り振り処理を修正する必要がある。 + +テクスチャの圧縮による、SPE 上のテクスチャデータの保存数を増やすことも +効果的だと考えられる。 + +%\subsection{コードの入れ替え}