0
|
1 \begin{abstract}
|
|
2
|
|
3 我々は、家庭用ゲーム機で実行するオープンな開発フレームワークに関する
|
|
4 研究を行ってきた。家庭用ゲーム機の多くは特殊なアーキテクチャであり、
|
|
5 その性能を生かすためにはアーキテクチャに直結したプログラミングが求められる。
|
|
6 しかし、そのようなプログラミングスタイルは、学生実験においては困難なもので、
|
|
7 経験的にアーキテクチャの理解に実験の時間の約 2/3 を費やしてしまう。
|
|
8 また、近年では CPU の性能を複数の CPU コア (Many Core Architecture) を
|
|
9 導入することによって向上させるようになってきており、2006 年に発売された
|
|
10 家庭用ゲーム機 PlayStation 3 でも、
|
|
11 1つの制御系プロセッサ Power Processor Element (PPE) と、
|
|
12 8つのデータ処理演算プロセッサ Synergistic Processor Element (SPE) から
|
|
13 構成される Cell アーキテクチャを持つ。
|
|
14 このような要素も、並列プログラミング経験の浅い学生にとって
|
|
15 開発を困難なものとしている要因となっている。
|
|
16
|
|
17 そこで我々は、Many Core Architecture を用いた並列プログラムの開発をサポートする
|
|
18 フレームワークとして Fine Grain Task Manager を設計し、それを用いて
|
|
19 PlayStation 3 上でゲームプログラミングが行える Cerium を提案する。
|
|
20
|
|
21 現在、PlayStation 3 の GPU にアクセスする API は公開されていない。
|
|
22 代わりに、フレームバッファデバイスである ps3fb を使用することはできる。
|
|
23 この点に着目し、先行研究 \cite{akira} では、始めに OSMesa \cite{osmesa} という
|
|
24 フレームバッファエンジン用のレンダリングエンジンを用いて開発を行っている。
|
|
25 従来の OSMesa では PPE のみを使用する Single Core Program であるため、
|
|
26 立方体を回転させるというシンプルなテストプログラムでも、約 18 FPS しか
|
|
27 得ることが出来なかった。そこで先行研究では、OSMesa の一部の機能を
|
|
28 複数の SPE に演算させ、高速化を図っている。結果として 約 43 FPS という結果が
|
|
29 得られたものの、OSMesa の元々の実装と合わせてソースコードの複雑化を招き、
|
|
30 以降のメンテナンスや機能の追加、改良が困難なものとなった。
|
|
31
|
|
32 我々が提案した Cerium は、独自に Rendering Engine を持つ
|
|
33 ゲーム開発用フレームワークである。
|
|
34 Cerium は Rendering Engine の他に、
|
|
35 ゲームの中の一つの場面(シーン)を構成するオブジェクトやその振る舞い、
|
|
36 ゲームのルールから成る SceneGraph と、
|
|
37 それらの動きやレンダリングの処理を動的に SPE に割り振るカーネルである
|
|
38 Fine Grain Task Manager で構成されている。
|
|
39
|
|
40 \end{abstract}
|