Mercurial > hg > Papers > 2010 > jsst-yutaka
comparison presen/presen.html @ 12:c770f569a801
add file
author | Yutaka_Kinjyo |
---|---|
date | Fri, 10 Sep 2010 02:43:57 +0900 |
parents | e5f74d4de3ad |
children | 87b8bb4d104c |
comparison
equal
deleted
inserted
replaced
11:64d19544a2fd | 12:c770f569a801 |
---|---|
178 <h1>TaskManager</h1> | 178 <h1>TaskManager</h1> |
179 | 179 |
180 <ul> | 180 <ul> |
181 <li>TaskManagerは、Taskと呼ばれる、分割された各プログラムを管理する</li> | 181 <li>TaskManagerは、Taskと呼ばれる、分割された各プログラムを管理する</li> |
182 <ul> | 182 <ul> |
183 <li>Taskの単位は関数またはサブルーチン</li> | 183 <li>Taskの単位はサブルーチン</li> |
184 </ul> | 184 </ul> |
185 <li>Task同士の依存関係を考慮</li> | 185 <li>Task同士の依存関係を考慮</li> |
186 <li>実行可能になったTaskをSPEに渡す</li> | 186 <li>実行可能になったTaskをSPEに渡す</li> |
187 </ul> | 187 </ul> |
188 | 188 |
189 <table height="100%" width="100%" border="0"> | 189 <table height="100%" width="100%" border="0"> |
190 <tr><td align="center" valign="middle"> | 190 <tr><td align="center" valign="middle"> |
191 <img src="gazo/taskmanager1.png" style="width: 60%%"></td></tr> | 191 <img src="gazo/taskmanager1.png" style="width: 50%%"></td></tr> |
192 </table> | 192 </table> |
193 | 193 |
194 </div> | 194 </div> |
195 | 195 |
196 <div class="slide"> | 196 <div class="slide"> |
333 | 333 |
334 </div> | 334 </div> |
335 | 335 |
336 | 336 |
337 <div class="slide"> | 337 <div class="slide"> |
338 <h1>Taskの送信</h1> | |
339 | |
340 <ul> | |
341 <li>Taskは1つ毎にSPEには送らない</li> | |
342 <li>いくつかのTaskをまとめTaskListとして送る</li> | |
343 <li>TaskListをすべて完了すると、SPEからPPEにMail通知が送られる</li> | |
344 <li>PPE側がMailをチェックし次のTaskListを通知する</li> | |
345 </ul> | |
346 | |
347 <table height="100%" width="100%" border="0"> | |
348 <tr><td align="center" valign="middle"> | |
349 <img src="gazo/tasklist1.png" style="width: 40%%"></td></tr> | |
350 </table> | |
351 | |
352 </div> | |
353 | |
354 <div class="slide"> | |
355 <h1>Mail通知</h1> | |
356 | |
357 <ul> | |
358 <li>SPEからPPEへのMail送信ボックスはキューになっている</li> | |
359 <li>キューのサイズは1</li> | |
360 <li>書き込む際にキューがいっぱいの場合はPPEから呼び出されるまで待つ</li> | |
361 <li>PPEからのMail呼び出しがないと、SPEは待ち続ける</li> | |
362 </ul> | |
363 | |
364 </div> | |
365 | |
366 <div class="slide"> | |
338 <h1>TaskArray</h1> | 367 <h1>TaskArray</h1> |
339 <big><u>TaskArray</u></big><br> | 368 |
340 <ul> | 369 <font color="red">SPEの待ちを解消するためにTaskArrayを提案、実装した</font> |
341 <li>Task毎にMail通知を行う、、今日はここまで・・続きまた頑張りまっす。</li> | 370 |
342 </ul> | 371 <ul> |
343 | 372 <li>TaskArrayは複数のTaskを1つにまとめることができる</li> |
344 <table height="100%" width="100%" border="0"> | 373 <li>Task毎のMail通知がTaskArray毎のMail通知になる</li> |
345 <tr><td align="center" valign="middle"> | 374 </ul> |
346 <img src="gazo/dependency5.png" style="width: 60%%"></td></tr> | 375 <br> |
347 </table> | 376 <table height="100%" width="100%" border="0"> |
348 | 377 <tr><td align="center" valign="middle"> |
349 </div> | 378 <img src="gazo/taskarray1.png" style="width: 50%%"></td></tr> |
350 | 379 </table> |
351 | 380 |
352 | 381 </div> |
353 | 382 |
354 | 383 <div class="slide"> |
355 <div class="slide"> | 384 <h1>TaskArray</h1> |
356 <h1>今週</h1> | 385 |
386 期待される効果 | |
387 | |
388 <ul> | |
389 <li>Mailの数が減り、SPEのMail待ちのタイミングが減る</li> | |
390 <li>Mail待ちが減るので、SPEの稼働率が向上する</li> | |
391 <li>また、PPE側のMailチェックの時間も減る</li> | |
392 <li>結果、処理速度が向上する</li> | |
393 </ul> | |
394 <br> | |
395 <table height="100%" width="100%" border="0"> | |
396 <tr><td align="center" valign="middle"> | |
397 <img src="gazo/taskarray1.png" style="width: 50%%"></td></tr> | |
398 </table> | |
399 | |
400 </div> | |
401 | |
402 <div class="slide"> | |
403 <h1>TaskArray</h1> | |
404 | |
405 <font color="red">WordCountのTaskと、レンダリングエンジンのTaskの一部をTaskArray化した。 | |
406 その結果を報告する</font><br><br> | |
407 | |
408 それぞれのTask内容 | |
409 | |
410 <ul> | |
411 <li>WordCount</li> | |
412 <ul> | |
413 <li>WordCountTask(<font color="red">TaskArray化</font>)</li> | |
414 <li>PrintTask</li> | |
415 </ul> | |
416 | |
417 <li>レンダリングエンジン</li> | |
418 <ul> | |
419 <li>CreatePolygonTask</li> | |
420 <li>CreateSpanTask</li> | |
421 <li>DrawSpanTask(<font color="red">TaskArray化</font>)</li> | |
422 </ul> | |
423 | |
424 </ul> | |
425 | |
426 </div> | |
427 | |
428 <div class="slide"> | |
429 <h1>WordCount</h1> | |
430 | |
431 <ul> | |
432 <li>wcするfileをマッピングし、Taskに割り振る</li> | |
433 <li>WordCountTaskの終了をまって、PrintTaskが実行される</li> | |
434 </ul> | |
435 | |
436 <table height="100%" width="100%" border="0"> | |
437 <tr><td align="center" valign="middle"> | |
438 <img src="gazo/wc_graf1.png" style="width: 40%%"></td></tr> | |
439 </table> | |
440 | |
441 </div> | |
442 | |
443 <div class="slide"> | |
444 <h1>WordCount</h1> | |
445 | |
446 <ul> | |
447 <li>TaskArrayのサイズは64</li> | |
448 <li>WC対象は166Mのテキスト</li> | |
449 <li>TaskArrayの適応の有無を比較</li> | |
450 </ul> | |
451 | |
452 </div> | |
453 | |
454 <div class="slide"> | |
455 <h1>WordCount</h1> | |
456 | |
457 <ul> | |
458 <li>time : 実行時間</li> | |
459 <li>dma wait : dma転送待ちの割合</li> | |
460 <li>time wait : mail待ちの割合</li> | |
461 </ul> | |
462 | |
463 <br> | |
357 | 464 |
358 <table border="3" style="width:100%;"> | 465 <table border="3" style="width:100%;"> |
359 <tr> | 466 <tr> |
360 <th></th> | 467 <th></th> |
361 <th>real_time</th> | 468 <th>Task</th> |
362 <th>wait_time</th> | 469 <th>TaskArray</th> |
363 <th>mail_time</th> | 470 </tr> |
364 <th>busy_ratio</th> | 471 <tr> |
365 </tr> | 472 <th>time</th> |
366 <tr> | 473 <td align="center">2.184s</td> |
367 <th>all</th> | 474 <td align="center">2.109s</td> |
368 <td align="center">58s</td> | 475 |
369 <td align="center">77%</td> | 476 </tr> |
370 <td align="center">17%</td> | 477 <tr> |
371 <td align="center">5.5%</td> | 478 <th>dma wait</th> |
372 | 479 <td align="center">18%</td> |
373 | 480 <td align="center">12%</td> |
374 </tr> | 481 |
375 <tr> | 482 </tr> |
376 <th>compatibility</th> | 483 <tr> |
377 <td align="center">31s</td> | 484 <th>mail wait</th> |
378 <td align="center">50%</td> | 485 <td align="center">5%</td> |
379 <td align="center">39%</td> | 486 <td align="center">8%</td> |
380 <td align="center">10%</td> | 487 </tr> |
381 | 488 |
382 </tr> | 489 <caption></caption> |
383 <tr> | 490 |
384 <th>taskarray</th> | 491 </table><br> |
385 <td align="center">34s</td> | 492 |
386 <td align="center">35%</td> | 493 <div class="slide"> |
494 <h1>WordCount</h1> | |
495 | |
496 <ul> | |
497 <li>あまり効果は見られなかった</li> | |
498 <li>PPE側のTaskがないので、あまりmail待ちが入らない</li> | |
499 <li>ファイルのサイズが大きいのでメモリアクセスで時間がかかる</li> | |
500 </ul> | |
501 | |
502 <br> | |
503 | |
504 <table border="3" style="width:100%;"> | |
505 <tr> | |
506 <th></th> | |
507 <th>Task</th> | |
508 <th>TaskArray</th> | |
509 </tr> | |
510 <tr> | |
511 <th>time</th> | |
512 <td align="center">2.184s</td> | |
513 <td align="center">2.109s</td> | |
514 | |
515 </tr> | |
516 <tr> | |
517 <th>dma wait</th> | |
518 <td align="center">18%</td> | |
519 <td align="center">12%</td> | |
520 | |
521 </tr> | |
522 <tr> | |
523 <th>mail wait</th> | |
524 <td align="center">5%</td> | |
525 <td align="center">8%</td> | |
526 </tr> | |
527 | |
528 <caption></caption> | |
529 | |
530 </table><br> | |
531 | |
532 </div> | |
533 | |
534 <div class="slide"> | |
535 <h1>WordCount</h1> | |
536 | |
537 改善策 | |
538 | |
539 <ul> | |
540 <li>一度にファイルマッピングをしない</li> | |
541 <li>何度かに分けてマッピングする</li> | |
542 <li>同じ領域を切り替えて使う</li> | |
543 <li>スワップを減らし、アクセス時間を短縮する</li> | |
544 <li>dma wait の割合が減る</li> | |
545 </ul> | |
546 | |
547 </div> | |
548 | |
549 | |
550 <div class="slide"> | |
551 <h1>レンダリングエンジン</h1> | |
552 | |
553 構成Task | |
554 | |
555 <ul> | |
556 <li>CreatePolygonTask</li> | |
557 <li>CreateSpanTask</li> | |
558 <li>DrawSpanTask(<font color="red">TaskArray化</font>)</li> | |
559 </ul> | |
560 | |
561 <br> | |
562 DrawSpanTask : Taskの数が多いDrawSpanTaskをTaskArray化した。地球と月を表示する | |
563 例題を対象に計測した。 | |
564 | |
565 </div> | |
566 | |
567 <div class="slide"> | |
568 <h1>レンダリングエンジン</h1> | |
569 | |
570 <ul> | |
571 <li>FPS : 一秒間に表示できるFrame数</li> | |
572 </ul> | |
573 | |
574 <table border="3" style="width:100%;"> | |
575 <tr> | |
576 <th></th> | |
577 <th>Task</th> | |
578 <th>TaskArray</th> | |
579 </tr> | |
580 <tr> | |
581 <th>FPS</th> | |
582 <td align="center">3.94</td> | |
583 <td align="center">4.32</td> | |
584 | |
585 </tr> | |
586 <tr> | |
587 <th>dma wait</th> | |
588 <td align="center">0.06%</td> | |
589 <td align="center">0.07%</td> | |
590 | |
591 </tr> | |
592 <tr> | |
593 <th>mail wait</th> | |
387 <td align="center">55%</td> | 594 <td align="center">55%</td> |
388 <td align="center">9%</td> | 595 <td align="center">42%</td> |
389 </tr> | 596 </tr> |
390 | 597 |
391 <caption>速度比較</caption> | 598 <caption></caption> |
392 | 599 |
393 </table><br> | 600 </table><br> |
394 | 601 |
395 しかし、これは、RUN_TASK_BLOCKS_TASK を1つだけ生成した場合でした・・二つにしてみると・・ | 602 <ul> |
396 | 603 <li>mail wait 割合が減った</li> |
397 </div> | 604 <li>レンダリングエンジンの場合、PPE側で実行するTaskがあるので、 |
398 | 605 mailチェックが遅れ気味</li> |
399 <div class="slide"> | 606 </ul> |
400 <h1>今週</h1> | 607 |
401 | 608 </div> |
402 <table border="3" style="width:100%;"> | 609 |
403 <tr> | 610 <div class="slide"> |
404 <th></th> | 611 <h1>まとめ</h1> |
405 <th>real_time</th> | 612 |
406 <th>wait_time</th> | 613 |
407 <th>mail_time</th> | 614 <ul> |
408 <th>busy_ratio</th> | 615 <li>複数のTaskをまとめるTaskArrayを提案、実装した。</li> |
409 </tr> | 616 <li>PPE側が忙しく、mailチェックが遅れる場合に効果的</li> |
410 <tr> | 617 <li>PPE側にTaskがない場合は、mailチェックは間に合う</li> |
411 <th>all</th> | 618 <li>WordCountはdma転送がネックになっている</li> |
412 <td align="center">58s</td> | 619 <li>マッピングの方法、Taskのスケジューリングを工夫して、dma転送時間を削減できる</li> |
413 <td align="center">77%</td> | 620 |
414 <td align="center">17%</td> | 621 |
415 <td align="center">5.5%</td> | 622 </ul> |
416 | 623 |
417 | 624 </div> |
418 </tr> | 625 |
419 <tr> | 626 |
420 <th>compatibility</th> | |
421 <td align="center">31s</td> | |
422 <td align="center">50%</td> | |
423 <td align="center">39%</td> | |
424 <td align="center">10%</td> | |
425 | |
426 </tr> | |
427 <tr> | |
428 <th>taskarray</th> | |
429 <td align="center">34s</td> | |
430 <td align="center">35%</td> | |
431 <td align="center">55%</td> | |
432 <td align="center">9%</td> | |
433 </tr> | |
434 | |
435 <caption>速度比較(RUN_TASK_BLOCK を1つ生成)</caption> | |
436 | |
437 </table><br> | |
438 | |
439 <table border="3" style="width:100%;"> | |
440 <tr> | |
441 <th></th> | |
442 <th>real_time</th> | |
443 <th>wait_time</th> | |
444 <th>mail_time</th> | |
445 <th>busy_ratio</th> | |
446 </tr> | |
447 <tr> | |
448 <th>all</th> | |
449 <td align="center">58s</td> | |
450 <td align="center">62%</td> | |
451 <td align="center">32%</td> | |
452 <td align="center">5.5%</td> | |
453 | |
454 | |
455 </tr> | |
456 <tr> | |
457 <th>compatibility</th> | |
458 <td align="center">24s</td> | |
459 <td align="center">79%</td> | |
460 <td align="center">17%</td> | |
461 <td align="center">13%<font color="red">(+3)</font></td> | |
462 | |
463 </tr> | |
464 <tr> | |
465 <th>taskarray</th> | |
466 <td align="center">28s</td> | |
467 <td align="center">66%</td> | |
468 <td align="center">22%</td> | |
469 <td align="center">11%<font color="red">(+2)</font></td> | |
470 </tr> | |
471 | |
472 <caption>速度比較(RUN_TASK_BLOCK を二つ生成)</caption> | |
473 | |
474 </table><br> | |
475 | |
476 なるほど、次のTask生成までの時間ロスが減るので、少し速くなりますね。 | |
477 | |
478 </div> | |
479 | |
480 | |
481 | |
482 <div class="slide"> | |
483 <h1>DrawSpan</h1> | |
484 DrawSpanのTaskがTaskArray有無の場合<br><br> | |
485 | |
486 例題はball_bound<br><br> | |
487 | |
488 compatibility -> 4.073888 FPS<br> | |
489 TaskArray -> 4.339242 FPS<br> | |
490 | |
491 </div> | |
492 | |
493 | |
494 | |
495 <div class="slide"> | |
496 <h1>論文をどうまとめるか</h1> | |
497 <ul> | |
498 論文ちゃんの内容 | |
499 <li>Taskが大量の場合一度に全て生成するより、incrementalに生成したほうがよい</li> | |
500 <li>TaskArrayはうーん。うーん。もう少し考えてみます。</li> | |
501 | |
502 </ul> | |
503 </div> | |
504 | 627 |
505 <div class="slide"> | 628 <div class="slide"> |
506 <h1>end</h1> | 629 <h1>end</h1> |
507 <ul> | 630 <ul> |
508 /*end*/ | 631 /*end*/ |
509 <br><br> | 632 <br><br> |
510 | 633 |
511 <div class="slide"> | |
512 <h1>Mandelbrot</h1> | |
513 | |
514 <table border="3" style="width:100%;"> | |
515 <tr> | |
516 <th></th> | |
517 <th>real_time</th> | |
518 <th>wait_time</th> | |
519 <th>mail_time</th> | |
520 <th>busy_ratio</th> | |
521 </tr> | |
522 <tr> | |
523 <th>all</th> | |
524 <td align="center">58s(-0)</td> | |
525 <td align="center">62(-15)%</td> | |
526 <td align="center">32%(+15)</td> | |
527 <td align="center">5.5%(-0)</td> | |
528 | |
529 | |
530 </tr> | |
531 <tr> | |
532 <th>compatibility</th> | |
533 <td align="center">24s(-7)</td> | |
534 <td align="center">79%(+19)</td> | |
535 <td align="center">17%(-22)</td> | |
536 <td align="center">13%(+3)</td> | |
537 | |
538 </tr> | |
539 <tr> | |
540 <th>taskarray</th> | |
541 <td align="center">28s(-6)</td> | |
542 <td align="center">66%(+31)</td> | |
543 <td align="center">22%(-33)</td> | |
544 <td align="center">11%(+2)</td> | |
545 </tr> | |
546 | |
547 <caption>速度比較(RUN_TASK_BLOCK を二つ生成)</caption> | |
548 | |
549 </table><br> | |
550 | |
551 | |
552 </div> | |
553 | |
554 | |
555 <div class="slide"> | |
556 <h1>Mandelbort</h1> | |
557 <ul> | |
558 <br> | |
559 | |
560 MandelbrotをCeriumに実装<br> | |
561 | |
562 こっちも、まだセグメンテーションエラーです。<br> | |
563 バグとり間に合わず。 | |
564 | |
565 </div> | |
566 | |
567 <div class="slide"> | |
568 <h1>バグとり</h1> | |
569 <ul> | |
570 <br> | |
571 | |
572 というわけで、WordCountのTaskArray,ネックの検証<br> | |
573 MandelbrotのCerium実装<br> | |
574 引き続きもうちょっと頑張ります。 | |
575 | |
576 </div> | |
577 | |
578 <div class="slide"> | |
579 <h1>end</h1> | |
580 <ul> | |
581 /*end*/ | |
582 <br><br> | |
583 </div> | |
584 | |
585 <div class="slide"> | |
586 <h1>ダブルバッファリング</h1> | |
587 | |
588 <img src="gazo/doublebuffering.png" width="670" height="200"> | |
589 <br> | |
590 TaskListしたので、ダブルバッファリングしやすかった。次のタスクのアドレスがわかるので、 | |
591 現Taskを処理している間に次のTaskをdma_get,前のTaskのoutputをdma_putする。 | |
592 | |
593 </div> | |
594 | |
595 <div class="slide"> | |
596 <h1>例題</h1> | |
597 <br> | |
598 | |
599 という実装をしたところで、マンデルブロー集合を計算してみました。demoあり | |
600 | |
601 </div> | |
602 | |
603 <div class="slide"> | |
604 <h1>今後</h1> | |
605 <br> | |
606 | |
607 現在、SPE側のrun関数が決め打ちで動き、それがtaskという事になっている。 | |
608 Cerium/TaskManager のように複数のTaskから指定して動くようにしたい。あとTaskの依存関係も。 | |
609 | |
610 MemorySegment!やります! | |
611 | |
612 </div> | |
613 | |
614 | |
615 <div class="slide"> | |
616 <h1>end</h1> | |
617 <ul> | |
618 /*end*/ | |
619 <br><br> | |
620 | |
621 | |
622 </ul> | |
623 | 634 |
624 <div class="handout"> | 635 <div class="handout"> |
625 [any material that should appear in print but not on the slide] | 636 [any material that should appear in print but not on the slide] |
626 </div> | 637 </div> |
627 </div> | 638 </div> |