10
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
|
4 <html xmlns="http://www.w3.org/1999/xhtml">
|
|
5 <META http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
6
|
|
7 <head>
|
|
8 <title>発表資料</title>
|
|
9 <!-- metadata -->
|
|
10 <meta name="generator" content="S5" />
|
|
11 <meta name="version" content="S5 1.1" />
|
|
12 <meta name="presdate" content="20050728" />
|
|
13 <meta name="author" content="Eric A. Meyer" />
|
|
14 <meta name="company" content="Complex Spiral Consulting" />
|
|
15 <!-- configuration parameters -->
|
|
16 <meta name="defaultView" content="slideshow" />
|
|
17 <meta name="controlVis" content="hidden" />
|
|
18 <!-- style sheet links -->
|
|
19 <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
|
|
20 <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
|
|
21 <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
|
|
22 <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
|
|
23 <!-- S5 JS -->
|
|
24 <script src="ui/default/slides.js" type="text/javascript"></script>
|
|
25
|
|
26 <style type="text/css">
|
|
27 body {
|
|
28 font-size: 100%;
|
|
29 }
|
|
30 p.ex10 { font-size: 2.0em; }
|
|
31 p.ex9 { font-size: 1.9em; }
|
|
32 p.ex8 { font-size: 1.8em; }
|
|
33 p.ex7 { font-size: 1.7em; }
|
|
34 p.ex6 { font-size: 1.6em; }
|
|
35 p.ex5 { font-size: 1.5em; }
|
|
36 p.ex4 { font-size: 1.4em; }
|
|
37 p.ex3 { font-size: 1.3em; }
|
|
38 p.ex2 { font-size: 1.2em; }
|
|
39 p.ex1 { font-size: 1.1em; }
|
|
40 p.ex0 { font-size: 1.0em; }
|
|
41 p.ex05 { font-size: 0.5em; }
|
|
42
|
|
43 span.classifier {
|
|
44 font-family: sans-serif ;
|
|
45 font-style: oblique }
|
|
46
|
|
47 span.classifier-delimiter {
|
|
48 font-family: sans-serif ;
|
|
49 font-weight: bold }
|
|
50
|
|
51 span.interpreted {
|
|
52 font-family: sans-serif }
|
|
53
|
|
54 span.option {
|
|
55 white-space: nowrap }
|
|
56
|
|
57 span.pre {
|
|
58 white-space: pre }
|
|
59
|
|
60 span.problematic {
|
|
61 color: red }
|
|
62
|
|
63 span.section-subtitle {
|
|
64 /* font-size relative to parent (h1..h6 element) */
|
|
65 font-size: 80% }
|
|
66
|
|
67 </style>
|
|
68 </head>
|
|
69
|
|
70
|
|
71 <body>
|
|
72
|
|
73 <div class="layout">
|
|
74 <div id="controls"><!-- DO NOT EDIT --></div>
|
|
75 <div id="currentSlide"><!-- DO NOT EDIT --></div>
|
|
76 <div id="header"></div>
|
|
77 <div id="footer">
|
|
78 <!--<h1>Cell上のソフトウェアレンダリングの高速化と高機能化</h1>
|
|
79 <h2>琉球大学工学部情報工学科並列信頼研</h2>-->
|
|
80 </div>
|
|
81
|
|
82 </div>
|
|
83
|
|
84 <div class="presentation">
|
|
85
|
|
86 <div class="slide">
|
|
87
|
|
88 <h1>Fine grain Task Manager Cerium のチューニング</h1>
|
22
|
89 <h3>Yutaka Kinjyo, Shinji Kono</h3>
|
10
|
90 <h4>琉球大学大学院理工学研究科情報工学専攻並列信頼研</h4>
|
|
91 </div>
|
|
92
|
|
93
|
|
94 <div class="slide">
|
|
95 <h1>研究目的 と 背景</h1>
|
|
96 <p class="ex1">
|
|
97 現在 Cell/PS3またはMac OS X上で動作するOpen CL 的なFine Grain Task Manager である Cerium Task Manager を開発中である。
|
|
98 </p>
|
|
99 <ul>
|
|
100 <li>
|
|
101 ソフトウェアレンダリングエンジンとWord countを例題として、Task Manager の実装時の問題を洗い出している。
|
|
102 </li>
|
|
103 <br>
|
|
104 <li>メインメモリ上の Task を各 Core が受け取る際や、その終了を通知する際に待ち時間が生じる。</li>
|
|
105 </ul>
|
|
106
|
21
|
107 <p><font color="red">本研究ではその待ち時間を削減するTask array、メモリのアクセス方法を提案し実装した。その効果について報告する</font></p>
|
10
|
108
|
|
109 </div>
|
|
110
|
|
111
|
22
|
112 <!-- <div class="slide"> -->
|
|
113 <!-- <h1>発表の流れ</h1> -->
|
10
|
114
|
22
|
115 <!-- <ul> -->
|
|
116 <!-- <li>Cellとは</li> -->
|
|
117 <!-- <li>Ceriumとは</li> -->
|
|
118 <!-- <li>CeriumにおけるTask</li> -->
|
|
119 <!-- <li>TaskArray</li> -->
|
|
120 <!-- <ul> -->
|
|
121 <!-- <li>WordCountのTaskArray化</li> -->
|
|
122 <!-- <li>レンダリングエンジンのTaskArray化</li> -->
|
|
123 <!-- </ul> -->
|
|
124 <!-- <li>結果</li> -->
|
|
125 <!-- <li>まとめ</li> -->
|
|
126 <!-- </ul> -->
|
10
|
127
|
22
|
128 <!-- </div> -->
|
10
|
129
|
|
130 <div class="slide">
|
|
131 <h1>Cellとは</h1>
|
|
132
|
|
133 <big>Cell(Cell Broadband Engine)</big>とはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ<br>
|
|
134 Cellは1基の制御系のプロセッサコア<u>PPE</u>と、8基の演算系プロセッサコア<u>SPE</u>
|
|
135 で構成される(Ceriumで扱えるSPEの数は6基)。
|
|
136
|
|
137 <!-- PPEよりもSPEが高速なので、1SPE 上で実行するだけでも意味がある。-->
|
|
138 <!-- それぞれ高速なバスで接続されている<br><br> -->
|
|
139
|
|
140 <table height="100%" width="100%" border="0">
|
|
141 <tr><td align="center" valign="middle">
|
|
142 <img src="gazo/cell1.png" style="width: 40%%"></td></tr>
|
|
143 </table>
|
|
144
|
|
145 </div>
|
|
146
|
|
147
|
|
148 <div class="slide">
|
|
149 <h1>Ceriumとは</h1>
|
|
150
|
|
151 <big>Cerium</big>とは、当研究室で開発したPS3/Cell、Mac OS X、Linux 上で動作するゲームフレームワーク。
|
|
152 以下の3つの要素から構成されている。
|
|
153
|
|
154 <ul>
|
|
155 <li>TaskManager</li>
|
|
156 <li>レンダリングエンジン</li>
|
|
157 <li>SceneGraph</li>
|
|
158 </ul>
|
|
159
|
|
160 </div>
|
|
161
|
|
162 <div class="slide">
|
|
163 <h1>Ceriumとは</h1>
|
|
164
|
|
165 <big>Cerium</big>とは、当研究室で開発したPS3/Cell、Mac OS X、Linux 上で動作するゲームフレームワーク。
|
|
166 以下の3つの要素から構成されている。
|
|
167
|
|
168 <ul>
|
|
169 <li><font color="red">TaskManager</font></li>
|
|
170 <li>レンダリングエンジン</li>
|
|
171 <li>SceneGraph</li>
|
|
172 </ul>
|
|
173
|
|
174 </div>
|
|
175
|
|
176 <div class="slide">
|
|
177 <h1>TaskManager</h1>
|
|
178
|
|
179 <ul>
|
|
180 <li>TaskManagerは、Taskと呼ばれる、分割された各プログラムを管理する</li>
|
|
181 <ul>
|
12
|
182 <li>Taskの単位はサブルーチン</li>
|
10
|
183 </ul>
|
|
184 <li>Task同士の依存関係を考慮</li>
|
|
185 <li>実行可能になったTaskをSPEに渡す</li>
|
|
186 </ul>
|
|
187
|
|
188 <table height="100%" width="100%" border="0">
|
|
189 <tr><td align="center" valign="middle">
|
12
|
190 <img src="gazo/taskmanager1.png" style="width: 50%%"></td></tr>
|
10
|
191 </table>
|
|
192
|
|
193 </div>
|
|
194
|
|
195 <div class="slide">
|
|
196 <h1>CeriumにおけるTask</h1>
|
|
197
|
|
198 TaskはTaskManagerを使って生成する。Taskを生成する際に以下のような要素が
|
|
199 設定可能である。
|
|
200
|
|
201 <ul>
|
|
202 <li>Input data</li>
|
|
203 <li>Output data</li>
|
|
204 <li>Paramater</li>
|
|
205 <li>CPU type</li>
|
|
206 <li>Dependency</li>
|
|
207 </ul>
|
|
208
|
|
209 </div>
|
|
210
|
14
|
211 <!-- <div class="slide"> -->
|
|
212 <!-- <h1>CeriumにおけるTask</h1> -->
|
|
213 <!-- <big><u>Input data</u></big> -->
|
|
214 <!-- <ul> -->
|
|
215 <!-- <li>Input data にはTaskの処理対象データのアドレスとサイズを指定する。</li> -->
|
|
216 <!-- <li>SPE側でそのアドレスをもとにDMA転送を用いて実際のデータをメインメモリから取得する。</li> -->
|
|
217 <!-- </ul> -->
|
10
|
218
|
14
|
219 <!-- <big><u>Output data</u></big> -->
|
|
220 <!-- <ul> -->
|
|
221 <!-- <li>Onput data にはTaskが処理したデータの書き出し先アドレスとサイズを指定する。</li> -->
|
|
222 <!-- <li>SPE側でそのアドレスをもとにDMA転送を用いて実際のデータをメインメモリに書き出す。</li> -->
|
|
223 <!-- </ul> -->
|
10
|
224
|
14
|
225 <!-- </div> -->
|
10
|
226
|
14
|
227 <!-- <div class="slide"> -->
|
|
228 <!-- <h1>CeriumにおけるTask</h1> -->
|
|
229 <!-- <big><u>Paramater</u></big><br> -->
|
|
230 <!-- <ul> -->
|
|
231 <!-- <li>Input data とは別にデータを与えたい場合に使用する。</li> -->
|
|
232 <!-- <li>32bitの値を指定する。</li> -->
|
|
233 <!-- </ul> -->
|
10
|
234
|
14
|
235 <!-- <big><u>CPU type</u></big> -->
|
|
236 <!-- <ul> -->
|
|
237 <!-- <li>TaskがどのCoreで実行されるかを指定する。</li> -->
|
|
238 <!-- <li>PPEもしくは、6基のSPEのいづれかを選択できる。</li> -->
|
|
239 <!-- </ul> -->
|
10
|
240
|
14
|
241 <!-- </div> -->
|
10
|
242
|
|
243 <div class="slide">
|
|
244 <h1>CeriumにおけるTask</h1>
|
|
245 <big><u>Dependency</u></big><br>
|
|
246 <ul>
|
|
247 <li>Dependencyは他のTaskとの依存関係を示す。</li>
|
14
|
248 <li>例えばTaskAがTaskBをwaitする場合、TaskBが実行完了すると、TaskAが実行可能になる。</li>
|
|
249 <li>Taskの実行完了は、SPEのMail送信ボックスにデータが書き込まれ通知される。</li>
|
10
|
250 </ul>
|
|
251
|
|
252 <table height="100%" width="100%" border="0">
|
|
253 <tr><td align="center" valign="middle">
|
|
254 <img src="gazo/dependency1.png" style="width: 40%%"></td></tr>
|
|
255 </table>
|
|
256
|
|
257 </div>
|
|
258
|
|
259
|
|
260 <div class="slide">
|
|
261 <h1>CeriumにおけるTask</h1>
|
14
|
262 <big><u>Mail機能</u></big><br>
|
10
|
263 <ul>
|
14
|
264 <li>Cellの機能の1つ</li>
|
|
265 <li>32bitのメッセージをPPE,SPE間でやりとりできる</li>
|
|
266 <li>送信ボックス、受信ボックスがSPEに設けられている。</li>
|
|
267 <li>それぞれMailボックスはキューになっている</li>
|
|
268 <li>受信ボックスのサイズは4</li>
|
|
269 <li>送信ボックスのサイズは1</li>
|
10
|
270 </ul>
|
|
271
|
|
272 </div>
|
|
273
|
|
274 <div class="slide">
|
|
275 <h1>CeriumにおけるTask</h1>
|
14
|
276 <big><u>Mail機能</u></big><br>
|
10
|
277 <ul>
|
14
|
278 <li>送信ボックスのデータはPPEから、受信ボックスのデータはSPEから呼び出される</li>
|
|
279 <li>書き込みはその逆</li>
|
10
|
280 </ul>
|
|
281
|
|
282 <table height="100%" width="100%" border="0">
|
|
283 <tr><td align="center" valign="middle">
|
14
|
284 <img src="gazo/mail.png" style="width: 60%%"></td></tr>
|
10
|
285 </table>
|
|
286
|
|
287 </div>
|
|
288
|
|
289
|
|
290 <div class="slide">
|
12
|
291 <h1>Taskの送信</h1>
|
|
292
|
10
|
293 <ul>
|
12
|
294 <li>Taskは1つ毎にSPEには送らない</li>
|
|
295 <li>いくつかのTaskをまとめTaskListとして送る</li>
|
14
|
296 <li>TaskListをすべて完了すると、SPEからPPEへのMailが書き込まれる</li>
|
|
297 <li>PPE側がMailをチェックし次のTaskListをMailで通知する</li>
|
10
|
298 </ul>
|
|
299
|
|
300 <table height="100%" width="100%" border="0">
|
|
301 <tr><td align="center" valign="middle">
|
12
|
302 <img src="gazo/tasklist1.png" style="width: 40%%"></td></tr>
|
|
303 </table>
|
|
304
|
|
305 </div>
|
|
306
|
|
307 <div class="slide">
|
14
|
308 <h1>SPEの待ち時間</h1>
|
|
309
|
|
310 SPEはデータの転送とMailの読み込み、書き込みの際に待ち時間が生じることがある。
|
|
311
|
12
|
312 <ul>
|
14
|
313
|
|
314 <li>
|
|
315 送信Mailボックスに書き込もうとしたとき、
|
|
316 ボックスがいっぱいの場合は、PPEから呼び出されるまでSPEは待ち続ける
|
|
317 </li>
|
|
318
|
|
319 <li>
|
|
320 TaskManagerでは、受信ボックスがいっぱいになることはない。
|
|
321 </li>
|
|
322
|
|
323 <li>PPEでMailのチェック、返信があるまで、SPEは止まってしまう</li>
|
13
|
324 <li>SPEの待ち時間が増えると、処理速度の低下につながる</li>
|
14
|
325
|
12
|
326 </ul>
|
|
327
|
|
328 </div>
|
|
329
|
21
|
330 <div class="slide">
|
|
331 <h1>Sort</h1>
|
|
332
|
|
333 TaskManagerを用いたsortの例題を紹介する<br>
|
|
334 CellのSPE6基、1基、Mac OS X と比較する。
|
|
335
|
|
336 <ul>
|
|
337 <li>time : 実行時間</li>
|
|
338 <li>dma wait : dma転送の待ち時間の割合</li>
|
|
339 <li>mail wait : mailの待ち時間の割合</li>
|
|
340 <li>sortする対象は30,000個のランダムな値</li>
|
|
341 <li>Quick sortを行う</li>
|
|
342
|
|
343 </ul>
|
|
344
|
|
345 </div>
|
|
346
|
|
347 <div class="slide">
|
|
348 <h1>Sort</h1>
|
|
349
|
|
350 <table border="3" style="width:100%;">
|
|
351 <tr>
|
|
352 <th></th>
|
|
353 <th>Mac OS X</th>
|
|
354 <th>Cell(SPE6)</th>
|
|
355 <th>Cell(SPE1)</th>
|
|
356 </tr>
|
|
357 <tr>
|
|
358 <th>time</th>
|
|
359 <td align="center">24.9s</td>
|
|
360 <td align="center">11.0s</td>
|
|
361 <td align="center">65.8s</td>
|
|
362 </tr>
|
|
363 <tr>
|
|
364 <th>dma wait</th>
|
|
365 <td align="center">なし</td>
|
|
366 <td align="center">0.41%</td>
|
|
367 <td align="center">0.39%</td>
|
|
368 </tr>
|
|
369 <tr>
|
|
370 <th>mail wait</th>
|
|
371 <td align="center">なし</td>
|
22
|
372 <td align="center">0.82%</td>
|
|
373 <td align="center">0.17%</td>
|
21
|
374 </tr>
|
|
375
|
|
376 <caption>Sortの速度比較</caption>
|
|
377
|
|
378 </table><br>
|
|
379
|
|
380 <ul>
|
|
381 <li>SPEの稼働率は約98%。</li>
|
|
382 <li>Sortの場合、SPEの待ち時間がほとんど無く高速に動作する</li>
|
|
383 <li>WordCount,レンダリングエンジンの場合は待ち時間がはいる</li>
|
|
384 </ul>
|
|
385
|
|
386 </div>
|
|
387
|
12
|
388 <div class="slide">
|
15
|
389
|
|
390 WordCountのTask内容
|
|
391
|
13
|
392 <ul>
|
|
393 <li>WordCountTask(<font color="red">TaskArray化</font>)</li>
|
|
394 <ul>
|
|
395 <li>Input data であたえられたデータをwcし、output data に書き出す</li>
|
|
396 </ul>
|
|
397
|
|
398 <li>PrintTask</li>
|
|
399 <ul>
|
|
400 <li>各SPEから書き出されたwcデータを集計し、出力する</li>
|
|
401 <li>dependency に WordCountTaskを設定</li>
|
|
402 </ul>
|
|
403
|
|
404 </ul>
|
|
405
|
14
|
406 </ul>
|
13
|
407 </div>
|
|
408
|
|
409 <div class="slide">
|
|
410 <h1>WordCount</h1>
|
|
411
|
12
|
412 <ul>
|
|
413 <li>wcするfileをマッピングし、Taskに割り振る</li>
|
|
414 <li>WordCountTaskの終了をまって、PrintTaskが実行される</li>
|
|
415 </ul>
|
|
416
|
|
417 <table height="100%" width="100%" border="0">
|
|
418 <tr><td align="center" valign="middle">
|
|
419 <img src="gazo/wc_graf1.png" style="width: 40%%"></td></tr>
|
|
420 </table>
|
|
421
|
|
422 </div>
|
|
423
|
|
424 <div class="slide">
|
|
425 <h1>WordCount</h1>
|
10
|
426
|
23
|
427 ファイルの大きさは166MB
|
22
|
428
|
|
429 <table border="3" style="width:100%;">
|
|
430 <tr>
|
|
431 <th></th>
|
|
432 <th>WordCount</th>
|
|
433 </tr>
|
|
434 <tr>
|
|
435 <th>time</th>
|
|
436 <td align="center">2.102s</td>
|
13
|
437
|
22
|
438 </tr>
|
|
439 <tr>
|
|
440 <th>dma wait</th>
|
|
441 <td align="center">12%</td>
|
|
442
|
|
443 </tr>
|
|
444 <tr>
|
|
445 <th>mail wait</th>
|
|
446 <td align="center">7%</td>
|
|
447 </tr>
|
|
448
|
|
449 <caption>WordCountの速度</caption>
|
|
450
|
|
451 </table><br>
|
12
|
452 <ul>
|
22
|
453 <li>Sort に比べて、dima wait, mail wait の割合が大きい</li>
|
12
|
454 </ul>
|
|
455
|
|
456 </div>
|
10
|
457
|
22
|
458 <div class="slide">
|
|
459 <h1>TaskArray</h1>
|
15
|
460
|
22
|
461 <font color="red">SPEのMailの待ち時間を解消するためにTaskArrayを提案、実装した</font>
|
|
462
|
|
463 <ul>
|
|
464 <li>TaskArrayは複数のTaskを1つにまとめることができる</li>
|
|
465 <li>Task毎のMail通知がTaskArray毎のMail通知になる</li>
|
|
466 <li>依存関係のグルーピングができる</li>
|
|
467 </ul>
|
|
468 <br>
|
|
469 <table height="100%" width="100%" border="0">
|
|
470 <tr><td align="center" valign="middle">
|
|
471 <img src="gazo/taskarray1.png" style="width: 50%%"></td></tr>
|
|
472 </table>
|
|
473
|
|
474 </div>
|
|
475
|
|
476 <div class="slide">
|
|
477 <h1>TaskArray</h1>
|
|
478
|
|
479 期待される効果
|
|
480
|
|
481 <ul>
|
|
482 <li>Mailの数が減り、SPEのMail待ちのタイミングが減る</li>
|
|
483 <li>Mail待ちが減るので、SPEの稼働率が向上する</li>
|
|
484 </ul>
|
|
485 <br>
|
|
486 <table height="100%" width="100%" border="0">
|
|
487 <tr><td align="center" valign="middle">
|
|
488 <img src="gazo/taskarray1.png" style="width: 50%%"></td></tr>
|
|
489 </table>
|
|
490
|
|
491 </div>
|
15
|
492
|
12
|
493 <div class="slide">
|
|
494 <h1>WordCount</h1>
|
10
|
495
|
22
|
496 <ul>
|
|
497 <li>TaskArrayのサイズは64</li>
|
|
498 </ul>
|
|
499
|
10
|
500 <table border="3" style="width:100%;">
|
|
501 <tr>
|
|
502 <th></th>
|
12
|
503 <th>Task</th>
|
|
504 <th>TaskArray</th>
|
10
|
505 </tr>
|
|
506 <tr>
|
12
|
507 <th>time</th>
|
15
|
508 <td align="center">2.102s</td>
|
|
509 <td align="center">2.083s</td>
|
10
|
510
|
|
511 </tr>
|
|
512 <tr>
|
12
|
513 <th>dma wait</th>
|
|
514 <td align="center">12%</td>
|
22
|
515 <td align="center">17(<font color="red">+5</font>)%</td>
|
10
|
516
|
|
517 </tr>
|
|
518 <tr>
|
12
|
519 <th>mail wait</th>
|
15
|
520 <td align="center">7%</td>
|
22
|
521 <td align="center">2(<font color="red">-5</font>)%</font></td>
|
10
|
522 </tr>
|
|
523
|
15
|
524 <caption>WordCountの比較</caption>
|
10
|
525
|
|
526 </table><br>
|
17
|
527 <ul>
|
|
528 <li>Mail wait の割合が減少、代わりに dma wait が増加</li>
|
|
529 <li>TaskArrayは、最初にdma転送でTaskArrayの中のTaskを取得する</li>
|
10
|
530
|
17
|
531 </ul>
|
15
|
532
|
|
533 </div>
|
|
534
|
10
|
535 <div class="slide">
|
12
|
536 <h1>WordCount</h1>
|
10
|
537
|
18
|
538 WordCount の dma wait
|
|
539
|
10
|
540 <ul>
|
18
|
541 <li>大きなファイルをメモリにマッピングするためスワップが起きる</li>
|
|
542 <li>dmaでメモリにアクセスするときに、時間がかかり待ち時間が生じるていると考えられる</li>
|
10
|
543 </ul>
|
|
544
|
12
|
545 </div>
|
|
546
|
|
547 <div class="slide">
|
|
548 <h1>WordCount</h1>
|
|
549
|
17
|
550 メモリアクセスの局所性を維持するために
|
12
|
551
|
|
552 <ul>
|
18
|
553 <li>一度にすべてのTaskを生成せず、一定のTaskを生成、実行を繰り返す</li>
|
17
|
554 <li>同期する地点を設け、特定のSPEがはしり過ぎないようにする</li>
|
22
|
555 <!-- <li>一度に生成するTaskは384個</li> -->
|
12
|
556 </ul>
|
10
|
557
|
18
|
558 <table border="3" style="width:100%;">
|
|
559 <tr>
|
|
560 <th></th>
|
|
561 <th>一度に生成</th>
|
|
562 <th>分割して生成</th>
|
|
563 </tr>
|
|
564 <tr>
|
|
565 <th>time</th>
|
|
566 <td align="center">2.083s</td>
|
|
567 <td align="center">2.481s</td>
|
|
568
|
|
569 </tr>
|
|
570 <tr>
|
|
571 <th>dma wait</th>
|
|
572 <td align="center">17%</td>
|
|
573 <td align="center">9(<font color="red">-8</font>)%</td>
|
|
574
|
|
575 </tr>
|
|
576 <tr>
|
|
577 <th>mail wait</th>
|
|
578 <td align="center">2%</td>
|
|
579 <td align="center">22(+20)%</td>
|
|
580 </tr>
|
|
581
|
|
582 <caption>WordCountの比較</caption>
|
|
583
|
|
584 </table><br>
|
|
585
|
10
|
586 </div>
|
|
587
|
|
588 <div class="slide">
|
19
|
589 <h1>WordCount</h1>
|
|
590
|
|
591 WordCount の Mail wait
|
|
592
|
|
593 <ul>
|
|
594 <li>次のTaskは、今のTaskが終わってから生成するので、その間の待ちがある</li>
|
|
595 <li>PPE側で先に次のTaskを用意しておくことで、改善できるはず</li>
|
|
596 <li>また、Task同様マッピング自体も複数回にわけて行うことで、局所性が維持できる</li>
|
|
597 </ul>
|
|
598
|
|
599 </div>
|
|
600
|
22
|
601
|
|
602 <div class="slide">
|
|
603 <h1>TaskArray</h1>
|
|
604
|
|
605 <font color="red">レンダリングエンジンのTaskの一部をTaskArray化した</font><br><br>
|
|
606
|
|
607 レンダリングエンジンのTask内容
|
|
608
|
|
609 <ul>
|
|
610 <li>CreatePolygonTask</li>
|
|
611 <ul>
|
|
612 <li>Polygonを生成する</li>
|
|
613 </ul>
|
|
614 <li>CreateSpanTask</li>
|
|
615 <ul>
|
|
616 <li>Polygonを水平な線(Span)に分割する</li>
|
|
617 </ul>
|
|
618 <li>DrawSpanTask(<font color="red">TaskArray化</font>)</li>
|
|
619 <ul>
|
|
620 <li>Spanを描画する</li>
|
|
621 </ul>
|
|
622 </ul>
|
|
623
|
|
624
|
|
625 </div>
|
|
626
|
19
|
627 <div class="slide">
|
21
|
628 <h1>レンダリングエンジン</h1>
|
|
629
|
|
630 DrawSpanTask : Taskの数が多いDrawSpanTaskをTaskArray化した。地球と月を表示する
|
|
631 例題を対象に計測した。<br><br>
|
|
632
|
|
633 計測条件
|
|
634
|
|
635 <ul>
|
|
636 <li>FPS : 一秒間に表示するFrame数</li>
|
|
637 <li>TaskArrayの適応の有無を比較</li>
|
|
638 <li>TaskArrayのサイズは8</li>
|
|
639
|
|
640 </ul>
|
|
641
|
|
642 </div>
|
|
643
|
|
644 <div class="slide">
|
|
645 <h1>レンダリングエンジン</h1>
|
|
646
|
|
647 <table border="3" style="width:100%;">
|
|
648 <tr>
|
|
649 <th></th>
|
|
650 <th>Task</th>
|
|
651 <th>TaskArray</th>
|
|
652 </tr>
|
|
653 <tr>
|
|
654 <th>FPS</th>
|
|
655 <td align="center">3.94</td>
|
|
656 <td align="center">4.32</td>
|
|
657
|
|
658 </tr>
|
|
659 <tr>
|
|
660 <th>dma wait</th>
|
|
661 <td align="center">0.06%</td>
|
|
662 <td align="center">0.07%</td>
|
|
663
|
|
664 </tr>
|
|
665 <tr>
|
|
666 <th>mail wait</th>
|
|
667 <td align="center">55%</td>
|
|
668 <td align="center">42%(<font color="red">-13%</font>)</td>
|
|
669 </tr>
|
|
670
|
|
671 <caption>レンダリングエンジンの比較</caption>
|
|
672
|
|
673 </table><br>
|
|
674
|
|
675 <ul>
|
|
676 <li>mail wait 割合が減少し、それに伴ってFPSも増加</li>
|
|
677 <li>レンダリングエンジンの場合、PPE側で実行するTaskがある</li>
|
22
|
678 <li>PPEのMailチェックがおくれることがあるので、TaskArrayの効果がある</li>
|
|
679 <li>Mail wait の細かい内訳はまだわかっていない</li>
|
21
|
680 </ul>
|
|
681
|
|
682 </div>
|
|
683
|
|
684 <div class="slide">
|
|
685 <h1>レンダリングエンジン</h1>
|
|
686
|
|
687 今後のMail待ち時間削減<br>
|
|
688
|
|
689 <ul>
|
|
690 <li>PPE側のTaskをSPEに任せ、PPEの負担をへらす</li>
|
|
691 <li>別スレッドでMailを監視する</li>
|
|
692 <li>他のTaskもTaskArray化する</li>
|
22
|
693 <li>Mail wait の細かい内訳を調べる</li>
|
21
|
694 </ul>
|
|
695
|
|
696 </div>
|
|
697
|
|
698
|
|
699 <div class="slide">
|
12
|
700 <h1>まとめ</h1>
|
|
701
|
|
702 <ul>
|
19
|
703
|
12
|
704 <li>複数のTaskをまとめるTaskArrayを提案、実装した。</li>
|
22
|
705 <li>PPE側が忙しい場合、<font color="red">Mail待ち時間の削減にTaskArrayの効果がみられる</font></li>
|
23
|
706 <li>大量のメモリを消費する処理の場合</li>
|
|
707 <ul>
|
|
708 <li>マッピングの方法、Taskのスケジューリングを工夫して局所性を維持することでdma転送時間を削減できる</li>
|
|
709 </ul>
|
12
|
710
|
|
711 </ul>
|
10
|
712
|
|
713 </div>
|
|
714
|
|
715
|
|
716
|
|
717 <div class="slide">
|
|
718 <h1>end</h1>
|
|
719 <ul>
|
|
720 /*end*/
|
|
721 <br><br>
|
|
722
|
|
723
|
|
724 <div class="handout">
|
|
725 [any material that should appear in print but not on the slide]
|
|
726 </div>
|
|
727 </div>
|
|
728
|
|
729
|
|
730 </div>
|
|
731
|
|
732 </body>
|
|
733 </html>
|