Mercurial > hg > Papers > 2010 > yutaka-thesis
view 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 source
\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{コードの入れ替え}