annotate presen/pre1.html @ 22:363d231726bc

Proto
author admin@mb22-no-macbook-2.local
date Wed, 22 Apr 2009 10:52:50 +0900
parents
children cbfd29809746
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
admin@mb22-no-macbook-2.local
parents:
diff changeset
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
admin@mb22-no-macbook-2.local
parents:
diff changeset
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
admin@mb22-no-macbook-2.local
parents:
diff changeset
3
admin@mb22-no-macbook-2.local
parents:
diff changeset
4 <html xmlns="http://www.w3.org/1999/xhtml">
admin@mb22-no-macbook-2.local
parents:
diff changeset
5
admin@mb22-no-macbook-2.local
parents:
diff changeset
6 <head>
admin@mb22-no-macbook-2.local
parents:
diff changeset
7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
admin@mb22-no-macbook-2.local
parents:
diff changeset
8 <title>第175回ARC・第111回OS合同研究会</title>
admin@mb22-no-macbook-2.local
parents:
diff changeset
9 <!-- metadata -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
10 <meta name="generator" content="S5" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
11 <meta name="version" content="S5 1.1" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
12 <meta name="presdate" content="20050728" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
13 <meta name="author" content="Tagano Kaito" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
14 <meta name="company" content="ie-ryukyu" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
15 <!-- configuration parameters -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
16 <meta name="defaultView" content="slideshow" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
17 <meta name="controlVis" content="hidden" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
18 <!-- style sheet links -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
19 <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
20 <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
21 <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
22 <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
23 <!-- S5 JS -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
24 <script src="ui/default/slides.js" type="text/javascript"></script>
admin@mb22-no-macbook-2.local
parents:
diff changeset
25 <style type="text/css">
admin@mb22-no-macbook-2.local
parents:
diff changeset
26 body {
admin@mb22-no-macbook-2.local
parents:
diff changeset
27 font-size: 100%;
admin@mb22-no-macbook-2.local
parents:
diff changeset
28 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
29 p.ex8 { font-size: 2.0em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
30 p.ex7 { font-size: 1.9em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
31 p.ex6 { font-size: 1.8em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
32 p.ex5 { font-size: 1.7em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
33 p.ex4 { font-size: 1.6em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
34 p.ex3 { font-size: 1.5em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
35 p.ex2 { font-size: 1.4em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
36 p.ex1 { font-size: 1.3em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
37 p.ex0 { font-size: 1.0em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
38 p.ep0 { font-size: 0.5em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
39 p.ep1 { font-size: 1.1em; }
admin@mb22-no-macbook-2.local
parents:
diff changeset
40 span.classifier {
admin@mb22-no-macbook-2.local
parents:
diff changeset
41 font-family: sans-serif ;
admin@mb22-no-macbook-2.local
parents:
diff changeset
42 font-style: oblique }
admin@mb22-no-macbook-2.local
parents:
diff changeset
43
admin@mb22-no-macbook-2.local
parents:
diff changeset
44 span.classifier-delimiter {
admin@mb22-no-macbook-2.local
parents:
diff changeset
45 font-family: sans-serif ;
admin@mb22-no-macbook-2.local
parents:
diff changeset
46 font-weight: bold }
admin@mb22-no-macbook-2.local
parents:
diff changeset
47
admin@mb22-no-macbook-2.local
parents:
diff changeset
48 span.interpreted {
admin@mb22-no-macbook-2.local
parents:
diff changeset
49 font-family: sans-serif }
admin@mb22-no-macbook-2.local
parents:
diff changeset
50
admin@mb22-no-macbook-2.local
parents:
diff changeset
51 span.option {
admin@mb22-no-macbook-2.local
parents:
diff changeset
52 white-space: nowrap }
admin@mb22-no-macbook-2.local
parents:
diff changeset
53
admin@mb22-no-macbook-2.local
parents:
diff changeset
54 span.pre {
admin@mb22-no-macbook-2.local
parents:
diff changeset
55 white-space: pre }
admin@mb22-no-macbook-2.local
parents:
diff changeset
56
admin@mb22-no-macbook-2.local
parents:
diff changeset
57 span.problematic {
admin@mb22-no-macbook-2.local
parents:
diff changeset
58 color: red }
admin@mb22-no-macbook-2.local
parents:
diff changeset
59
admin@mb22-no-macbook-2.local
parents:
diff changeset
60 span.section-subtitle {
admin@mb22-no-macbook-2.local
parents:
diff changeset
61 /* font-size relative to parent (h1..h6 element) */
admin@mb22-no-macbook-2.local
parents:
diff changeset
62 font-size: 80% }
admin@mb22-no-macbook-2.local
parents:
diff changeset
63
admin@mb22-no-macbook-2.local
parents:
diff changeset
64 </style>
admin@mb22-no-macbook-2.local
parents:
diff changeset
65 </head>
admin@mb22-no-macbook-2.local
parents:
diff changeset
66 <body>
admin@mb22-no-macbook-2.local
parents:
diff changeset
67
admin@mb22-no-macbook-2.local
parents:
diff changeset
68 <div class="layout">
admin@mb22-no-macbook-2.local
parents:
diff changeset
69 <div id="controls"><!-- DO NOT EDIT --></div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
70 <div id="currentSlide"><!-- DO NOT EDIT --></div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
71 <div id="header"></div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
72 <div id="footer">
admin@mb22-no-macbook-2.local
parents:
diff changeset
73 <h1>沖縄県青年会館 / 20090424</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
74 <h2>第175回ARC・第111回OS合同研究会</h2>
admin@mb22-no-macbook-2.local
parents:
diff changeset
75 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
76 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
77
admin@mb22-no-macbook-2.local
parents:
diff changeset
78 <div class="presentation">
admin@mb22-no-macbook-2.local
parents:
diff changeset
79 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
80 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
81 <br><br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
82 <p class="ex8">Cell Task Manager Cerium の <br> SPU内データ管理</p>
admin@mb22-no-macbook-2.local
parents:
diff changeset
83 <p><font size="5" color="#000000">多賀野海人、小林佑亮、宮國渡、河野真治</font</p>
admin@mb22-no-macbook-2.local
parents:
diff changeset
84 <p><font size="5" color="#000000">琉球大学</font></p>
admin@mb22-no-macbook-2.local
parents:
diff changeset
85 <p><font size="5" color="#000000">Apr, 24, 2009</font></p>
admin@mb22-no-macbook-2.local
parents:
diff changeset
86 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
87 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
88
admin@mb22-no-macbook-2.local
parents:
diff changeset
89 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
90 <h1>研究の背景と目的</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
91 <font size="6">研究背景</font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
92 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
93 <li><p class="ep1">Cell に搭載されている SPE は Local Store (256KB) にしかアクセスできない。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
94 <li><p class="ep1">メインメモリにアクセスするには MFC を用いて Direct Memory Access 命令を
admin@mb22-no-macbook-2.local
parents:
diff changeset
95 送らなければならない。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
96 <li><p class="ep1">また、この DMA には待ち時間が存在する。待ち時間の間 SPE が動作しなければマルチコアプロセッサのパフォーマンス
admin@mb22-no-macbook-2.local
parents:
diff changeset
97 が極端に下がる。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
98 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
99 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
100
admin@mb22-no-macbook-2.local
parents:
diff changeset
101 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
102 <h1>研究の背景と目的(Con't)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
103 <font size="6">研究目的</font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
104 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
105 <!--<font size="5"> -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
106 <li><p class="ep1">SPE 内のデータ管理を行い Cell プログラミングの並列度を確保する手法を提案する。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
107 <li><p class="ep1">本研究室で開発した Cerium というの Rendering Engine を
admin@mb22-no-macbook-2.local
parents:
diff changeset
108 用いたゲームプログラミングを例題とする。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
109 <li><p class="ep1">描画に必要な Texture データは、SPE の LS に収まりきらない場合があるので、
admin@mb22-no-macbook-2.local
parents:
diff changeset
110 データを分割して転送、処理する必要がある。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
111 <li><p class="ep1">既に SPE 内にデータが転送されている場合、そのデータの管理を SPE 内で行うことによって、
admin@mb22-no-macbook-2.local
parents:
diff changeset
112 DMA 転送待ち時間の間も SPE 内での処理を継続させる。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
113 <!--</font>-->
admin@mb22-no-macbook-2.local
parents:
diff changeset
114 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
115 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
116
admin@mb22-no-macbook-2.local
parents:
diff changeset
117 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
118 <h1>発表の流れ</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
119 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
120 <font size="6" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
121 <li>Cell アーキテクチャの概要</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
122 <li>Cerium</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
123 <li>Rendering 部分の高速化</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
124 <li>比較</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
125 <li>まとめと今後の課題</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
126 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
127 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
128 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
129
admin@mb22-no-macbook-2.local
parents:
diff changeset
130 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
131 <h1>Cell アーキテクチャの概要</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
132 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
133 <font size="6" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
134 <li>Cell アーキテクチャの概要</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
135 <li><font color="silver">Cerium</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
136 <li><font color="silver">Rendering 部分の高速化</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
137 <li><font color="silver">比較</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
138 <li><font color="silver">まとめと今後の課題</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
139 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
140 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
141 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
142
admin@mb22-no-macbook-2.local
parents:
diff changeset
143 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
144 <h1>Cell Broadband Engine</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
145 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
146 <img src="photo/Cell-main2.png" alt="pipeline" width="350" height="180">
admin@mb22-no-macbook-2.local
parents:
diff changeset
147 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
148 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
149 <li>1 個の PPE と 8 個の SPE がリングバスで構成されている</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
150 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
151 <li>Linux 側から使える SPE は 6 個</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
152 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
153 <li>SPE は 256KB の Local Store (LS) を持つ</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
154 <li>SPE からメインメモリへ直接アクセスできない</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
155 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
156 <li>SPE が持つ MFC (Memory Flow Controller) へ DMA 命令を送ることで行う</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
157 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
158 <li>SPE は 128 ビットレジスタを 128 個持っている</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
159 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
160 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
161
admin@mb22-no-macbook-2.local
parents:
diff changeset
162
admin@mb22-no-macbook-2.local
parents:
diff changeset
163 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
164 <h1>Cell の基本機能</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
165 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
166 <li><p class="ex4">DMA (Direct Memory Access)</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
167 DMA とは CPU を介さずにデータ転送を行う機能。
admin@mb22-no-macbook-2.local
parents:
diff changeset
168 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
169 <font size="5">
admin@mb22-no-macbook-2.local
parents:
diff changeset
170 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
171 <li>SPE は LS(256KB) にしかアクセスできない。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
172 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
173 <li>メインメモリにアクセスするには、<br>MFC を通して DMA 転送命令を送る</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
174 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
175 <li>LS にデータが転送されているあいだ、<br>SPE のプログラムは停止させたくない</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
176 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
177 <li>SPE で処理したデータは MFC を介してメインメモリへ転送される</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
178 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
179 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
180 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
181
admin@mb22-no-macbook-2.local
parents:
diff changeset
182
admin@mb22-no-macbook-2.local
parents:
diff changeset
183 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
184 <h1>Cell の基本機能 (Con't)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
185 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
186 <li>DMA 転送には待ち時間が存在する。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
187 <li>待ち時間の間 SPE 有効に使わなければ、マルチコアプロセッサのパフォーマンスが極端に下がる。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
188 <ol>
admin@mb22-no-macbook-2.local
parents:
diff changeset
189 <font size="4">
admin@mb22-no-macbook-2.local
parents:
diff changeset
190 <li>Task のデータを読み込む (1)</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
191 <li>読み込んだデータの処理 (2) を行っている間に次の Task のデータを読み込む</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
192 <li>処理したデータの転送 (3) の間に、2 で読み込んだデータの処理、次の Task のデータの読み込みを行う</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
193 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
194 </ol>
admin@mb22-no-macbook-2.local
parents:
diff changeset
195 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
196 <img src="photo/pipeline.jpg" alt="pipeline" width="400" height="180">
admin@mb22-no-macbook-2.local
parents:
diff changeset
197 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
198 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
199 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
200
admin@mb22-no-macbook-2.local
parents:
diff changeset
201 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
202 <h1>Cerium</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
203 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
204 <font size="6" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
205 <li><font color="silver">Cell アーキテクチャの概要</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
206 <li>Cerium</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
207 <li><font color="silver">Rendering 部分の高速化</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
208 <li><font color="silver">比較</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
209 <li><font color="silver">まとめと今後の課題</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
210 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
211 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
212 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
213
admin@mb22-no-macbook-2.local
parents:
diff changeset
214 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
215 <h1>Cerium</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
216 PS3 ゲーム開発用フレームワーク
admin@mb22-no-macbook-2.local
parents:
diff changeset
217 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
218 <img src="photo/Cerium.png" alt="Cerium" width="450" height="175">
admin@mb22-no-macbook-2.local
parents:
diff changeset
219 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
220 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
221 <li>Scene Graph</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
222 <ul><li>ゲームに登場するオブジェクトやルールなど、ゲームを構成する要素をもつ木構造</li></ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
223 <li>Rendering Engine</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
224 <ul><li>Cerium 独自</li></ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
225 <li>Task Manager</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
226 <ul><li>Task と呼ばれる分割された各プログラムを管理するライブラリ</li></ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
227 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
228 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
229
admin@mb22-no-macbook-2.local
parents:
diff changeset
230 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
231 <h1>Scene Graph</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
232 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
233 <img src="photo/cerium_sg_tree.jpg" alt="sg" width="650" height="180">
admin@mb22-no-macbook-2.local
parents:
diff changeset
234 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
235 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
236 <li>Blender <a class="footnote-reference" href="#id16" id="id15" name="id15">[1]</a>
admin@mb22-no-macbook-2.local
parents:
diff changeset
237 で生成したオブジェクトを独自の XML 形式で出力</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
238 <li>XML が持つ情報 (頂点座標、テクスチャ座標、イメージ) などから SceneGraphNode を生成</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
239 <li>ポリゴン情報の他に、オブジェクトの操作 (move、<br>collision) を持つ</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
240 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
241 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
242 <font size="4">
admin@mb22-no-macbook-2.local
parents:
diff changeset
243     <a class="fn-backref" href="#id15" name="id16">[1]</a>オープンソースの3Dモデリングツール
admin@mb22-no-macbook-2.local
parents:
diff changeset
244 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
245 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
246
admin@mb22-no-macbook-2.local
parents:
diff changeset
247 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
248 <h1>Rendering Engine</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
249 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
250 <table>
admin@mb22-no-macbook-2.local
parents:
diff changeset
251 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
252 <td><img src="photo/rendering.png" alt="rendering" width="300" height="350"></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
253 <td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
254 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
255 <li>SG2PP</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
256 SceneGraph を操作後、ポリゴンに変換し PolygonPack (ポリゴンの集合)を生成する
admin@mb22-no-macbook-2.local
parents:
diff changeset
257 <li>PP2SP</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
258 ポリゴンの中から、Span (ポリゴン内にあるx軸に水平な線分) を抽出し、
admin@mb22-no-macbook-2.local
parents:
diff changeset
259 SpanPack (Span の集合)を生成する
admin@mb22-no-macbook-2.local
parents:
diff changeset
260 <li>DrawSpan</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
261 Span を使って 1 ラインずつ FrameBuffer に描画していく
admin@mb22-no-macbook-2.local
parents:
diff changeset
262 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
263 </td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
264 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
265 </table>
admin@mb22-no-macbook-2.local
parents:
diff changeset
266 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
267
admin@mb22-no-macbook-2.local
parents:
diff changeset
268 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
269 <h1>Rendering Engine (Con't)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
270 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
271 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
272 <img src="photo/byouga.jpg" alt="byouga" width="600" height="400">
admin@mb22-no-macbook-2.local
parents:
diff changeset
273 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
274 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
275 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
276
admin@mb22-no-macbook-2.local
parents:
diff changeset
277 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
278 <h1>Task Manager</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
279 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
280 <p class="ep1">Task と呼ばれる、分割された各プログラムを管理する</p>
admin@mb22-no-macbook-2.local
parents:
diff changeset
281 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
282 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
283 <li>Task の単位はサブルーチンまたは関数</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
284 <li>Task 同士の依存関係を考慮する</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
285 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
286 <li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
287 <pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
288 /* task2 は task1、task3 の終了を待つ */
admin@mb22-no-macbook-2.local
parents:
diff changeset
289 task2->wait_for(task1);
admin@mb22-no-macbook-2.local
parents:
diff changeset
290 task2->wait_for(task3);
admin@mb22-no-macbook-2.local
parents:
diff changeset
291 </pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
292 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
293 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
294 <li>実行可能になった Task を各 SPE に割り振る</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
295 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
296 <li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
297 <pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
298 /* SPE1で実行する */
admin@mb22-no-macbook-2.local
parents:
diff changeset
299 task1->set_cpu(SPE_1);
admin@mb22-no-macbook-2.local
parents:
diff changeset
300 /* SPEのどれかで実行する */
admin@mb22-no-macbook-2.local
parents:
diff changeset
301 task2->set_cpu(SPE_ANY);
admin@mb22-no-macbook-2.local
parents:
diff changeset
302 /* PPEで実行する */
admin@mb22-no-macbook-2.local
parents:
diff changeset
303 task3->set_cpu(PPE);
admin@mb22-no-macbook-2.local
parents:
diff changeset
304 </pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
305 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
306 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
307 <li>C++ で実装</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
308 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
309 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
310
admin@mb22-no-macbook-2.local
parents:
diff changeset
311 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
312 <h1>Rendering 部分の高速化</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
313 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
314 <font size="6" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
315 <li><font color="silver">Cell アーキテクチャの概要</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
316 <li><font color="silver">Cerium</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
317 <li>Rendering 部分の高速化</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
318 <li><font color="silver">比較</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
319 <li><font color="silver">まとめと今後の課題</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
320 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
321 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
322 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
323
admin@mb22-no-macbook-2.local
parents:
diff changeset
324 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
325 <h1>Rendering 部分の高速化</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
326 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
327 <li>SPE の LS は256KB しかないので、Texture 情報を一度に転送すると容量を超えてしまう可能性がある。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
328 <li>そこで、描画に必要な Texture データを分割、転送するという手法を用いる。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
329 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
330 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
331 <img src="photo/cerium_rendering_tile.jpg" alt="pipeline" width="382" height="288">
admin@mb22-no-macbook-2.local
parents:
diff changeset
332 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
333 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
334 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
335
admin@mb22-no-macbook-2.local
parents:
diff changeset
336 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
337 <h1>Rendering 部分の高速化 (Con't)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
338 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
339 <li>Tile Array を用いた Rendering</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
340 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
341 <li>Polygon の Span から、描画に必要な Texture A を含む Tile を計算する</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
342 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
343 <li>Tile を SPE に転送し、Tile の中の pixel 情報 (RGBα値) を取得して描画を行う</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
344 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
345 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
346 <img src="photo/Span-tile.jpg" alt="pipeline" width="500" height="265">
admin@mb22-no-macbook-2.local
parents:
diff changeset
347 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
348 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
349 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
350
admin@mb22-no-macbook-2.local
parents:
diff changeset
351 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
352 <h1>Scale</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
353 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
354 <li><p class="ex1">Texture の縮小画像の作成</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
355 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
356 <li><p class="ex0">描画されるオブジェクトが小さい場合、そのままの大きさの Texture は必要ない</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
357 <li><p class="ex0">Span の長さと、縮小 Texture の大きさが一致するような Scale の縮小 Texture を選択する</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
358 <li><p class="ex0">Texture は縦横ともに 1/2、1/4、1/8 と、2分の1ずつ縮小させる (最小 8x8 pixel)</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
359 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
360 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
361 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
362 <img src="photo/Scale.jpg" alt="pipeline" width="352" height="176">
admin@mb22-no-macbook-2.local
parents:
diff changeset
363 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
364 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
365
admin@mb22-no-macbook-2.local
parents:
diff changeset
366 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
367 <h1>Scale の効果検証</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
368 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
369 <li>10個のオブジェクトを用いたサンプル</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
370 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
371 <li>Polygon 総数 は 19860 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
372 <li>Texture は合計 10 枚 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
373 ( 8x8(3)、512x384(2)、616x123(4)、1024x768(1) )</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
374 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
375 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
376 <img src="photo/wakusei.jpg" alt="pipeline" width="428" height="321">
admin@mb22-no-macbook-2.local
parents:
diff changeset
377 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
378 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
379 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
380
admin@mb22-no-macbook-2.local
parents:
diff changeset
381 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
382 <h1>実行結果(速度検証)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
383 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
384 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
385 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
386 <table border="4">
admin@mb22-no-macbook-2.local
parents:
diff changeset
387 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
388 <th>Architecture</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
389 <th>Scale なし (FPS)</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
390 <th>Scale あり (FPS)</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
391 <th>速度の向上(%)</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
392 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
393 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
394 <th>Mac OSX</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
395 <td align="center">7.0</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
396 <td align="center">8.5</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
397 <td align="center">21</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
398 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
399 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
400 <th>PS3Linux (SPE 1)</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
401 <td align="center">4.3</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
402 <td align="center">5.6</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
403 <td align="center">30</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
404 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
405 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
406 <th>PS3Linux (SPE 6)</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
407 <td align="center">10.8</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
408 <td align="center">13.5</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
409 <td align="center">25</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
410 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
411 <caption>Scale を用いることによる実行速度の比較</caption>
admin@mb22-no-macbook-2.local
parents:
diff changeset
412 </table>
admin@mb22-no-macbook-2.local
parents:
diff changeset
413 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
414 <li><p class="ex0">実行速度の比較を行った結果、<font color="#DD0000">20 ~ 30%</font> の速度向上が見られる。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
415 <li>Mac OSX は SDL 経由で出力、PlayStation 3 は Frame Buffer へ直接出力している。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
416 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
417 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
418
admin@mb22-no-macbook-2.local
parents:
diff changeset
419 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
420 <h1>実行結果 (考察)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
421 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
422 <li><p class="ex1">SPE 1 個のときの速度と SPE 6 個のとき<br><br>の速度で<u>台数効果</u>が出ていない<p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
423 <li><p class="ex1">考えられる原因</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
424 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
425 <li><p class="ex1">DMA 転送待ち時間が隠されていないため遅くなっている (Amdahl則)</p></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
426 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
427 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
428 <li>Amdahl則:例えば SPE を 6 個使えたとしても、すべ<br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
429 ての SPE に常に処理を行わせている状態を保たなけれ<br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
430 ば、実行速度は著しく低下する。
admin@mb22-no-macbook-2.local
parents:
diff changeset
431 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
432 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
433 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
434
admin@mb22-no-macbook-2.local
parents:
diff changeset
435 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
436 <h1>キャッシュ</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
437 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
438 <li>SPE 上の Texture データのキャッシュの有効性を検証する</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
439 <li>キャッシュを用いた場合と用いてない場合を SPE の数を変更して比較する
admin@mb22-no-macbook-2.local
parents:
diff changeset
440 (1920x1080の画像の表示をサンプルとして使用)
admin@mb22-no-macbook-2.local
parents:
diff changeset
441 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
442 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
443 <br>
admin@mb22-no-macbook-2.local
parents:
diff changeset
444 <center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
445 <table border="4">
admin@mb22-no-macbook-2.local
parents:
diff changeset
446 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
447 <th></th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
448 <th>キャッシュ なし</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
449 <th>キャッシュ あり</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
450 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
451 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
452 <th>SPE 1 個</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
453 <td align="center">0.08 FPS</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
454 <td align="center">0.42 FPS</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
455 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
456 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
457 <th>SPE 6 個</th>
admin@mb22-no-macbook-2.local
parents:
diff changeset
458 <td align="center">0.59 FPS</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
459 <td align="center">2.54 FPS</td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
460 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
461 <caption>キャッシュの有無による処理速度の比較</caption>
admin@mb22-no-macbook-2.local
parents:
diff changeset
462 </table>
admin@mb22-no-macbook-2.local
parents:
diff changeset
463 </center>
admin@mb22-no-macbook-2.local
parents:
diff changeset
464
admin@mb22-no-macbook-2.local
parents:
diff changeset
465 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
466 <li>キャッシュ有りと無しとで処理速度の向上が見られる</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
467 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
468 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
469
admin@mb22-no-macbook-2.local
parents:
diff changeset
470 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
471 <h1>他システムとの比較</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
472 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
473 <font size="6" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
474 <li><font color="silver">Cell アーキテクチャの概要</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
475 <li><font color="silver">Cerium</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
476 <li><font color="silver">Rendering 部分の高速化</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
477 <li>比較</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
478 <li><font color="silver">まとめの今後の課題</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
479 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
480 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
481 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
482
admin@mb22-no-macbook-2.local
parents:
diff changeset
483 <div class="slide" id="osmesa-gallium">
admin@mb22-no-macbook-2.local
parents:
diff changeset
484 <h1>比較 - OSMesa (Gallium)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
485 <ul class="simple">
admin@mb22-no-macbook-2.local
parents:
diff changeset
486 <li>先行研究 (神里)<ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
487 <li>現在 PS3Linux からは <font color="maroon">GPU にアクセスできない</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
488 <li><font color="maroon">frame buffer は使用できる</font> ため、OSMesa を使用</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
489 <li>OSMesa の機能の一部を SPE に乗せ、高速化に成功</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
490 <li>ソースコードの複雑化を招いた</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
491 <li>以降のメンテナンスや機能の追加、改良が困難と判断し、独自に Rendering Engine を持つことに</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
492 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
493 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
494 <li>Gallium<ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
495 <li>OSMesa の Cell Driver</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
496 <li>OpenGL で動作</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
497 <li>PS3 上のゲーム開発において、レンダリングのみを SPE に実装するのでは足りない<ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
498 <li>ゲームに登場するオブジェクトの計算 (衝突判定等)</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
499 <li>Amdahl 則の問題</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
500 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
501 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
502 <li>レンダリングだけでなく、ゲームオブジェクトも SPE で処理できるように
admin@mb22-no-macbook-2.local
parents:
diff changeset
503 しなければならない</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
504 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
505 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
506 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
507 <div class="slide" id="gallium-con-t">
admin@mb22-no-macbook-2.local
parents:
diff changeset
508 <h1>比較 - Gallium (Con't)</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
509 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
510 <li>実行速度比較<ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
511 <li>出力解像度は 1920x1080</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
512 <li>地球のテクスチャを貼った球体のオブジェクトを表示</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
513 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
514 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
515 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
516 <table width="90%">
admin@mb22-no-macbook-2.local
parents:
diff changeset
517 <tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
518 <td><div align="center" class="align-center"><img alt="com_gallium" class="align-center" src="photo/com_gallium.jpg" style="width: 340px;" /></div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
519 </td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
520 <td align="center"><font size="4">ポリゴン数 : 1984</font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
521 <table border="1" class="small docutils">
admin@mb22-no-macbook-2.local
parents:
diff changeset
522 <colgroup>
admin@mb22-no-macbook-2.local
parents:
diff changeset
523 <col width="55%" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
524 <col width="45%" />
admin@mb22-no-macbook-2.local
parents:
diff changeset
525 </colgroup>
admin@mb22-no-macbook-2.local
parents:
diff changeset
526 <tbody valign="top">
admin@mb22-no-macbook-2.local
parents:
diff changeset
527 <tr><td><font size="4">Gallium (SPE 6 個)</font></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
528 <td><font size="4">5.4 FPS</font></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
529 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
530 <tr><td><font size="4">Cerium (SPE 1 個)</font></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
531 <td><font size="4">2.5 FPS</font></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
532 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
533 <tr><td><font size="4">Cerium (SPE 6 個)</font></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
534 <td><font color="maroon" size="4">9.5 FPS</font></td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
535 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
536 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
537 </tbody>
admin@mb22-no-macbook-2.local
parents:
diff changeset
538 </table>
admin@mb22-no-macbook-2.local
parents:
diff changeset
539 </td>
admin@mb22-no-macbook-2.local
parents:
diff changeset
540 </tr>
admin@mb22-no-macbook-2.local
parents:
diff changeset
541 </table><ul class="simple">
admin@mb22-no-macbook-2.local
parents:
diff changeset
542 <li>Gallium には OpenGL API の機能が全て乗っているわけではない</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
543 <li>Cerium とのレンダリングの機能の違い<ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
544 <li>光源、アルファブレンディング、etc..</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
545 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
546 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
547 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
548 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
549 <div class="slide" id="opengl">
admin@mb22-no-macbook-2.local
parents:
diff changeset
550 <h1>比較 - OpenGL</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
551 <dl class="docutils">
admin@mb22-no-macbook-2.local
parents:
diff changeset
552 <dt>OpenGL</dt>
admin@mb22-no-macbook-2.local
parents:
diff changeset
553 <dd>オープンソースの3Dグラフィックスプログラムインターフェース</dd>
admin@mb22-no-macbook-2.local
parents:
diff changeset
554 </dl>
admin@mb22-no-macbook-2.local
parents:
diff changeset
555 <ul class="simple">
admin@mb22-no-macbook-2.local
parents:
diff changeset
556 <li>変換行列、光源、カメラなどの API を実装</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
557 <li>親子関係の表現も可能</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
558 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
559 <p>Cerium での OpenGL の使用の問題</p>
admin@mb22-no-macbook-2.local
parents:
diff changeset
560 <ul class="simple">
admin@mb22-no-macbook-2.local
parents:
diff changeset
561 <li>SceneGraph の OpenGL の API にあわせるオーバーヘッド</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
562 <li>SceneGraph は自身の変換行列を持っている<ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
563 <li>SceneGraph 単体でオブジェクトの操作は可能</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
564 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
565 </li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
566 <li>SceneGraph だけで問題ない</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
567 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
568 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
569
admin@mb22-no-macbook-2.local
parents:
diff changeset
570 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
571 <h1>まとめと今後の課題</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
572 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
573 <font size="6" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
574 <li><font color="silver">Cell アーキテクチャの概要</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
575 <li><font color="silver">Cerium</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
576 <li><font color="silver">Rendering 部分の高速化</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
577 <li><font color="silver">比較</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
578 <li>まとめと今後の課題</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
579 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
580 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
581 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
582
admin@mb22-no-macbook-2.local
parents:
diff changeset
583 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
584 <h1>まとめ</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
585 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
586 <li><p class="ep1">Scale による DMA 待ち時間の有効活用と、SPE 上の Texture データのキャッシュの有
admin@mb22-no-macbook-2.local
parents:
diff changeset
587 効性を証明できた</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
588 <li><p class="ep1">DMA 転送の待ち時間の無駄を十分に利用できていない可能性が出たので、さらに SPE
admin@mb22-no-macbook-2.local
parents:
diff changeset
589 上で行う処理を増やし待ち時間の有効活用を目指す。</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
590 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
591 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
592
admin@mb22-no-macbook-2.local
parents:
diff changeset
593 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
594 <h1>今後の課題</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
595 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
596 <li><p class="ex1">SceneGraph の SPE 上での実行</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
597 <li><p class="ex1">プログラムコードの SPE 上での <br>On demand load</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
598 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
599 <li><p class="ep1">現在は予め全てのコードを SPE 上に置いておく必要がある</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
600 <li><p class="ep1">SPE のメモリ領域 (256B) を考えると好ましくない</li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
601 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
602 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
603 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
604
admin@mb22-no-macbook-2.local
parents:
diff changeset
605
admin@mb22-no-macbook-2.local
parents:
diff changeset
606 <!--
admin@mb22-no-macbook-2.local
parents:
diff changeset
607 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
608 <h1>Textureの分割、Scale</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
609 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
610 <li><font size="5" color="#000000">Textureの分割、Scale処理に用いるデータ構造</font></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
611 <font size="4">
admin@mb22-no-macbook-2.local
parents:
diff changeset
612 <pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
613
admin@mb22-no-macbook-2.local
parents:
diff changeset
614 uint32 *tex_dest = (uint32*)manager->malloc(tile_size);
admin@mb22-no-macbook-2.local
parents:
diff changeset
615
admin@mb22-no-macbook-2.local
parents:
diff changeset
616 // 1 / 2
admin@mb22-no-macbook-2.local
parents:
diff changeset
617 for (int y = 0; y < tex_height; y += TEXTURE_SPLIT_PIXEL*2) {
admin@mb22-no-macbook-2.local
parents:
diff changeset
618 for (int x = 0; x < tex_width; x += TEXTURE_SPLIT_PIXEL*2) {
admin@mb22-no-macbook-2.local
parents:
diff changeset
619 for (int j = 0; j < TEXTURE_SPLIT_PIXEL*2; j+=2) {
admin@mb22-no-macbook-2.local
parents:
diff changeset
620 for (int i = 0; i < TEXTURE_SPLIT_PIXEL*2; i+=2) {
admin@mb22-no-macbook-2.local
parents:
diff changeset
621 tex_dest[t++] = tex_src[(x+i) + tex_width*(y+j)];
admin@mb22-no-macbook-2.local
parents:
diff changeset
622 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
623 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
624 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
625 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
626
admin@mb22-no-macbook-2.local
parents:
diff changeset
627 </pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
628 </font>
admin@mb22-no-macbook-2.local
parents:
diff changeset
629 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
630 <div class="handout">
admin@mb22-no-macbook-2.local
parents:
diff changeset
631 [any material that should appear in print but not on the slide]
admin@mb22-no-macbook-2.local
parents:
diff changeset
632 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
633 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
634 -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
635 <!--
admin@mb22-no-macbook-2.local
parents:
diff changeset
636 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
637 <h1>ハッシュテーブル</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
638 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
639 <pre><font size="4" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
640 // ハッシュテーブル
admin@mb22-no-macbook-2.local
parents:
diff changeset
641 struct
admin@mb22-no-macbook-2.local
parents:
diff changeset
642 hashtable{
admin@mb22-no-macbook-2.local
parents:
diff changeset
643 int tx_id; // Texture id
admin@mb22-no-macbook-2.local
parents:
diff changeset
644 char* key; // キー
admin@mb22-no-macbook-2.local
parents:
diff changeset
645 };
admin@mb22-no-macbook-2.local
parents:
diff changeset
646 </font></pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
647 <pre><font size="4" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
648 // ハッシュ関数
admin@mb22-no-macbook-2.local
parents:
diff changeset
649 for(int i = 0; key[i]; i++){
admin@mb22-no-macbook-2.local
parents:
diff changeset
650 //value += key[i] + 1;
admin@mb22-no-macbook-2.local
parents:
diff changeset
651 value += key[i]*(i+1)*17 + 1;
admin@mb22-no-macbook-2.local
parents:
diff changeset
652 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
653 return fmod(value, N);
admin@mb22-no-macbook-2.local
parents:
diff changeset
654 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
655 </font></pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
656 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
657 <div class="handout">
admin@mb22-no-macbook-2.local
parents:
diff changeset
658 [any material that should appear in print but not on the slide]
admin@mb22-no-macbook-2.local
parents:
diff changeset
659 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
660 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
661
admin@mb22-no-macbook-2.local
parents:
diff changeset
662 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
663 <h1>ハッシュテーブル</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
664 <pre><font size="3" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
665 // 登録、検索
admin@mb22-no-macbook-2.local
parents:
diff changeset
666 int
admin@mb22-no-macbook-2.local
parents:
diff changeset
667 hash::hash_regist(const char* key){
admin@mb22-no-macbook-2.local
parents:
diff changeset
668 int hash = hash_function(key);
admin@mb22-no-macbook-2.local
parents:
diff changeset
669 for(int i = 0; ; i++){
admin@mb22-no-macbook-2.local
parents:
diff changeset
670 // 値が空のとき
admin@mb22-no-macbook-2.local
parents:
diff changeset
671 if(table[hash].tx_id == -1){
admin@mb22-no-macbook-2.local
parents:
diff changeset
672 table[hash].key = (char*)key;
admin@mb22-no-macbook-2.local
parents:
diff changeset
673 table[hash].tx_id = id_count;
admin@mb22-no-macbook-2.local
parents:
diff changeset
674 id_count++;
admin@mb22-no-macbook-2.local
parents:
diff changeset
675 printf("x : hash = %d, id = %d : %s\n"
admin@mb22-no-macbook-2.local
parents:
diff changeset
676 , hash, table[hash].tx_id, table[hash].key);
admin@mb22-no-macbook-2.local
parents:
diff changeset
677 return table[hash].tx_id;
admin@mb22-no-macbook-2.local
parents:
diff changeset
678 </font></pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
679 <div class="handout">
admin@mb22-no-macbook-2.local
parents:
diff changeset
680 [any material that should appear in print but not on the slide]
admin@mb22-no-macbook-2.local
parents:
diff changeset
681 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
682 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
683
admin@mb22-no-macbook-2.local
parents:
diff changeset
684
admin@mb22-no-macbook-2.local
parents:
diff changeset
685 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
686 <h1>ハッシュテーブル</h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
687 <pre><font size="3" color="#000000">
admin@mb22-no-macbook-2.local
parents:
diff changeset
688 // 検索keyが一致したとき
admin@mb22-no-macbook-2.local
parents:
diff changeset
689 }else if(strcmp(key, table[hash].key) == 0 && table[hash].tx_id != -1){
admin@mb22-no-macbook-2.local
parents:
diff changeset
690 printf("o : hash = %d, id = %d : %s\n"
admin@mb22-no-macbook-2.local
parents:
diff changeset
691 , hash, table[hash].tx_id, table[hash].key);
admin@mb22-no-macbook-2.local
parents:
diff changeset
692 return table[hash].tx_id;
admin@mb22-no-macbook-2.local
parents:
diff changeset
693 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
694 printf("hash = %d => ", hash);
admin@mb22-no-macbook-2.local
parents:
diff changeset
695 hash = ((37*hash)^(11*i)) % N;
admin@mb22-no-macbook-2.local
parents:
diff changeset
696 printf("%d\n", hash);
admin@mb22-no-macbook-2.local
parents:
diff changeset
697 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
698 }
admin@mb22-no-macbook-2.local
parents:
diff changeset
699 </font></pre>
admin@mb22-no-macbook-2.local
parents:
diff changeset
700 <div class="handout">
admin@mb22-no-macbook-2.local
parents:
diff changeset
701 [any material that should appear in print but not on the slide]
admin@mb22-no-macbook-2.local
parents:
diff changeset
702 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
703 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
704 -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
705 <!--
admin@mb22-no-macbook-2.local
parents:
diff changeset
706 <div class="slide">
admin@mb22-no-macbook-2.local
parents:
diff changeset
707 <h1></h1>
admin@mb22-no-macbook-2.local
parents:
diff changeset
708 <ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
709 <li></li>
admin@mb22-no-macbook-2.local
parents:
diff changeset
710 </ul>
admin@mb22-no-macbook-2.local
parents:
diff changeset
711 <div class="handout">
admin@mb22-no-macbook-2.local
parents:
diff changeset
712 [any material that should appear in print but not on the slide]
admin@mb22-no-macbook-2.local
parents:
diff changeset
713 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
714 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
715 -->
admin@mb22-no-macbook-2.local
parents:
diff changeset
716
admin@mb22-no-macbook-2.local
parents:
diff changeset
717 </div>
admin@mb22-no-macbook-2.local
parents:
diff changeset
718
admin@mb22-no-macbook-2.local
parents:
diff changeset
719 </body>
admin@mb22-no-macbook-2.local
parents:
diff changeset
720 </html>