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>
|
|
89 <h3>108574D 金城裕</h3>
|
|
90 <h3>指導教官:河野真治</h3>
|
|
91 <h4>琉球大学大学院理工学研究科情報工学専攻並列信頼研</h4>
|
|
92 </div>
|
|
93
|
|
94
|
|
95 <div class="slide">
|
|
96 <h1>研究目的 と 背景</h1>
|
|
97 <p class="ex1">
|
13
|
98 CPUのクロック周波数の増加は、発熱や消費電力の増大により難しくなっている
|
|
99 </p>
|
|
100 <ul>
|
|
101 <li>
|
|
102 クロック周波数を上げる代わりに、CPUコア数を増やす傾向になった。
|
|
103 </li>
|
|
104 <br>
|
|
105 <li>マルチコアにあったプログラミングが必要になる</li>
|
|
106 </ul>
|
|
107
|
|
108 <p><font color="red">そこで、プログラミングを支援するフレームワークが必要になってくる</font></p>
|
|
109
|
|
110 </div>
|
|
111
|
|
112 <div class="slide">
|
|
113 <h1>研究目的 と 背景</h1>
|
|
114 <p class="ex1">
|
10
|
115 現在 Cell/PS3またはMac OS X上で動作するOpen CL 的なFine Grain Task Manager である Cerium Task Manager を開発中である。
|
|
116 </p>
|
|
117 <ul>
|
|
118 <li>
|
|
119 ソフトウェアレンダリングエンジンとWord countを例題として、Task Manager の実装時の問題を洗い出している。
|
|
120 </li>
|
|
121 <br>
|
|
122 <li>メインメモリ上の Task を各 Core が受け取る際や、その終了を通知する際に待ち時間が生じる。</li>
|
|
123 </ul>
|
|
124
|
|
125 <p><font color="red">本研究ではその待ち時間を削減するTask arrayを提案し実装した。その効果について報告する</font></p>
|
|
126
|
|
127 </div>
|
|
128
|
|
129
|
|
130 <div class="slide">
|
|
131 <h1>発表の流れ</h1>
|
|
132
|
|
133 <ul>
|
|
134 <li>Cellとは</li>
|
|
135 <li>Ceriumとは</li>
|
|
136 <li>CeriumにおけるTask</li>
|
|
137 <li>TaskArray</li>
|
|
138 <ul>
|
|
139 <li>WordCountのTaskArray化</li>
|
|
140 <li>レンダリングエンジンのTaskArray化</li>
|
|
141 </ul>
|
|
142 <li>結果</li>
|
|
143 <li>まとめ</li>
|
|
144 </ul>
|
|
145
|
|
146 </div>
|
|
147
|
|
148 <div class="slide">
|
|
149 <h1>Cellとは</h1>
|
|
150
|
|
151 <big>Cell(Cell Broadband Engine)</big>とはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ<br>
|
|
152 Cellは1基の制御系のプロセッサコア<u>PPE</u>と、8基の演算系プロセッサコア<u>SPE</u>
|
|
153 で構成される(Ceriumで扱えるSPEの数は6基)。
|
|
154
|
|
155 <!-- PPEよりもSPEが高速なので、1SPE 上で実行するだけでも意味がある。-->
|
|
156 <!-- それぞれ高速なバスで接続されている<br><br> -->
|
|
157
|
|
158 <table height="100%" width="100%" border="0">
|
|
159 <tr><td align="center" valign="middle">
|
|
160 <img src="gazo/cell1.png" style="width: 40%%"></td></tr>
|
|
161 </table>
|
|
162
|
|
163 </div>
|
|
164
|
|
165
|
|
166 <div class="slide">
|
|
167 <h1>Ceriumとは</h1>
|
|
168
|
|
169 <big>Cerium</big>とは、当研究室で開発したPS3/Cell、Mac OS X、Linux 上で動作するゲームフレームワーク。
|
|
170 以下の3つの要素から構成されている。
|
|
171
|
|
172 <ul>
|
|
173 <li>TaskManager</li>
|
|
174 <li>レンダリングエンジン</li>
|
|
175 <li>SceneGraph</li>
|
|
176 </ul>
|
|
177
|
|
178 </div>
|
|
179
|
|
180 <div class="slide">
|
|
181 <h1>Ceriumとは</h1>
|
|
182
|
|
183 <big>Cerium</big>とは、当研究室で開発したPS3/Cell、Mac OS X、Linux 上で動作するゲームフレームワーク。
|
|
184 以下の3つの要素から構成されている。
|
|
185
|
|
186 <ul>
|
|
187 <li><font color="red">TaskManager</font></li>
|
|
188 <li>レンダリングエンジン</li>
|
|
189 <li>SceneGraph</li>
|
|
190 </ul>
|
|
191
|
|
192 </div>
|
|
193
|
|
194 <div class="slide">
|
|
195 <h1>TaskManager</h1>
|
|
196
|
|
197 <ul>
|
|
198 <li>TaskManagerは、Taskと呼ばれる、分割された各プログラムを管理する</li>
|
|
199 <ul>
|
12
|
200 <li>Taskの単位はサブルーチン</li>
|
10
|
201 </ul>
|
|
202 <li>Task同士の依存関係を考慮</li>
|
|
203 <li>実行可能になったTaskをSPEに渡す</li>
|
|
204 </ul>
|
|
205
|
|
206 <table height="100%" width="100%" border="0">
|
|
207 <tr><td align="center" valign="middle">
|
12
|
208 <img src="gazo/taskmanager1.png" style="width: 50%%"></td></tr>
|
10
|
209 </table>
|
|
210
|
|
211 </div>
|
|
212
|
|
213 <div class="slide">
|
|
214 <h1>CeriumにおけるTask</h1>
|
|
215
|
|
216 TaskはTaskManagerを使って生成する。Taskを生成する際に以下のような要素が
|
|
217 設定可能である。
|
|
218
|
|
219 <ul>
|
|
220 <li>Input data</li>
|
|
221 <li>Output data</li>
|
|
222 <li>Paramater</li>
|
|
223 <li>CPU type</li>
|
|
224 <li>Dependency</li>
|
|
225 </ul>
|
|
226
|
|
227 </div>
|
|
228
|
|
229 <div class="slide">
|
|
230 <h1>CeriumにおけるTask</h1>
|
|
231 <big><u>Input data</u></big>
|
|
232 <ul>
|
|
233 <li>Input data にはTaskの処理対象データのアドレスとサイズを指定する。</li>
|
|
234 <li>SPE側でそのアドレスをもとにDMA転送を用いて実際のデータをメインメモリから取得する。</li>
|
|
235 </ul>
|
|
236
|
|
237 <table height="100%" width="100%" border="0">
|
|
238 <tr><td align="center" valign="middle">
|
|
239 <img src="gazo/task1.png" style="width: 80%%"></td></tr>
|
|
240 </table>
|
|
241
|
|
242 </div>
|
|
243
|
|
244 <div class="slide">
|
|
245 <h1>CeriumにおけるTask</h1>
|
|
246 <big><u>Output data</u></big>
|
|
247 <ul>
|
|
248 <li>Onput data にはTaskが処理したデータの書き出し先アドレスとサイズを指定する。</li>
|
|
249 <li>SPE側でそのアドレスをもとにDMA転送を用いて実際のデータをメインメモリに書き出す。</li>
|
|
250 </ul>
|
|
251
|
|
252 <table height="100%" width="100%" border="0">
|
|
253 <tr><td align="center" valign="middle">
|
|
254 <img src="gazo/task2.png" style="width: 80%%"></td></tr>
|
|
255 </table>
|
|
256
|
|
257 </div>
|
|
258
|
|
259 <div class="slide">
|
|
260 <h1>CeriumにおけるTask</h1>
|
|
261 <big><u>Paramater</u></big><br>
|
|
262 <ul>
|
|
263 <li>Input data とは別にデータを与えたい場合に使用する。</li>
|
|
264 <li>32bitの値を指定する。</li>
|
|
265 </ul>
|
|
266
|
|
267 <big><u>CPU type</u></big>
|
|
268 <ul>
|
|
269 <li>TaskがどのCoreで実行されるかを指定する。</li>
|
|
270 <li>PPEもしくは、6基のSPEのいづれかを選択できる。</li>
|
|
271 </ul>
|
|
272
|
|
273 </div>
|
|
274
|
|
275 <div class="slide">
|
|
276 <h1>CeriumにおけるTask</h1>
|
|
277 <big><u>Dependency</u></big><br>
|
|
278 <ul>
|
|
279 <li>Dependencyは他のTaskとの依存関係を示す。</li>
|
|
280 <li>例えばTaskAがTaskBの実行完了を待つ例を紹介する。</li>
|
|
281 </ul>
|
|
282
|
|
283 <table height="100%" width="100%" border="0">
|
|
284 <tr><td align="center" valign="middle">
|
|
285 <img src="gazo/dependency1.png" style="width: 40%%"></td></tr>
|
|
286 </table>
|
|
287
|
|
288 </div>
|
|
289
|
|
290
|
|
291 <div class="slide">
|
|
292 <h1>CeriumにおけるTask</h1>
|
|
293 <big><u>Dependency</u></big><br>
|
|
294 <ul>
|
|
295 <li>はじめTaskBは待つTaskがないので、すぐにActiveQueueに入る。</li>
|
|
296 <li>TaskAはTaskBを待つのでWaitQueueに入る。</li>
|
|
297 </ul>
|
|
298
|
|
299 <table height="100%" width="100%" border="0">
|
|
300 <tr><td align="center" valign="middle">
|
|
301 <img src="gazo/dependency2.png" style="width: 60%%"></td></tr>
|
|
302 </table>
|
|
303
|
|
304 </div>
|
|
305
|
|
306 <div class="slide">
|
|
307 <h1>CeriumにおけるTask</h1>
|
|
308 <big><u>Dependency</u></big><br>
|
|
309 <ul>
|
|
310 <li>ActiveQueueにあるTaskBはSPEに送られ実行される。</li>
|
|
311 <li>TaskAはWaitQueueでTaskBを待つ。</li>
|
|
312 </ul>
|
|
313
|
|
314 <table height="100%" width="100%" border="0">
|
|
315 <tr><td align="center" valign="middle">
|
|
316 <img src="gazo/dependency3.png" style="width: 60%%"></td></tr>
|
|
317 </table>
|
|
318
|
|
319 </div>
|
|
320
|
|
321
|
|
322 <div class="slide">
|
|
323 <h1>CeriumにおけるTask</h1>
|
|
324 <big><u>Dependency</u></big><br>
|
|
325 <ul>
|
|
326 <li>TaskBが完了するとMailで通知される。</li>
|
|
327 <li>TaskAは待つTaskがなくなるので、ActiveQueueに移る。</li>
|
|
328 </ul>
|
|
329
|
|
330 <table height="100%" width="100%" border="0">
|
|
331 <tr><td align="center" valign="middle">
|
|
332 <img src="gazo/dependency4.png" style="width: 60%%"></td></tr>
|
|
333 </table>
|
|
334
|
|
335 </div>
|
|
336
|
|
337
|
|
338 <div class="slide">
|
|
339 <h1>CeriumにおけるTask</h1>
|
|
340 <big><u>Dependency</u></big><br>
|
|
341 <ul>
|
|
342 <li>TaskBが完了するとMailで通知される。</li>
|
|
343 <li>TaskAは待つTaskがなくなるので、ActiveQueueに移る。</li>
|
|
344 </ul>
|
|
345
|
|
346 <table height="100%" width="100%" border="0">
|
|
347 <tr><td align="center" valign="middle">
|
|
348 <img src="gazo/dependency5.png" style="width: 60%%"></td></tr>
|
|
349 </table>
|
|
350
|
|
351 </div>
|
|
352
|
|
353
|
|
354 <div class="slide">
|
12
|
355 <h1>Taskの送信</h1>
|
|
356
|
10
|
357 <ul>
|
12
|
358 <li>Taskは1つ毎にSPEには送らない</li>
|
|
359 <li>いくつかのTaskをまとめTaskListとして送る</li>
|
|
360 <li>TaskListをすべて完了すると、SPEからPPEにMail通知が送られる</li>
|
|
361 <li>PPE側がMailをチェックし次のTaskListを通知する</li>
|
10
|
362 </ul>
|
|
363
|
|
364 <table height="100%" width="100%" border="0">
|
|
365 <tr><td align="center" valign="middle">
|
12
|
366 <img src="gazo/tasklist1.png" style="width: 40%%"></td></tr>
|
|
367 </table>
|
|
368
|
|
369 </div>
|
|
370
|
|
371 <div class="slide">
|
|
372 <h1>Mail通知</h1>
|
|
373
|
|
374 <ul>
|
|
375 <li>SPEからPPEへのMail送信ボックスはキューになっている</li>
|
|
376 <li>キューのサイズは1</li>
|
|
377 <li>書き込む際にキューがいっぱいの場合はPPEから呼び出されるまで待つ</li>
|
|
378 <li>PPEからのMail呼び出しがないと、SPEは待ち続ける</li>
|
13
|
379 <li>SPEの待ち時間が増えると、処理速度の低下につながる</li>
|
12
|
380 </ul>
|
|
381
|
|
382 </div>
|
|
383
|
|
384 <div class="slide">
|
|
385 <h1>TaskArray</h1>
|
|
386
|
|
387 <font color="red">SPEの待ちを解消するためにTaskArrayを提案、実装した</font>
|
|
388
|
|
389 <ul>
|
|
390 <li>TaskArrayは複数のTaskを1つにまとめることができる</li>
|
|
391 <li>Task毎のMail通知がTaskArray毎のMail通知になる</li>
|
|
392 </ul>
|
|
393 <br>
|
|
394 <table height="100%" width="100%" border="0">
|
|
395 <tr><td align="center" valign="middle">
|
|
396 <img src="gazo/taskarray1.png" style="width: 50%%"></td></tr>
|
10
|
397 </table>
|
|
398
|
|
399 </div>
|
|
400
|
|
401 <div class="slide">
|
12
|
402 <h1>TaskArray</h1>
|
10
|
403
|
12
|
404 期待される効果
|
10
|
405
|
12
|
406 <ul>
|
|
407 <li>Mailの数が減り、SPEのMail待ちのタイミングが減る</li>
|
|
408 <li>Mail待ちが減るので、SPEの稼働率が向上する</li>
|
|
409 <li>また、PPE側のMailチェックの時間も減る</li>
|
|
410 <li>結果、処理速度が向上する</li>
|
|
411 </ul>
|
|
412 <br>
|
|
413 <table height="100%" width="100%" border="0">
|
|
414 <tr><td align="center" valign="middle">
|
|
415 <img src="gazo/taskarray1.png" style="width: 50%%"></td></tr>
|
|
416 </table>
|
10
|
417
|
|
418 </div>
|
|
419
|
|
420 <div class="slide">
|
12
|
421 <h1>TaskArray</h1>
|
|
422
|
|
423 <font color="red">WordCountのTaskと、レンダリングエンジンのTaskの一部をTaskArray化した。
|
|
424 その結果を報告する</font><br><br>
|
|
425
|
|
426 それぞれのTask内容
|
|
427
|
|
428 <ul>
|
|
429 <li>WordCount</li>
|
|
430 <ul>
|
|
431 <li>WordCountTask(<font color="red">TaskArray化</font>)</li>
|
|
432 <li>PrintTask</li>
|
|
433 </ul>
|
10
|
434
|
12
|
435 <li>レンダリングエンジン</li>
|
|
436 <ul>
|
|
437 <li>CreatePolygonTask</li>
|
|
438 <li>CreateSpanTask</li>
|
|
439 <li>DrawSpanTask(<font color="red">TaskArray化</font>)</li>
|
|
440 </ul>
|
10
|
441
|
12
|
442 </ul>
|
|
443
|
|
444 </div>
|
|
445
|
|
446 <div class="slide">
|
|
447 <h1>WordCount</h1>
|
10
|
448
|
13
|
449 構成Task
|
|
450
|
|
451 <ul>
|
|
452 <li>WordCountTask(<font color="red">TaskArray化</font>)</li>
|
|
453 <ul>
|
|
454 <li>Input data であたえられたデータをwcし、output data に書き出す</li>
|
|
455 </ul>
|
|
456
|
|
457 <li>PrintTask</li>
|
|
458 <ul>
|
|
459 <li>各SPEから書き出されたwcデータを集計し、出力する</li>
|
|
460 <li>dependency に WordCountTaskを設定</li>
|
|
461 </ul>
|
|
462
|
|
463 </ul>
|
|
464
|
|
465 </div>
|
|
466
|
|
467 <div class="slide">
|
|
468 <h1>WordCount</h1>
|
|
469
|
12
|
470 <ul>
|
|
471 <li>wcするfileをマッピングし、Taskに割り振る</li>
|
|
472 <li>WordCountTaskの終了をまって、PrintTaskが実行される</li>
|
|
473 </ul>
|
|
474
|
|
475 <table height="100%" width="100%" border="0">
|
|
476 <tr><td align="center" valign="middle">
|
|
477 <img src="gazo/wc_graf1.png" style="width: 40%%"></td></tr>
|
|
478 </table>
|
|
479
|
|
480 </div>
|
|
481
|
|
482 <div class="slide">
|
|
483 <h1>WordCount</h1>
|
10
|
484
|
13
|
485 計測条件
|
|
486
|
12
|
487 <ul>
|
|
488 <li>TaskArrayのサイズは64</li>
|
13
|
489 <li>Word count対象は166Mのテキスト</li>
|
12
|
490 <li>TaskArrayの適応の有無を比較</li>
|
|
491 </ul>
|
|
492
|
|
493 </div>
|
10
|
494
|
12
|
495 <div class="slide">
|
|
496 <h1>WordCount</h1>
|
10
|
497
|
12
|
498 <ul>
|
|
499 <li>time : 実行時間</li>
|
|
500 <li>dma wait : dma転送待ちの割合</li>
|
13
|
501 <li>mail wait : mail待ちの割合</li>
|
12
|
502 </ul>
|
|
503
|
|
504 <br>
|
10
|
505
|
|
506 <table border="3" style="width:100%;">
|
|
507 <tr>
|
|
508 <th></th>
|
12
|
509 <th>Task</th>
|
|
510 <th>TaskArray</th>
|
10
|
511 </tr>
|
|
512 <tr>
|
12
|
513 <th>time</th>
|
|
514 <td align="center">2.184s</td>
|
|
515 <td align="center">2.109s</td>
|
10
|
516
|
|
517 </tr>
|
|
518 <tr>
|
12
|
519 <th>dma wait</th>
|
|
520 <td align="center">18%</td>
|
|
521 <td align="center">12%</td>
|
10
|
522
|
|
523 </tr>
|
|
524 <tr>
|
12
|
525 <th>mail wait</th>
|
|
526 <td align="center">5%</td>
|
|
527 <td align="center">8%</td>
|
10
|
528 </tr>
|
|
529
|
12
|
530 <caption></caption>
|
10
|
531
|
|
532 </table><br>
|
|
533
|
|
534 <div class="slide">
|
12
|
535 <h1>WordCount</h1>
|
10
|
536
|
|
537 <ul>
|
12
|
538 <li>あまり効果は見られなかった</li>
|
|
539 <li>PPE側のTaskがないので、あまりmail待ちが入らない</li>
|
|
540 <li>ファイルのサイズが大きいのでメモリアクセスで時間がかかる</li>
|
10
|
541 </ul>
|
|
542
|
12
|
543 <br>
|
10
|
544
|
|
545 <table border="3" style="width:100%;">
|
|
546 <tr>
|
|
547 <th></th>
|
12
|
548 <th>Task</th>
|
|
549 <th>TaskArray</th>
|
10
|
550 </tr>
|
|
551 <tr>
|
12
|
552 <th>time</th>
|
|
553 <td align="center">2.184s</td>
|
|
554 <td align="center">2.109s</td>
|
10
|
555
|
12
|
556 </tr>
|
|
557 <tr>
|
|
558 <th>dma wait</th>
|
|
559 <td align="center">18%</td>
|
|
560 <td align="center">12%</td>
|
10
|
561
|
|
562 </tr>
|
|
563 <tr>
|
12
|
564 <th>mail wait</th>
|
|
565 <td align="center">5%</td>
|
|
566 <td align="center">8%</td>
|
10
|
567 </tr>
|
|
568
|
12
|
569 <caption></caption>
|
10
|
570
|
|
571 </table><br>
|
|
572
|
12
|
573 </div>
|
|
574
|
|
575 <div class="slide">
|
|
576 <h1>WordCount</h1>
|
|
577
|
|
578 改善策
|
|
579
|
|
580 <ul>
|
|
581 <li>一度にファイルマッピングをしない</li>
|
13
|
582 <li>同じ領域を切り替えて、何度かに分けてマッピングする</li>
|
|
583 <li>スワップを減らし、アクセス時間を短縮できる</li>
|
12
|
584 <li>dma wait の割合が減る</li>
|
|
585 </ul>
|
10
|
586
|
|
587 </div>
|
|
588
|
|
589
|
|
590 <div class="slide">
|
12
|
591 <h1>レンダリングエンジン</h1>
|
10
|
592
|
12
|
593 構成Task
|
10
|
594
|
12
|
595 <ul>
|
|
596 <li>CreatePolygonTask</li>
|
13
|
597 <ul>
|
|
598 <li>Polygonを生成する</li>
|
|
599 </ul>
|
12
|
600 <li>CreateSpanTask</li>
|
13
|
601 <ul>
|
|
602 <li>Polygonを水平な線(Span)に分割する</li>
|
|
603 </ul>
|
12
|
604 <li>DrawSpanTask(<font color="red">TaskArray化</font>)</li>
|
13
|
605 <ul>
|
|
606 <li>Spanを描画する</li>
|
|
607 </ul>
|
12
|
608 </ul>
|
10
|
609
|
|
610 <br>
|
12
|
611 DrawSpanTask : Taskの数が多いDrawSpanTaskをTaskArray化した。地球と月を表示する
|
|
612 例題を対象に計測した。
|
10
|
613
|
|
614 </div>
|
|
615
|
|
616 <div class="slide">
|
12
|
617 <h1>レンダリングエンジン</h1>
|
|
618
|
|
619 <ul>
|
|
620 <li>FPS : 一秒間に表示できるFrame数</li>
|
|
621 </ul>
|
|
622
|
|
623 <table border="3" style="width:100%;">
|
|
624 <tr>
|
|
625 <th></th>
|
|
626 <th>Task</th>
|
|
627 <th>TaskArray</th>
|
|
628 </tr>
|
|
629 <tr>
|
|
630 <th>FPS</th>
|
|
631 <td align="center">3.94</td>
|
|
632 <td align="center">4.32</td>
|
10
|
633
|
12
|
634 </tr>
|
|
635 <tr>
|
|
636 <th>dma wait</th>
|
|
637 <td align="center">0.06%</td>
|
|
638 <td align="center">0.07%</td>
|
10
|
639
|
12
|
640 </tr>
|
|
641 <tr>
|
|
642 <th>mail wait</th>
|
|
643 <td align="center">55%</td>
|
|
644 <td align="center">42%</td>
|
|
645 </tr>
|
|
646
|
|
647 <caption></caption>
|
|
648
|
|
649 </table><br>
|
|
650
|
|
651 <ul>
|
13
|
652 <li>mail wait 割合が減少した</li>
|
12
|
653 <li>レンダリングエンジンの場合、PPE側で実行するTaskがあるので、
|
13
|
654 mailチェックが遅れ気味になっている</li>
|
12
|
655 </ul>
|
10
|
656
|
|
657 </div>
|
|
658
|
|
659 <div class="slide">
|
12
|
660 <h1>まとめ</h1>
|
|
661
|
10
|
662
|
12
|
663 <ul>
|
|
664 <li>複数のTaskをまとめるTaskArrayを提案、実装した。</li>
|
13
|
665 <li>PPE側が忙しく、mailチェックが遅れる場合に効果がある</li>
|
12
|
666 <li>PPE側にTaskがない場合は、mailチェックは間に合う</li>
|
|
667 <li>WordCountはdma転送がネックになっている</li>
|
|
668 <li>マッピングの方法、Taskのスケジューリングを工夫して、dma転送時間を削減できる</li>
|
|
669
|
|
670
|
|
671 </ul>
|
10
|
672
|
|
673 </div>
|
|
674
|
|
675
|
|
676
|
|
677 <div class="slide">
|
|
678 <h1>end</h1>
|
|
679 <ul>
|
|
680 /*end*/
|
|
681 <br><br>
|
|
682
|
|
683
|
|
684 <div class="handout">
|
|
685 [any material that should appear in print but not on the slide]
|
|
686 </div>
|
|
687 </div>
|
|
688
|
|
689
|
|
690 </div>
|
|
691
|
|
692 </body>
|
|
693 </html>
|