Mercurial > hg > Papers > 2011 > yutaka-jssst
comparison paper/jssst.tex @ 11:6ba51690320a
ref and fig
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 11 Aug 2011 23:23:05 +0900 |
parents | f5982d0deab5 |
children |
comparison
equal
deleted
inserted
replaced
10:99f297cb7d34 | 11:6ba51690320a |
---|---|
17 % 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から | 17 % 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から |
18 % 大会の回数は計算される. | 18 % 大会の回数は計算される. |
19 \taikai{2011} | 19 \taikai{2011} |
20 | 20 |
21 % ここに,使用するパッケージを列挙する. | 21 % ここに,使用するパッケージを列挙する. |
22 \usepackage[dvips]{graphics} | 22 \usepackage[dvipdfm]{graphicx} |
23 \bibliographystyle{jplain} % for bibliography | |
23 | 24 |
24 % ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの | 25 % ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの |
25 % 再定義は原則として避けること. | 26 % 再定義は原則として避けること. |
26 | 27 |
27 \begin{document} | 28 \begin{document} |
57 } | 58 } |
58 | 59 |
59 % | 60 % |
60 % 和文アブストラクト | 61 % 和文アブストラクト |
61 \Jabstract{% | 62 \Jabstract{% |
62 本研究では並列プログラミング用フレームワーク Ceriumを開発している. | 63 \input{abstract} |
63 Cerium ではユーザが処理を Task として定義し,必要なパラメータを設定すると,自動で各コアへと割り振られ並列実行される. | |
64 例題としてゲームを実装したところ, Task 内での動的なデータ取得や, Task 間の依存関係の設定などデータ操作の抽象化が必要なことがわかった. | |
65 そこで DataSegment というデータ構造を用意し,データ操作を抽象化するAPIを設計する. | |
66 } | 64 } |
67 | 65 |
68 % | 66 % |
69 % 英文アブストラクト(大会論文には必要なし) | 67 % 英文アブストラクト(大会論文には必要なし) |
70 % \Eabstract{} | 68 % \Eabstract{} |
71 % | 69 % |
72 \maketitle | 70 \maketitle |
71 \input{0} | |
73 | 72 |
74 \section{はじめに} | 73 \bibliography{ref} |
75 | |
76 \section{Ceriumとは} | |
77 | |
78 \section{Cell Broadband Engine} | |
79 | |
80 \begin{figure}[tb] | |
81 \begin{center} | |
82 \scalebox{0.4}{\includegraphics{./images/cell-main.eps}} | |
83 \caption{Cell Broadband Engine Architecture} | |
84 \label{fig:cell_arch} | |
85 \end{center} | |
86 \end{figure} | |
87 | |
88 Cell Broadband Engine %\cite{cell} | |
89 は、ソニー・コンピュータエンタテインメント、 | |
90 ソニー、IBM , 東芝によって開発されたマルチコア CPU である。 | |
91 Cell は、1基の制御系プロセッサコア PPE ( PowerPC Processor Element ) と | |
92 8基の演算系プロセッサコア SPE ( Synergistic Processor Element ) で構成される。 | |
93 各プロセッサコアは、EIB (Element Interconnect Bus) | |
94 と呼ばれる高速なバスで接続されている。また、EIB はメインメモリや | |
95 外部入出力デバイスとも接続されていて、 | |
96 各プロセッサコアは EIB を経由してデータアクセスをおこなう。 | |
97 PPE はメインメモリにアクセスすることができるが、SPE は、246KBのLSにのみ直接アクセスできる。 | |
98 DMAを用いると、SPE はメインメモリにアクセスできる。 | |
99 本研究で用いた PS3Linux (Yellow Dog Linux 6.2) では、6 個の SPE を | |
100 使うことが出来る ( \ref{fig:cell_arch} ) | |
101 この PPE と SPE の2種類の CPU を、プログラマ自身が用途に | |
102 合わせて適切に使い分けるように考慮する必要がある。 | |
103 | |
104 \subsection{Mailbox} \label{sec:mail-box} | |
105 Cellの機能にMailboxがある。 | |
106 Mailbox は PPEとSPEとの間を双方向で、32bitのデータの受け渡しが可能であり、FIFOキュー構造になっている。 | |
107 MailboxのひとつにSPEからPPEへデータを渡すためのキュー、SPU Outbound Mailbox があり、最大1個までのデータを蓄積できる。 | |
108 もし、Outbound Mailbox がすでに1個のデータを保持している場合には、 | |
109 SPEプログラムはPPEプログラム側でキューからデータを読み出すまでデータの書き込みを待ち続ける。 | |
110 | |
111 \subsection{DMA転送} \label{sec:dma} | |
112 SPE は LS 以外のメモリに | |
113 直接アクセスすることができず、PPE が利用するメインメモリ上のデータに | |
114 アクセスするには DMA (Direct Memory Access) を用いる。 | |
115 DMA 転送とは、CPU を介さずに周辺装置とメモリとの間でデータ転送ことで、 | |
116 Cell の場合はメインメモリと LS 間でデータの転送を行う。 | |
117 DMA 転送するデータとアドレスにはいくつか制限がある。 | |
118 転送データが 16 バイト以上の場合、データサイズは 16 バイトの倍数で、 | |
119 転送元と転送先のアドレスが 16 バイト境界に揃えられている必要がある。 | |
120 転送データが 16 バイト未満の場合、データサイズは 1,2,4,8 バイトで、 | |
121 転送サイズに応じた自然なアライメントである (転送サイズのバイト境界に | |
122 揃えられている) ことが条件となる。 | |
123 | |
124 \section{Ceriumでの並列プログラミングの問題点} | |
125 | |
126 \section{Continuation based C との相性} | |
127 | |
128 \section{C++ との相性} | |
129 | |
130 \section{Data Segment を用いた Cerium の再設計} | |
131 | |
132 \subsection{Data Segment の型} | |
133 | |
134 \subsection{Data Segment のAPI} | |
135 | |
136 \subsection{Task Dependendcy} | |
137 | |
138 \subsection{Data Segment Storage Type} | |
139 | |
140 \subsection{Data Segment の処理の記述} | |
141 | |
142 \section{期待される効果} | |
143 | 74 |
144 | 75 |
145 \begin{thebibliography}{10} | |
146 | |
147 \bibitem{gongo} | |
148 {多賀野海人}. | |
149 \newblock {Cell Task Manager Cerium における Task を用いたパイプラインの改良}. | |
150 \newblock {琉球大学理工学研究科情報工学専攻 平成22年度学位論文}, {Feb} 2011. | |
151 | |
152 \bibitem{gongo} | |
153 {宮國渡}. | |
154 \newblock {Cell用の Fine-Grain Task Manager の実装}. | |
155 \newblock {琉球大学理工学研究科情報工学専攻 平成20年度学位論文}, {Feb} 2009. | |
156 | |
157 \bibitem{amdahl} | |
158 {Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug | |
159 Lea}. | |
160 \newblock {\em {Java Concurrency in Prac-tice}}. | |
161 \newblock {Addison-Wesley Professional}, 2005. | |
162 | |
163 \bibitem{cell} | |
164 {Sony Corporation}. | |
165 \newblock {Cell BroadbandEngine \texttrademark アーキテクチャ}, 2006. | |
166 | |
167 \bibitem{libspe2} | |
168 {International Business Machines Corporation, Sony Computer Entertainment | |
169 Incorporated, Toshiba Corporation}. | |
170 \newblock {\em {SPE Runtime Management Library Version 2.3}}, 2008. | |
171 | |
172 \bibitem{cell_cpp} | |
173 {International Business Machines Corporation, Sony Computer Entertainment | |
174 Incorporated, Toshiba Corporation}. | |
175 \newblock {\em {C/C++ Language Extensions for Cell Broadband Engine | |
176 Architecture Version 2.6}}, 2008. | |
177 | |
178 \bibitem{spurs} | |
179 {Keisuke Inoue}. | |
180 \newblock {SPU Centric Execution Model}, 2006. | |
181 | |
182 \bibitem{chiaki} | |
183 {Chiaki SUGIYAMA}. | |
184 \newblock {SceneGraph と StatePattern | |
185 を用いたゲームフレームワークの設計と実装}. | |
186 \newblock {琉球大学工学部情報工学科 平成19年度卒業論文}, 2008. | |
187 | |
188 \bibitem{blender} | |
189 {blender.org}. | |
190 \newblock {http://blender.org/}. | |
191 | |
192 \bibitem{akamine} | |
193 {赤嶺一樹, 河野真治}. | |
194 \newblock {Meta Engine を用いた Federated Linda の実験}. | |
195 \newblock {日本ソフトウェア科学会第 27 会大会(2010 年度)}, {Sep} 2010. | |
196 | |
197 \bibitem{akira} | |
198 {Akira KAMIZATO}. | |
199 \newblock {Cell を用いたゲームフレームワークの提案}. | |
200 \newblock {琉球大学理工学研究科情報工学専攻 平成19年度学位論文}, 2008. | |
201 | |
202 \bibitem{cell_abi} | |
203 {International Business Machines Corporation, Sony Computer Entertainment | |
204 Incorporated, Toshiba Corporation}. | |
205 \newblock {\em {Cell Broadband Engine Linux Reference Implementation | |
206 Application Binary Interface Specification}}, | |
207 | |
208 \bibitem{webpage1} | |
209 {SourceForge.JP: Cerium Rendering Engine}. | |
210 \newblock {https//sourceforge.jp/projects/cerium/}. | |
211 | |
212 bibitem{osmesa} | |
213 {The Mesa 3D Graphics Library}. | |
214 \newblock {http://www.mesa3d.org/}. | |
215 | |
216 \bibitem{fedora} | |
217 {Fedora Project}. | |
218 \newblock {http://fedoraproject.org/}. | |
219 | |
220 \bibitem{ydl} | |
221 {Yellow Dog Linux for PowerPC Computers}. | |
222 \newblock {http://us.fixstars.com/products/ydl/}. | |
223 | |
224 \bibitem{cerium} | |
225 {SourceForge.JP: Cerium Rendering Engine}. | |
226 \newblock {https//sourceforge.jp/projects/cerium/}. | |
227 | |
228 \bibitem{cell_sdk} | |
229 {International Business Machines Corporation}. | |
230 \newblock {\em {Software Development Kit for Multicore Acceleration Version | |
231 3.1}}, 2008. | |
232 | |
233 \bibitem{gongo2} | |
234 {Wataru MIYAGUNI}. | |
235 \newblock {Cell 用の Fine-grain Task Manager の実装}. | |
236 \newblock {情報処理学会 | |
237 システムソフトウェアとオペレーティング・システム研究会}, April 2008. | |
238 | |
239 \bibitem{sdl} | |
240 {Simple DirectMedia Layer}. | |
241 \newblock {http://www.libsdl.org/}. | |
242 | |
243 \bibitem{opencl} | |
244 {Aaftab Munshi, Khronos OpenCL Working Group}. | |
245 \newblock {\em {The OpenCL Specification Version 1.0}}, 2007. | |
246 | |
247 \bibitem{gallium} | |
248 {Gallium3D}. | |
249 \newblock {http://www.tungstengraphics.com/wiki/index.php/Gallium3D}. | |
250 | |
251 | |
252 \end{thebibliography} | |
253 | |
254 \end{document} | 76 \end{document} |