20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 <html xmlns="http://www.w3.org/1999/xhtml">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 <head>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 <title>S5: An Introduction</title>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 <!-- metadata -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 <meta name="generator" content="S5" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 <meta name="version" content="S5 1.3" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 <meta name="author" content="Eric A. Meyer" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 <meta name="company" content="Complex Spiral Consulting" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 <!-- meta extensions -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 <meta name="subject" content="S5 1.3beta7" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 <meta name="creator" content="Christian Effenberger" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 <meta name="contributor" content="youcan[64]netzgesta[46]de" />
<meta name="publisher" content="s5.netzgesta.de" />
<meta name="description" content="S5 1.3 is a very flexible and lightweight slide show system available for anyone to use (including transitions and scalable fonts and images)" />
<meta name="keywords" content="S5, slide show, projection-mode, powerpoint-like, scala-like, keynote-like, incremental display, scalable fonts, scalable images, transitions, notes, osf, xoxo, css, javascript, xhtml, public domain" />
<meta name="robots" content="index, follow" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 <meta name="revisit-after" content="7 days" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 <!-- meta temporary -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 <meta http-equiv="Content-Script-Type" content="text/javascript" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 <meta http-equiv="Content-Style-Type" content="text/css" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 <!-- configuration parameters -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 <meta name="defaultView" content="slideshow" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 <meta name="controlVis" content="hidden" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 <!-- configuration extensions -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 <meta name="tranSitions" content="true" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 <meta name="fadeDuration" content="500" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 <meta name="incrDuration" content="250" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 <!-- configuration autoplay extension -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 <meta name="autoMatic" content="false" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 <meta name="playLoop" content="true" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 <meta name="playDelay" content="10000" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 <!-- configuration audio extension -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 <meta name="audioSupport" content="false" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 <meta name="audioVolume" content="100" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 <meta name="audioError" content="false" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 <!-- configuration audio debug -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 <meta name="audioDebug" content="false" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 <!-- style sheet links -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 <link rel="stylesheet" href="ui/default_utf/slides.css" type="text/css" media="projection" id="slideProj" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 <link rel="stylesheet" href="ui/default_utf/outline.css" type="text/css" media="screen" id="outlineStyle" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 <link rel="stylesheet" href="ui/default_utf/print.css" type="text/css" media="print" id="slidePrint" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 <link rel="stylesheet" href="ui/default_utf/opera.css" type="text/css" media="projection" id="operaFix" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 <!-- embedded styles -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 <style type="text/css" media="all">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 .imgcon {width: 100%; margin: 0 auto; padding: 0; text-align: center;}
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 #anim {width: 33%; height: 320px; position: relative;}
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 #anim img {position: absolute; top: 0px; left: 0px;}
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 </style>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 <!-- S5 JS -->
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 <script src="ui/default_utf/slides.js" type="text/javascript"></script>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 </head>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 <body>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 <div class="layout">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 <div id="controls"><!-- DO NOT EDIT --></div>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 <div id="currentSlide"><!-- DO NOT EDIT --></div>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 <div id="header"></div>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 <div id="footer">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 <h1></h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 <h2></h2>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 </div>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 </div>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 <ol class="xoxo presentation">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 <h1>並列プログラミングフレームワーク Cerium の改良</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 <h3>金城 裕</h3>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 <h4>琉球大学理工学研究科情報工学専攻</h4>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 <div class="handout"></div>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 </li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 <h1>研究背景と目的(1/2)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 当研究室では、マルチコアCPU上での開発を支援するたの、並列プログラミングフレームワーク Cerium を開発し、学生実験で使用している。本研究では
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 Cerium の信頼性の向上を目的とし、改良を行った (信頼性 = 仕様通りに動作する)<br>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 マルチコア上の並列プログラミングでは
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 <li>並列処理部分の特定や同期処理を適切に行わなければ、台数効果は得られない。</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 <li>再現性ないバグなどが発生する可能性がある</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 <li>アーキテクチャを理解し最適なプログラムを書く必要がある</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 </ul><br>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 など信頼性のあるプログラムを開発するには逐次プログラミングよりも技術と手間がかかる問題がある<br>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 Cell上でのゲーム作成を行う学生実験でも、講義期間中に作品が一定のレベルに達しない問題が生じた。そこで学生実験での使用を考慮した フレームワーク Cerium を開発した<br>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 <h1>研究背景と目的(2/2)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 Cerium を用いて 期間中のゲームの作成が可能になった。しかし学生実験での使用や、例題の実装を行い Cerium の信頼性が十分でない点が明らかになった。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 <li>仕様通りの稼働率がでない</li>
|
22
|
101 <li>アーキテクチャ依存の記述が含まれている</li>
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 </ul><br>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 以上の問題点を解決するため
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 <li>ソフトウェアMailQueueの実装</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 <li>TaskをグルーピングするTaskArrayの実装</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 <li>明示的なDMAロードを隠蔽するMemorySegmentのAPIの実装</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 などの改良を行い、信頼性のある並列プログラミングフレームワークを目指す。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 <h1>Cell Broadband Engine</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 研究、実験の題材となった Cell Broadband Engine とは、
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 <li>ソニー、SCE、 IBM、 東芝によって開発されたプロセッサ</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 <li>マルチコアで、9つのコアを持つ</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 <li>制御用コア PorwerPC Processor Element 1基</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 <li>演算用コア Synergistic Processor Element 8基 (実験で使用できるのは6基)</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 <li>各コアは Element Interconnect Bus を経由してデータアクセスを行う</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
127 <p style="text-align: center;">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 <img class="scale" src="pix/cell.png" alt="" title="At a Glance" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 <li class="slide">
|
22
|
134 <h1>DMA転送</h1>
|
|
135 SPE は直接 MainMemory にアクセスできない。 明示的な DMA 転送命令を用いてデータにアクセスする。データは
|
|
136
|
|
137 <ul>
|
|
138 <li>16アラインメントに揃える</li>
|
|
139 <li>16byte の倍数のサイズ</li>
|
|
140 <li>一度の転送は16KB の大きさまで</li>
|
|
141 </ul>
|
|
142
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
143
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
144 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
145 <h1>Mailbox</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
146
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
147 PPE と SPE の通信には Mailbox を用いる
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
148
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
149 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150 <li>PPE と SPE 間で32ビットメッセージの交換ができる</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
151 <li>Mail の Queue は3種類</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
152 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
153 <li>SPU inbound Mailbox: PPE -> SPE</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
154 <li>SPU Outbound Mailbox: SPE -> PPE</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
155 <li>SPU Outbound interrupt Mailbox: SPE -> PPE (割り込み)</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
156 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
157 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
159 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
160 <h1>Cerium</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
161 Cerium とは
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
162 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
163 <li>並列プログラミング用のフレームワーク</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164 <li>学生実験での使用を考慮して PS3/Cell, Linux, MacOSX で動作する</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 <li>構成</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
166 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
167 <li>TaskManager</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
168 <li>RenderingEngine</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
169 <li>SceneGraph</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
171 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
172
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
173
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
174 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
175 <h1>TaskManager</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
176 TaskManager とは Task のスケジューラ
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
178 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
179 <li>Task とよばれるデータ構造を提供</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180 <li>処理(単位は関数に近い)を Task で記述していく</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 <li>定義された、Task の情報に沿って各コアに処理を割り振る</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
182 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
183
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184 Task で記述された部分の、自動的な並列処理スケジューリングを行う。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187 <h1>RenderingEngine(1/2)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 PS3 では Graphics Engien の仕様が公開されていないので、独自の RenderingEngine を開発した。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
189 Task で記述され、主に3つの Task から構成される
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
190 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
191 <li>CreatePolygonTask</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
192 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
193 <li>モデリングデータを、三角形のポリゴンに変換する</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
194 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
195 <li>CreateSpanTask</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
196 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
197 <li>ポリゴンを水平な線(Span)に分割する</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
198 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 <li>DrawSpanTask</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
200 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
201 <li>Span を Texture とマッピングし画面に出力する</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
202 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
203 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
204
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
205 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 <h1>RenderingEngine(2/2)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
207
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208 例: Cube のモデリングデータの場合には、以下のように Task が働く。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
209
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
210 <p style="text-align: center;">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
211 <img class="scale" src="pix/rendering3.png" width="50%" alt="" title="At a Glance" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
215 <h1>SceneGraph</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
216 ゲームのシーンを構成する木構造のグラフ。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
217
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
218 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
219 <h1>Cerium の改良</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
220 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
221 RenderingEngine を用いた例題で、ball bound, panel がある。(FPS = Frame per second)
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
222
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
223 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
224 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
225 <th></th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
226 <th>FPS</th>
|
22
|
227 <th>DMA転送待ち割合</th>
|
|
228 <th>mail待ち割合</th>
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
229 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
230 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
231 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
232 <th>ball bound</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
233 <th>30.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
234 <th>1.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
235 <th>74.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
236 <th>23.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
237 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
238 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
239 <th>panel</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
240 <th>4.0</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
241 <th>21.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
242 <th>11.1%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
243 <th>67.6%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
244 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
245 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
246
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
247 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
248 <li>panel</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
249 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
250 <li>解像度1980x1080の一枚の画像の描画行う。</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
251 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
252 <li>ball bound</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
253 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
254 <li>球が跳ねる例題。</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
255 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
256 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
257
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
258 ball bound では Mail 待ちが約70%と、稼働率が出ていない。<br>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
259 panel は ball bound より処理の描画の処理が重く、その分稼働率が高くなっている。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
260 アムダールの法則より稼働率がでないとマルチコアの性能は発揮されない。フレームワークとしての信頼性が十分でない
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
261 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
262
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
263 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
264 <h1>Mail 通知のスケジューリング</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
265 Cerium では SPE が Mail で 待ち時間が発生するタイミングは2つ
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
266
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
267 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
268 <li>TaskList を待つ場合</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
269 <li>Mail の書き込みを待つ場合</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
270 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
271
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
272 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
273 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
274
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
275 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
276 <h1>TaskListのMail待ち</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
277 TaskList は処理する Task の List である。PPE で生成され SPE へ Mail で通知される
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
278
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
279 <p style="text-align: center;">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
280 <img class="scale" src="pix/tasklistmail1.png" width="80%" alt="" title="At a Glance" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
281 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
282
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
283 TaskList が生成され SPE に通知されるまで、SPE に待ち時間が発生する。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
284
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
285 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
286 <h1>Mail の書き込み待ち</h1>
|
22
|
287 Task が終了した際と TaskList が終了した際に SPE が Mailbox へ書き込みを行う(依存関係解決のため)。Outbound Mailbox はサイズが1なので、他のMailが書き込まれている場合、それが PPE側から読み込まれるまで、待つ。
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
288
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
289 <p style="text-align: center;">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
290 <img class="scale" src="pix/mailschedule2.png" width="80%" alt="" title="At a Glance" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
291 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
292
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
293 TaskList が生成され SPE に通知されるまで、SPE に待ち時間が発生する。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
294
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
295
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
296 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
297 <h1>TaskArray(1/3)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
298 TaskList は Cerium 側で固定長であり、ユーザは変更することができない。ユーザが設定できる TaskList のようなものが、TaskArrayである。TaskArray は複数の Task をグルーピングできる。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
299
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
300 <p style="text-align: center;">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
301 <img class="scale" src="pix/taskarray1.png" width="80%" alt="" title="At a Glance" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
302 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
303
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
304 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
305 <h1>TaskArray(2/3)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
306 例えば TaskListのサイズが4, TaskArray のサイズが4の場合、Task が8個の場合
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
307
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
308 <p style="text-align: center;">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
309 <img class="scale" src="pix/taskarray2.png" width="80%" alt="" title="At a Glance" />
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
310 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
311
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
312 グルーピングされるため Task 毎の Mail 回数が減る。TaskList の要求回数が減る。そのため Mail の待ち時間が入る箇所が削減され、Mail の待ち時間自体の削減につながる。
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
313
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
314 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
315 <h1>TaskArray(3/3)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
316 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
317 TaskArray の効果を示す
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
318
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
319 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
320 <caption>ballbound</caption>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
321 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
322 <th>TaskArray</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
323 <th>FPS</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
324 <th>DMA転送待ち時間</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
325 <th>mail待ちの割合</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
326 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
327 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
328 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
329 <th> なし </th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
330 <th>30.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
331 <th>1.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
332 <th>74.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
333 <th>23.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
334 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
335 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
336
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
337 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
338 <th> あり </th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
339 <th>32.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
340 <th>2.5%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
341 <th>66.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
342 <th>30.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
343 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
344
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
345 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
346
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
347 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
348 <caption>panel</caption>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
349 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
350 <th>TaskArray</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
351 <th>FPS</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
352 <th>DMA転送待ち時間</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
353 <th>mail待ちの割合</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
354 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
355 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
356
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
357 <th>なし</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
358 <th>4.0</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
359 <th>21.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
360 <th>11.1%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
361 <th>67.6%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
362 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
363
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
364
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
365 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
366 <th>あり</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
367 <th>4.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
368 <th>22.5%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
369 <th>5.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
370 <th>71.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
371 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
372 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
373
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
374 TaskArray を ball bound, panel の DrawSpanTask に適応。FPS、稼働率の向上。Mail 待ちの時間が削減された
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
375
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
376 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
377
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
378 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
379 <h1>MailQueue(1/3)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
380 ソフトウェア MailQueue の実装
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
381
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
382 <ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
383 <li>SPE から Mailbox に書き出せない場合に MailQueue へと書きだす</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
384 <li>MailQueue に Mail がある場合は、MailQueue から Mailbox へ書き出す</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
385 <li>MailQueue に残っている Mail は TaskList のTask を消化した時点で、すべて書き出す処理を挟む</li>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
386 </ul>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
387
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
388 Task 毎の Mail 書き込み時の待ち時間を削減するのが目的
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
389
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
390 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
391 <h1>MailQueue(2/3)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
392
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
393 Mailbox に書き込めない場合は、MailQueue に書き込む例
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
394
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
395 <p style="text-align: center;">
|
22
|
396 <img class="scale" src="pix/mailqueue1.png" width="70%" alt="" title="At a Glance" />
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
397 </p>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
398
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
399 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
400 <h1>MailQueue(3/3)</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
401 MailQeueuの効果
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
402
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
403 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
404 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
405 <caption>ball bound</caption>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
406 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
407 <th>MailQueue</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
408 <th>FPS</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
409 <th>DMA転送待ち時間</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
410 <th>mail待ちの割合</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
411 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
412 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
413 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
414 <th> なし </th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
415 <th>32.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
416 <th>2.5%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
417 <th>66.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
418 <th>30.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
419 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
420 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
421
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
422 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
423 <th> あり </th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
424 <th>41.7</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
425 <th>3.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
426 <th>56.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
427 <th>40.0%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
428 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
429
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
430 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
431
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
432 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
433 <caption>panel</caption>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
434 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
435 <th>MailQueue</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
436 <th>FPS</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
437 <th>DMA転送待ち時間</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
438 <th>mail待ちの割合</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
439 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
440 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
441
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
442 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
443 <th>なし</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
444 <th>4.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
445 <th>22.5%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
446 <th>5.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
447 <th>71.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
448 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
449
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
450 <th>あり</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
451 <th>4.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
452 <th>23.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
453 <th>4.1%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
454 <th>72.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
455 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
456
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
457 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
458 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
459
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
460 <li class="slide">
|
22
|
461 <h1>MemorySegment(1/7)</h1>
|
|
462 CreateSpanTask では明示的にDMA転送命令を記述している。
|
|
463
|
|
464 <ul>
|
|
465 <li>処理するデータ構造上の理由、Task内でのデータロードが必要</li>
|
|
466 <li>DMA転送命令は Cell アーキテクチャ依存の記述</li>
|
|
467 <li>他のアーキテクチャなどでは不要</li>
|
|
468 </ul><br>
|
|
469
|
|
470 アーキテクチャ依存の記述を隠蔽できるAPIが必要になった。
|
|
471
|
|
472 <li class="slide">
|
|
473 <h1>MemorySegment(2/7)</h1>
|
|
474 明示的なDMA転送命令を隠蔽するため MemorySegment を実装した
|
|
475
|
|
476 <ul>
|
|
477 <li>一定のメモリを確保し、ハッシュで管理(LRU方式)</li>
|
|
478 <li>API 内部で自動的なキャッシュを行う (サイズは任意に設定できる)</li>
|
|
479 <li>dma 命令を MemorySegment というデータ構造を操作する命令に置き換える</li>
|
|
480 <ul>
|
|
481 <li>dma_load -> get_segment</li>
|
|
482 <li>dma_store -> put_segment</li>
|
|
483 <li>dma_wait -> wait_segment</li>
|
|
484 </ul>
|
|
485 </ul>
|
|
486
|
|
487 <li class="slide">
|
|
488 <h1>MemorySegment(3/7)</h1>
|
|
489
|
|
490 <p style="text-align: center;">
|
|
491 <img class="scale" src="pix/getsegment1.png" width="50%" alt="" title="At a Glance" />
|
|
492 </p>
|
|
493
|
|
494
|
|
495 <li class="slide">
|
|
496 <h1>MemorySegment(4/7)</h1>
|
|
497
|
|
498 <p style="text-align: center;">
|
|
499 <img class="scale" src="pix/putsegment1.png" width="50%" alt="" title="At a Glance" />
|
|
500 </p>
|
|
501
|
|
502
|
|
503 <li class="slide">
|
|
504 <h1>MemorySegment(5/7)</h1>
|
|
505 明示的に記述したDMA転送命令の例
|
|
506 <pre>
|
|
507 loop() {
|
|
508
|
|
509 tmp_data = get_data;
|
|
510 get_data = send_data;
|
|
511 send_data = tmp_data;
|
|
512
|
|
513 dma_wait(WAIT_STORE);
|
|
514
|
|
515 dma_store(send_data, send_addr, data_size, WAIT_STORE);
|
|
516 dma_load(get_data, get_addr, data_size, WAIT_LOAD);
|
|
517
|
|
518 dma_wait(WAIT_LOAD);
|
|
519
|
|
520 calc(get_data);
|
|
521
|
|
522 }
|
|
523 </pre>
|
|
524
|
|
525 <li class="slide">
|
|
526 <h1>MemorySegment(6/7)</h1>
|
|
527 MemorySegment を適応させた例
|
|
528 <pre>
|
|
529 loop() {
|
|
530
|
|
531 wait_segment(put_ms);
|
|
532
|
|
533 put_ms = get_ms;
|
|
534
|
|
535 put_segment(put_ms);
|
|
536 get_ms = get_segment(get_addr, ml);
|
|
537
|
|
538 wait_segment(get_ms);
|
|
539 get_data = get_ms->data;
|
|
540
|
|
541 calc(get_data);
|
|
542 }
|
|
543 </pre>
|
|
544
|
|
545 <li class="slide">
|
|
546 <h1>MemorySegment(7/7)</h1>
|
|
547 MemorySemgment を導入
|
|
548
|
|
549 <ul>
|
|
550 <li>アーキテクチャ依存の記述を隠蔽することに成功した</li>
|
|
551 <li>汎用的な Task 内でのデータ転送APIとして使用でき</li>
|
|
552 <li>Core i7, Xeon などの汎用のメニーコアにも対応可能</li>
|
|
553 <li>CreateSpanTask 内のデータロードと、DrawspanTask の Texture のロードに使用している</li>
|
|
554 </ul>
|
|
555
|
|
556 <li class="slide">
|
|
557 <h1>まとめ(1)</h1>
|
|
558 並列プログラミングフレームワーク Cerium の改良を行った。
|
|
559
|
|
560 <ul>
|
|
561 <li>Mail の待ち時間を削減、稼働率とFPSの向上に成功</li>
|
|
562 <li>汎用的なデータ転送APIを実装した</li>
|
|
563 <li>Cell アーキテクチャ依存の記述の隠蔽に成功</li>
|
|
564 </ul>
|
|
565
|
|
566
|
|
567 <li class="slide">
|
|
568 <h1>まとめ(2)</h1>
|
|
569
|
|
570 改良の効果を示す
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
571
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
572 <font size="5">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
573 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
574 <caption>ball bound</caption>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
575 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
576 <th></th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
577 <th>FPS</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
578 <th>DMA転送待ち時間</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
579 <th>mail待ちの割合</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
580 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
581 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
582 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
583 <th>改良前</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
584 <th>30.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
585 <th>1.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
586 <th>74.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
587 <th>23.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
588 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
589 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
590
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
591 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
592 <th>改良後</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
593 <th>41.7</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
594 <th>3.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
595 <th>56.8%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
596 <th>40.0%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
597 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
598 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
599
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
600 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
601 <caption>panel</caption>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
602 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
603 <th></th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
604 <th>FPS</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
605 <th>DMA転送待ち時間</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
606 <th>mail待ちの割合</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
607 <th>SPE稼働率</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
608 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
609
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
610 <tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
611 <th>改良前</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
612 <th>4.0</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
613 <th>21.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
614 <th>11.1%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
615 <th>67.6%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
616 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
617
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
618 <th>改良後</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
619 <th>4.2</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
620 <th>23.7%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
621 <th>4.1%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
622 <th>72.3%</th>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
623 </tr>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
624
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
625 </table>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
626 </font>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
627
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
628 <li class="slide">
|
22
|
629 <h1>OpenGL との比較</h1>
|
|
630 学生実験で作成された シューティングゲーム「SuperDandy」 を例題に OpenGL と比較。OpenGL は PPE 1基のみを使用。Cerium は
|
|
631 SPE6基+PPE1基を使用した。
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
632
|
22
|
633 <table border="1" cellspacing="0" cellspacing="2" cellpadding="5" align="center">
|
|
634 <caption>シューティングゲーム</caption>
|
|
635 <tr>
|
|
636 <th></th>
|
|
637 <th>OpenGL</th>
|
|
638 <th>Cerium</th>
|
|
639 <th>性能差</th>
|
|
640 </tr>
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
641
|
22
|
642 <tr>
|
|
643 <th>SuperDandy</th>
|
|
644 <th>17.5 FPS</th>
|
|
645 <th>49.5 FPS</th>
|
|
646 <th>2.9 倍</th>
|
|
647 </tr>
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
648
|
22
|
649 </table>
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
650
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
651
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
652 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
653 <h1>今後の課題</h1>
|
22
|
654 アムダールの法則より、
|
|
655
|
20
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
656
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
657 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
658 <h1>自動的な依存関係の解決</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
659
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
660 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
661 <h1>Task 化による並列化率の向上</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
662
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
663 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
664 <h1>SPE の LS の利用方法</h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
665
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
666
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
667 <li class="slide">
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
668 <h1></h1>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
669
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
670 /*end*/
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
671
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
672 </ol>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
673
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
674 </body>
|
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
675 </html>
|