comparison presen/presen.html @ 12:e6a78ee8fb13

fix
author Yutaka_Kinjyo
date Tue, 12 Apr 2011 17:13:21 +0900
parents
children 083c7035b2cf
comparison
equal deleted inserted replaced
11:6e65cf74c569 12:e6a78ee8fb13
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>ゲームフレームワーク Cerium TaskManager の改良</h1>
89 <h3>金城 裕, 河野 真治, <br>多賀野 海人, 小林 佑亮</h3>
90 <h4>琉球大学大学院理工学研究科情報工学専攻並列信頼研</h4>
91 </div>
92
93 <div class="slide">
94 <h1>概要</h1>
95
96 ゲームフレームワーク Cerium TaskManager を開発しました。
97
98 <ul>
99 <li>動作環境:MacOSX, Linux, PS3/Cell</li>
100 <li>主にCellに特化している。</li>
101 <li>SceneGraphを用いて、ゲームを記述する</li>
102
103 </ul><br>
104
105 琉球大学の学生実験で使用している。
106
107 </div>
108
109
110 <div class="slide">
111 <h1>Cell</h1>
112 Cell Broadband Engine
113
114 <ul>
115 <li>ソニー・コンピュータエンタテインメント、ソニー、IBM , 東芝によって開発されたマルチコア CPU である</li>
116 <li>1基の制御系プロセッサコアPPE(PowerPC Processor Element)</li>
117 <li>8基の演算系プロセッサコアSPE(Synergistic Processor Element)</li>
118 <li>各コアはEIB(Element Interconnect Bus)とうバスで接続されている</li>
119 </ul><br>
120
121 </div>
122
123 <div class="slide">
124 <h1>Cell</h1>
125 Cell Broadband Engine
126
127 <table height="100%" width="100%" border="0">
128 <tr><td align="center" valign="middle">
129 <img src="gazo/cell_arch.jpg" style="width: 50%%"></td></tr>
130 </table>
131
132
133 PPEは直接メインメモリアクセスできるが、SPEはそれぞれのLSにしかアクセスできない<br>
134 DMA転送を用いてメインメモリからのデータを明示的に取得する
135
136 </div>
137
138 <div class="slide">
139 <h1>Cell</h1>
140 Cell のプログラミングスタイル
141
142 <ul>
143 <li>PPEがデータと仕事を分割し、各SPEへ割り当てる</li>
144 </ul><br>
145
146 Ceriumでは関数をTaskとして定義。Taskを各SPEへ割り当てる。<br>
147 一つのTaskにはinput,output,param,等のデータを持たせる<br>
148
149
150 </div>
151
152 <div class="slide">
153 <h1>Ceriumの構成</h1>
154
155 Ceriumの構成
156
157 <ul>
158 <li>TaskManager</li>
159 <ul>
160 <li>ユーザが定義したTaskを管理し、各コアに割り当てる</li>
161 </ul>
162
163 <li>RenderingEngine</li>
164 <ul>
165 <li>オブジェクトを画面に描画する</li>
166 <li>3種類のTaskから構成される</li>
167 </ul>
168
169 <li>SceneGraph</li>
170 <ul>
171 <li>ゲームのルールを記述してく</li>
172 <li>ゲームのシーンを作成し、それを切り替えながらゲームを進行する</li>
173 <li>OpenSceneGraphのようなもの</li>
174 </ul>
175
176 </ul><br>
177
178
179
180 </div>
181
182 <div class="slide">
183 <h1>Ceriumの構成</h1>
184
185 <table height="100%" width="100%" border="0">
186 <tr><td align="center" valign="middle">
187 <img src="gazo/cerium.png" style="width: 50%%"></td></tr>
188 </table>
189
190 </div>
191
192 <div class="slide">
193 <h1>TaskManager</h1>
194
195 TaskManager
196
197 <ul>
198 <li>Taskは関数単位</li>
199 <li>定義されたTaskは依存関係に沿って実行される</li>
200 <li>Taskはある程度の数が揃った上で、TaskListにまとめられSPEに送られる。</li>
201 <li>Taskはread,exec,write それぞれパイプライン化されて動く</li>
202 <li>Taskに必要なデータはDMA転送で送られる。転送時間はパイプライン化によって隠される</li>
203 <li>Taskの中にDMA転送命令を書くと自動ではパイプライン化されない</li>
204 </ul>
205
206 </div>
207
208 <div class="slide">
209 <h1>TaskMangerを使った例題</h1>
210
211 CeriumのTaskManager を使ったSortの例題<br>
212 10万個のランダムな値をクイックソートでソートする<br>
213 ソートする関数をTaskにして各SPEで実行<br><br>
214
215 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
216 <caption>Sortの例題</caption>
217 <tr>
218 <th></th>
219 <th>PPEのみ</th>
220 <th>SPE 1つ</th>
221 <th>SPE 6つ</th>
222 <!--<th>Mac(Core2Duo)</th>-->
223 <th>SPE稼働率</th>
224 </tr>
225 <tr align="center">
226 <td>QuickSort</td>
227 <td>5.60s</td>
228 <td>6.22s</td>
229 <td>1.07s</td>
230 <td>97%</td>
231 <!--<td>1.76s</td>-->
232 </tr>
233 </table>
234
235 <!-- 2.13GHz -->
236 </div>
237
238
239 <div class="slide">
240 <h1>アムダール則</h1>
241
242 プログラムの全体に対する並列化した部分の割合が低いと、マルチコアの性能がでない
243 <!--プログラムの8割を並列化すると、6CPUでは3倍の性能向上しか得られない-->
244
245 <table height="100%" width="100%" border="0">
246 <tr><td align="center" valign="middle">
247 <img src="gazo/amdahl.jpg" style="width: 55%%"></td></tr>
248 </table>
249
250 </div>
251
252 <div class="slide">
253 <h1>RenderingEngine</h1>
254
255 RenderingEngineの例題<br>
256 月と
257
258 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
259 <tr>
260 <th></th>
261 <th>FPS</th>
262 <th>稼働率</th>
263 <!--<th>Mac(Core2Duo)</th>-->
264 <th>SPE稼働率</th>
265 </tr>
266 <tr align="center">
267 <td>universe</td>
268 <td>17FPS</td>
269 <td>25.4%</td>
270 <!--<td>1.76s</td>29%-->
271 </tr>
272 </table>
273
274
275
276
277 </div>
278
279
280 <div class="slide">
281 <h1>RenderingEngine</h1>
282
283 SortとRenderingEngineの違い
284
285 <ul>
286 <li>三種類のTaskから構成されている</li>
287 <li>三つのTaskはバリア同期を行っている</li>
288 <li>すべてのTaskは一度に作られない</li>
289 <li>PPEにもTaskが割り振られている</li>
290 <li>大量のデータを扱う(ポリゴン、テクスチャ)</li>
291 </ul>
292
293 </div>
294
295 <div class="slide">
296 <h1>RenderingEngineの構成</h1>
297 RenderingEngineの構成
298 <ul>
299 <li>CreatePolygon</li>
300 <ul>
301 <li>モデリングデータからポリゴンを生成する</li>
302 </ul>
303 <li>CreateSpan</li>
304 <ul>
305 <li>ポリゴンをSpanと呼ばれる水平な線に分ける</li>
306 </ul>
307 <li>DrawSpan</li>
308 <ul>
309 <li>Spanを実際にディスプレイに描画する</li>
310 </ul>
311 </ul><br>
312
313 RenderingEngineは3種類のTaskから構成されている
314
315 </div>
316
317
318 <div class="slide">
319 <h1>RenderingEngine</h1>
320
321 RenderingEngienの場合の問題点
322
323 <ul>
324 <li>SPEの待ちが入る(SPEの稼働率の低下、処理性能の低下)</li>
325 <ul>
326 <li>MailをPPEが読み込みのを待つ</li>
327 <li>他のSPEを待つ</li>
328 <li>次のTaskListを待つ</li>
329 </ul>
330 <li>PPE側でTaskを生成、各SPEに割り振る</li>
331 <li>Taskはバリア同期している</li>
332 </ul>
333
334 </div>
335
336 <div class="slide">
337 <h1>バリア同期</h1>
338 <table height="100%" width="100%" border="0">
339 <tr><td align="center" valign="middle">
340 <img src="gazo/renderingengine1.png" style="width: 35%%"></td></tr>
341 </table>
342
343 RenderingEngineのTaskは、3つそれぞれバリア同期をしている。
344
345 </div>
346
347 <div class="slide">
348 <h1>バリア同期</h1>
349 バリア同期には二つの待ちがある
350 <ul>
351 <li>SPEが他のSPEを待つ時間</li>
352 <li>バリア同期が完了し、PPE側で次のTaskが作られる時間</li>
353 </ul><br>
354
355
356 </div>
357
358 <div class="slide">
359 <h1>バリア同期</h1>
360 <table height="100%" width="100%" border="0">
361 <tr><td align="center" valign="middle">
362 <img src="gazo/renderingengine2.png" style="width: 45%%"></td></tr>
363 </table>
364
365 この待ちを解消するためにTaskのパイプライン化を行った。
366
367 </div>
368
369
370
371 <div class="slide">
372 <h1>Ceriumの改良点の概要</h1>
373
374 Ceriumの改良点の概要
375
376 <ul>
377 <li>TaskManager</li>
378 <ul>
379 <li>Taskの同期にはCellのMail機能を使う</li>
380 <li>Mailの同期するタイミングの改良</li>
381 <ul>
382 <li>MailQueue</li>
383 <li>TaskArray</li>
384 </ul>
385 </ul>
386
387 <li>RenderingEngine</li>
388 <ul>
389 <li>Taskのパイプライン化</li>
390 <li>扱う画像をSPE側でキャッシュする</li>
391 </ul>
392
393 </ul>
394
395 </div>
396
397 <div class="slide">
398 <h1>Mailbox機能</h1>
399 CellのMailbox機能<br>
400
401 <ul>
402 <li>PPEとSPEとの間を双方向で32bitのデータを受け渡す</li>
403 <li>FIFO キュー構造</li>
404 </ul>
405 Mailboxの種類
406 <ul>
407 <li>Inbount Mailbox(PPE->SPE 4つ)</li>
408 <li>Outbount Mailbox(SPE->PPE 一つ)</li>
409 <li>Outbount interrupt Mailbox(SPE->PPE 一つ)</li>
410 </ul>
411
412 </div>
413
414 <div class="slide">
415 <h1>Mailbox機能</h1>
416
417 <table height="100%" width="100%" border="0">
418 <tr><td align="center" valign="middle">
419 <img src="gazo/mailbox.png" style="width: 60%%"></td></tr>
420 </table>
421
422 </div>
423
424 <div class="slide">
425 <h1>Mailbox機能</h1>
426 SPE側からTaskが一つ実行完了する度に、実行完了のMailをOutboxに書きこむ<br>
427
428 <ul>
429 <li>Outboxに既にMailが書きこまれている場合に、PPE側から読み込まれるまで、SPEは待つ(Cellの仕様)</li>
430 <li>PPE側のMailチェックが追いつかない場合がある。</li>
431 <li>その間、SPEは何もしないので、処理速度の低下につながる</li>
432 </ul><br>
433
434 そこで、Outboxに既に読み込まれていないMailがあった場合に、いったん、別のキューに追加する。(MailQueue)
435
436
437 </div>
438
439 <div class="slide">
440 <h1>MailQueue</h1>
441
442 <ul>
443 <li>TaskListを消化し、次のTaskListを要求する時に、MailQueueにMailが残っている場合はそれを先に書きだす</li>
444 <li>PPE側はMailのチェックをMailが無くなるまでループする</li>
445 <li>PPEはMailがない場合に、自分の仕事に戻る。</li>
446 <li>今のPPEのMailチェックの仕様には、一度にMailを書きだすのが向いている</li>
447 </ul>
448
449 </ul>
450
451 </div>
452
453 <div class="slide">
454 <h1>MailQueueの効果</h1>
455
456 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
457 <caption>MailQueueの効果</caption>
458 <tr>
459 <th></th>
460 <th>改良前</th>
461 <th>改良後</th>
462 <th>性能</th>
463 </tr>
464 <tr align="center">
465 <td>universe</td>
466 <td>16FPS</td>
467 <td>18.5FPS</td>
468 <td>12%向上</td>
469 </tr>
470 </table>
471
472 地球と月を表示する例題を使って計測した。
473
474 </div>
475
476 <div class="slide">
477 <h1>Ceriumの改良点の概要</h1>
478
479 Ceriumの改良点の概要
480
481 <ul>
482 <li>TaskManager</li>
483 <ul>
484 <li>Taskの同期にはCellのMail機能を使う</li>
485 <li>Mailの同期するタイミングの改良</li>
486 <ul>
487 <li><s>MailQueue</s></li>
488 <li>TaskArray</li>
489 </ul>
490 </ul>
491
492 <li>RenderingEngine</li>
493 <ul>
494 <li>Taskのパイプライン化</li>
495 <li>扱う画像をSPE側でキャッシュする</li>
496 </ul>
497
498 </ul>
499
500 </div>
501
502
503 <div class="slide">
504 <h1>TaskArray</h1>
505 Task毎のMailは、Task同士の依存関係を解決するために用いている。
506
507 <ul>
508 <li>依存関係はグループ化できる</li>
509 <li>TaskArrayを用いて複数のTaskのMailを一つに扱う</li>
510 </ul>
511
512 Mailの数を減らせるので、Mailのための処理が減る。その分処理速度が上がる
513
514 </div>
515
516 <div class="slide">
517 <h1>TaskArray</h1>
518
519 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
520 <caption>TaskArrayの効果(universe)</caption>
521 <tr>
522 <th></th>
523 <th>改良前</th>
524 <th>改良後</th>
525 <th>性能</th>
526 </tr>
527 <tr align="center">
528 <td>universe</td>
529 <td>16FPS</td>
530 <td>18.5FPS</td>
531 <td>12%向上</td>
532 </tr>
533 </table>
534
535 </div>
536
537
538
539 <div class="slide">
540 <h1>MailQueueとTaskArray</h1>
541
542 <table border="1" cellspacing="0" cellspacing="2" cellpadding="8" align="center">
543 <caption>MailQueueとTaskArrayの効果(universe)</caption>
544 <tr>
545 <th>TaskArray</th>
546 <th>MailQueue</th>
547 <th>FPS</th>
548 <th>性能</th>
549 </tr>
550 <tr align="center">
551 <td>あり</td>
552 <td>あり</td>
553 <td>20FPS</td>
554 <td>22%向上</td>
555 </tr>
556 <tr align="center">
557 <td>あり</td>
558 <td>なし</td>
559 <td>18.5FPS</td>
560 <td>12%向上</td>
561 </tr>
562 <tr align="center">
563 <td>なし</td>
564 <td>あり</td>
565 <td>18.5FPS</td>
566 <td>12%向上</td>
567 </tr>
568 <tr align="center">
569 <td>なし</td>
570 <td>なし</td>
571 <td>16.4FPS</td>
572 <td>0%向上</td>
573 </tr>
574 </table>
575
576 </div>
577
578
579 <div class="slide">
580 <h1>Ceriumの改良点の概要</h1>
581
582 Ceriumの改良点の概要
583
584 <ul>
585 <li>TaskManager</li>
586 <ul>
587 <li>Taskの同期にはCellのMailbox機能を使う</li>
588 <li>Mailの同期するタイミングの改良</li>
589 <ul>
590 <li><s>MailQueue</s></li>
591 <li><s>TaskArray</s></li>
592 </ul>
593 </ul>
594
595 <li>RenderingEngine</li>
596 <ul>
597 <li>Taskのパイプライン化</li>
598 <li>扱う画像をSPE側でキャッシュする</li>
599 </ul>
600
601 </ul>
602
603 </div>
604
605
606
607
608 <div class="slide">
609 <h1>パイプライン化</h1>
610 <table height="100%" width="100%" border="0">
611 <tr><td align="center" valign="middle">
612 <img src="gazo/renderingengine4.png" style="width: 40%%"></td></tr>
613 </table>
614
615 あまり、多段にするとゲームのキー入力の反映が遅れる。DrawSpanの処理が他の二つに比べて重いので
616 DrawSpanとパイプラインを組むことで十分に隠れる
617
618 </div>
619
620 <div class="slide">
621 <h1>パイプライン化の比較</h1>
622
623 例題:<br>
624 PS3上で学生実験で学生が作成したシューティングゲーム
625 SuperDandy を用いる。
626
627
628 </div>
629
630
631 <div class="slide">
632 <h1>パイプライン化の比較</h1>
633
634 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
635 <caption>パイプライン化の効果(dandy)</caption>
636 <tr>
637 <th></th>
638 <th>改良前</th>
639 <th>改良後</th>
640 <th>性能</th>
641 </tr>
642 <tr align="center">
643 <td>dandy</td>
644 <td>11.5FPS</td>
645 <td>16.6FPS</td>
646 <td>44%向上</td>
647 </tr>
648 </table>
649
650 44%の向上がみられた。
651
652 </div>
653
654 <div class="slide">
655 <h1>Ceriumの改良点の概要</h1>
656
657 Ceriumの改良点の概要
658
659 <ul>
660 <li>TaskManager</li>
661 <ul>
662 <li>Taskの同期にはCellのMailbox機能を使う</li>
663 <li>Mailの同期するタイミングの改良</li>
664 <ul>
665 <li><s>MailQueue</s></li>
666 <li><s>TaskArray</s></li>
667 </ul>
668 </ul>
669
670 <li>RenderingEngine</li>
671 <ul>
672 <li><s>Taskのパイプライン化</s></li>
673 <li>扱う画像をSPE側でキャッシュする</li>
674 </ul>
675
676 </ul>
677
678 </div>
679
680
681 <div class="slide">
682 <h1>SPEのキャッシュ効果</h1>
683
684 SPE内でのキャッシュ
685
686 <ul>
687 <li>DrawSpan内で、描画するためのテクスチャデータを読み込む。</li>
688 <li>テクスチャは分割さていて、必要な時に必要な部分を読み込む</li>
689 <li>そこで、テクスチャをキャッシュするようにした(LRU)</li>
690 <li>テクスチャのデータはハッシュで管理する</li>
691 </ul>
692
693 </div>
694
695
696 <div class="slide">
697 <h1>SPEのキャッシュ効果</h1>
698
699 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
700 <caption>SPEのキャッシュの効果(universe)</caption>
701 <tr>
702 <th></th>
703 <th>改良前</th>
704 <th>改良後</th>
705 <th>性能</th>
706 </tr>
707
708 <tr align="center">
709 <td>ball_bound</td>
710 <td>4FPS</td>
711 <td>30FPS</td>
712 <td>7.5倍</td>
713 </tr>
714
715 <tr align="center">
716 <td>panel</td>
717 <td>0.2FPS</td>
718 <td>2.6FPS</td>
719 <td>13倍</td>
720 </tr>
721
722 </table>
723
724 テクスチャは頻繁に読み込みが行われるので、キャッシュは非常に有効だった。
725 Span一つに対して、分割されたテクスチャが複数必要。
726 Spanの数は、1920x1080 の解像度で、最低でも8000ほどのテクスチャ読み込みが起こる。
727
728 </div>
729
730 <div class="slide">
731 <h1>SPEのキャッシュ効果</h1>
732
733 実は改良前の計測にバグが。キャッシュを無効にした場合にキャッシュがHITしない動作
734
735
736 </div>
737
738
739 <div class="slide">
740 <h1>OpenGLとの比較</h1>
741 OpenGL(Open Graphics Library)とは、Silicon Graphics社が開発した、3Dグラフィックス処理の
742 ためのプログラミングインターフェース。Taskに分割され、SPEを使用したCeriumと、PPEのみで動作
743 するOpenGLとで、処理速度の比較をした。例題は先ほど紹介したSuperDandyを用いた。
744 </div>
745
746 <div class="slide">
747 <h1>OpenGLとの比較</h1>
748
749 <table border="1" cellspacing="0" cellspacing="2" cellpadding="10" align="center">
750 <caption>パイプライン化の効果(universe)</caption>
751 <tr>
752 <th></th>
753 <th>OpenGL</th>
754 <th>Cerium</th>
755 <th>性能差</th>
756 </tr>
757 <tr align="center">
758 <td>dandy</td>
759 <td>17.5FPS</td>
760 <td>49.5FPS</td>
761 <td>2.9倍</td>
762 </tr>
763 </table>
764
765 コア一つを使用するOpenGLに比べ、Cerium では2.9倍の性能向上が見られた。
766 SPEを活用、待ち時間の短縮を行い、性能向上がみれた。
767
768 </div>
769
770 <div class="slide">
771 <h1>まとめ</h1>
772
773 本研究ではゲームフレームワーク Cerium TaskManager の改良を行った。
774 特にCell上において、SPEの稼働率に注意する必要があった。
775
776 SPE、PPE間のデータのやり取りにMail通知を用いている。SPEはMailの書き込みの際に待ちが発生する
777
778 <ul>
779 <li>MailQueue</li>
780 <li>TaskArray</li>
781 </ul>
782
783 で待ち時間の削減ができる
784
785 </div>
786
787 <div class="slide">
788 <h1>まとめ</h1>
789
790 RenderingEngineにおいて、Taskがバリア同期をしている。バリア同期にも待ちが発生する
791
792 <ul>
793 <li>Task実行をパイプライン化</li>
794 </ul>
795
796 SPEの待ち時間を解消できる。頻繁に扱うデータはSPE内でキャッシュするのがよい
797
798 </div>
799
800
801 <div class="slide">
802 <h1>依存関係の話</h1>
803 稼働率を維持するためにパイプライン化がある
804
805 <ul>
806 <li>扱うデータの依存性から、Pipelineを自動で生成できるはず</li>
807 <li>TaskArrayもデータから自動でできるはず。</li>
808 <li>データはSegmentとして扱う</li>
809 </ui>
810
811 </div>
812
813 <div class="slide">
814 <h1>Codeload</h1>
815
816 Taskを事前に全部ロードしてる
817
818 <ul>
819 <li>SPEのLSは256KB</li>
820 <li>大量のコードを入れるといっぱいになる</li>
821 <li>必要な時に必要な分を予測してSPEにロードするのがよい</li>
822 </ul>
823
824 </div>
825
826 <div class="slide">
827 <h1>Segment</h1>
828
829 データはすべてSegmentという形にして、SPEに必要な分を予測、読み込みするのがよい。<br>
830 テクスチャのように頻繁に扱うデータはキャッシュする<br>
831
832 </div>
833
834
835
836 <div class="slide">
837 <h1>END</h1>
838
839 /*end*/
840
841 </div>
842
843
844 </ul>
845
846 <div class="handout">
847 [any material that should appear in print but not on the slide]
848 </div>
849 </div>
850
851
852 </div>
853
854 </body>
855 </html>