9
|
1 \section{研究の目的}
|
7
|
2
|
15
|
3 %% % これは研究の目的としては「近すぎる」
|
|
4 %% % 最終目標は「レンダリングエンジンを作る」ではなく
|
|
5 %% % 「OSを作る」だから。(でいいのかな
|
|
6 %%
|
|
7 %%PlayStation 3 (以下 PS3) では、搭載された Linux を用いて、
|
|
8 %%PS3 上で動くゲーム開発することができる。
|
|
9 %%しかし、現在 GPU (Graphics Processing Unit) の API は
|
|
10 %%一般には公開されていないため、GPU を使った描画はできない。
|
|
11 %%Frame Buffer 上には直接描画することはできるため、
|
|
12 %%我々は Frame Buffer 上に描画するゲームフレームワークを提案してきた。
|
|
13 %%
|
|
14 %%本研究では、PS3 上で高速な描画が可能な、独自のレンダリングエンジンとして、
|
|
15 %%Cerium Rendering Engine の開発を行う。
|
|
16 %%Cerium は、次の 3 つから構成される。
|
|
17 %%
|
|
18 %%\begin{itemize}
|
|
19 %% \item Scene Graph
|
|
20 %% \item Rendering Engine
|
|
21 %% \item Task Manager
|
|
22 %%\end{itemize}
|
|
23 %%
|
|
24 %%Cerium は Cell 上だけでなく、Linux や Mac OS X 上でも
|
|
25 %%動く、シーケンシャルなプログラムも実装することが出来る。
|
|
26 %%並列プログラムとシーケンシャルプログラムの相互の変換は容易である。
|
|
27 %%これにより、全体の動作のデバッグはシーケンシャルプログラムで行い、
|
|
28 %%仕様が正しいと確認できたら、 Cell 上などの特有の環境で
|
|
29 %%動作、デバッグを行えばいい。
|
|
30 %%
|
|
31
|
|
32 近年、CPU の性能向上は、クロックサイクルを上げることよりも、
|
|
33 複数の CPU コア (Many Core Architecture) を導入することにより
|
|
34 得られるようになってきている。しかし、Many Core Architecture の
|
|
35 プログラムは複雑であり、その信頼性を確保することは難しい。
|
|
36
|
|
37 本研究では、Many Core Architecture 向けの Fine Grain Task OS を設計する。
|
|
38 この OS では、Amdahl 則を考慮して、
|
|
39 定常的な並列性を細粒度タスクを使って実現する。
|
|
40 そのために、シーングラフレベルから並列実行を考慮したプログラムとする。
|
|
41
|
|
42 細粒度タスク自体や、タスク全体のデバッグを容易にするために、
|
|
43 同じタスクが Mac OS X や Linux、PS3 上など複数の環境で動くようにする。
|
|
44 また、Thread を多用せず、細粒度タスク内での同期は行わない。
|
|
45 これにより、並列プログラミングの経験の低いプログラマでも
|
|
46 容易に使用できる。
|
|
47
|
|
48 例題として、本研究室で作成した、Rendering を含む PS3 上のゲームプログラム用
|
|
49 OS である Cerium \cite{gongo} を用いる。
|
|
50
|
9
|
51 Cerium は、次の 3 つから構成される。
|
7
|
52
|
9
|
53 \begin{itemize}
|
|
54 \item Scene Graph
|
|
55 \item Rendering Engine
|
15
|
56 \item Fine Grain Task Manager
|
9
|
57 \end{itemize}
|
7
|
58
|
15
|
59 Cerium では、Cell の性能を十分に引き出し、
|
|
60 今まで作成してきた PS、PS2 のゲームプログラムを PS3 へ
|
|
61 容易に移植できることを目的とする。
|