Mercurial > hg > Papers > 2008 > gongo-ess
comparison compare.tex @ 2:44fb87ea539a
*** empty log message ***
author | gongo |
---|---|
date | Mon, 14 Jul 2008 13:30:06 +0900 |
parents | d40dd97c0a50 |
children | 3ee6deaab278 |
comparison
equal
deleted
inserted
replaced
0:d40dd97c0a50 | 2:44fb87ea539a |
---|---|
1 \section{Cerium の評価と考察} | 1 \section{Cerium の評価と考察} |
2 | |
3 Cerium Rendering Engine を用いて、 | 2 Cerium Rendering Engine を用いて、 |
4 テクスチャを貼った一つの立方体を回転させるというプログラムを実行した。 | 3 テクスチャを貼った一つの立方体を回転させるというプログラムを実行した。 |
5 | 4 |
6 今回、\figref{fig:cerium} で示した Task に対する CPU の割り振りは | 5 今回、\figref{fig:cerium} で示した Task に対する CPU の割り振りは |
7 \tabref{tab:hyoka1} とする。 | 6 \tabref{tab:hyoka1} とする。 |
35 \end{table} | 34 \end{table} |
36 | 35 |
37 \tabref{tab:hyoka3} より、SPE の台数を増やす事によって、 | 36 \tabref{tab:hyoka3} より、SPE の台数を増やす事によって、 |
38 実行速度が向上しているのがわかる。 | 37 実行速度が向上しているのがわかる。 |
39 しかし、正しく台数効果が出ているとは言えない。 | 38 しかし、正しく台数効果が出ているとは言えない。 |
40 その原因として、TaskManager の実装の不備があげられる。 | 39 原因として |
41 | 40 |
42 現在、Cerium TaskManager には DMA でメインメモリから SPE 上にプログラムを | 41 \begin{enumerate} |
43 ロードする機能を実装していないため、 | 42 \item アルゴリズムのミス |
44 必要な時に必要なプログラムだけを SPE 上に置く事が出来ない。 | 43 \item 効率的なデータ及びコード分割がされていない |
45 SPE の容量では、Cerium の全てのタスクを SPE 上に乗せる事は出来ないため、 | 44 \item 全てのタスクを SPE 上で実行していない \label{list:d3} |
46 現在は Rendering のタスクだけを SPE 上にマッピングしてある。 | 45 \end{enumerate} |
46 | |
47 等といった事が考えられる。 | |
48 ここでは、原因(\ref{list:d3})について考察する。 | |
49 | |
50 | |
51 %その原因として、TaskManager の実装の不備があげられる。 | |
52 | |
53 %現在、Cerium TaskManager には DMA でメインメモリから SPE 上にプログラムを | |
54 %ロードする機能を実装していないため、 | |
55 %必要な時に必要なプログラムだけを SPE 上に置く事が出来ない。 | |
56 %SPE の容量では、Cerium の全てのタスクを SPE 上に乗せる事は出来ないため、 | |
57 %現在は Rendering のタスクだけを SPE 上にマッピングしてある。 | |
58 | |
59 %全てのタスクを SPE 上で実行できるようになれば、 | |
60 %実行速度はさらに向上すると考えられる。 | |
61 | |
62 SPE の 256KB という容量では、現在の Cerium の全てのタスクを | |
63 SPE 上に乗せる事は出来ないため、\tabref{tab:hyoka1} のように | |
64 Rendering のタスクだけを SPE 上で実行している。 | |
65 これを回避するために、SPE プログラムの on-demand load の実装が必要となる。 | |
66 実装の方法として、以下のような手段が考えられる。 | |
67 | |
68 \begin{enumerate} | |
69 \item メインメモリにマッピングした SPE プログラムを DMA で SPE 上にロードする | |
70 \label{list:com1} | |
71 \item SPE をタスクの数に対応するように起動し、それぞれにタスクを attach する | |
72 \label{list:com2} | |
73 \end{enumerate} | |
74 | |
75 OS のカーネルレベルでは、SPE 毎に spufs と呼ぶ | |
76 仮想ファイルシステム(VFS) が与えられており、 | |
77 仮想的なファイルとして SPE のリソース にアクセス可能な | |
78 インターフェース が設けられている \cite{spufs}。 | |
79 そのため、6台以上の SPE を仮想的に起動する事が可能である。 | |
80 (\ref{list:com2}) の手法では、実行するタスクが attach されている | |
81 SPE を切り替えながら実行していく。 | |
82 | |
47 全てのタスクを SPE 上で実行できるようになれば、 | 83 全てのタスクを SPE 上で実行できるようになれば、 |
48 実行速度はさらに向上すると考えられる。 | 84 タスク単体の実行速度は向上すると考えられる。 |
85 しかし、SPE プログラムもしくは仮想 SPE の入れ替えのコストが発生するため、 | |
86 プログラム全体として向上するかは検証する必要があり、 | |
87 on-demand load の実装と共に、今後の課題として挙げられる。 |