Mercurial > hg > Papers > 2009 > tkaito-thesis
view presen/pre1.html @ 16:7903afa82ca9
test
author | tkaito@nw0534.st.ie.u-ryukyu.ac.jp |
---|---|
date | Wed, 25 Feb 2009 23:56:45 +0900 |
parents | e7e2f73c4109 |
children | 117151221775 |
line wrap: on
line source
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>2009年度卒業論文</title> <!-- metadata --> <meta name="generator" content="S5" /> <meta name="version" content="S5 1.1" /> <meta name="presdate" content="20050728" /> <meta name="author" content="Tagano Kaito" /> <meta name="company" content="ie-ryukyu" /> <!-- configuration parameters --> <meta name="defaultView" content="slideshow" /> <meta name="controlVis" content="hidden" /> <!-- style sheet links --> <link rel="stylesheet" href="ui/default/slides.css" type="text/css" media="projection" id="slideProj" /> <link rel="stylesheet" href="ui/default/outline.css" type="text/css" media="screen" id="outlineStyle" /> <link rel="stylesheet" href="ui/default/print.css" type="text/css" media="print" id="slidePrint" /> <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" /> <!-- S5 JS --> <script src="ui/default/slides.js" type="text/javascript"></script> <style type="text/css"> body { font-size: 100%; } p.ex8 { font-size: 2.0em; } p.ex7 { font-size: 1.9em; } p.ex6 { font-size: 1.8em; } p.ex5 { font-size: 1.7em; } p.ex4 { font-size: 1.6em; } p.ex3 { font-size: 1.5em; } p.ex2 { font-size: 1.4em; } p.ex1 { font-size: 1.3em; } p.ex0 { font-size: 1.0em; } </style> </head> <body> <div class="layout"> <div id="controls"><!-- DO NOT EDIT --></div> <div id="currentSlide"><!-- DO NOT EDIT --></div> <div id="header"></div> <div id="footer"> <h1>1-322 / 20090226</h1> <h2>卒業論文</h2> </div> </div> <div class="presentation"> <div class="slide"> <center> <br><br> <p class="ex8">並列プログラミングを用いた<br>ゲームフレームワークの設計と実装</p> <p><font size="5" color="#000000">琉球大学 工学部情報 工学科 055734A</font></p> <p><font size="5" color="#000000">多賀野海人</font</p> <p><font size="5" color="#000000">指導教官:河野真治</font</p> <p><font size="5" color="#000000">Feb, 26, 2009</font></p> </center> </div> <div class="slide"> <h1>研究背景と目的</h1> <center> <p class="ex4"><font color="#509050">完成度の高いゲームを作成したい!</font></p> </center> <ul> <li><font size="5" color="#000000">Cell を用いたゲームプログラミングは学部生には困難である。</font></li> <br> <font size="6" color="#000000"> <ul> <li>問題点1:Cell 特有の技術</li> <li>問題点2:ゲーム開発用の Frameworkない</li> <li>問題点3:学生実験の期間が短い</li> </ul> </font> <br> <font size = "5"> 本研究では、学生実験の期間内で Cell を活かした完成度の高いゲームを作成できる環境構築を目的としている </font> </div> <div class="slide"> <h1>目次</h1> <ul> <font size="6" color="#000000"> <li>Cell の基本機能</li> <li>Rendering 部分の高速化</li> <li>今後の課題</li> </font> </ul> </div> <div class="slide"> <h1>Cell の基本機能</h1> <ul> <li><p class="ex4">DMA (Direct Memory Access)</p></li> <ul> <li><p class="ex0">SPE にはメモリが 256KB しか搭載されていない。</p></li> <li><p class="ex0">直接メインメモリにアクセスすることはできない。</p></li> <li><p class="ex0">メインメモリにアクセスするには DMA を用いる。</p></li> </ul> <font size="5"> <ol> <li><font color="#0000FF">SPE プログラム → MFC </font>: DMA 転送命令</li> <li><font size="5" color="#0000FF">MFC → DMA 転送開始</font> <br> (この間、SPE プログラムは停止しない)</li> <li>DMA 転送の終了を待つ場合、SPE プログラム内で転送の完了を待つ。</li> </ol> </font> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> <div class="slide"> <h1>Cell の基本機能</h1> <ul> <li>DMA 転送には待ち時間が存在する。</li> <li>待ち時間の間 SPE 有効に使わないともったいない</li> <br> <br> 問題の解決策:パイプラインと並列処理を用いて<br> DMA 待ち時間を隠す。 <center> <img src="photo/pipeline.jpg" alt="pipeline" width="437" height="210"> </center> </ul> </div> <div class="slide"> <h1>Rendering 部分の高速化</h1> <ul> <li>SPE の LS は256KB しかないので、Texture 情報を一度に転送すると容量を超えてしまう可能性がある。</li> <li>そこで、描画に必要な Texture データを分割、転送するという手法を用いる。</li> <br> <center> <img src="photo/cerium_rendering_tile.jpg" alt="pipeline" width="382" height="288"> </center> </ul> </div> <div class="slide"> <h1>Rendering 部分の高速化</h1> <ul> <li></li> <li></li> <li></li> </ul> </div> <!-- <div class="slide"> <h1>Textureの分割、Scale</h1> <ul> <li><font size="5" color="#000000">Textureの分割、Scale処理に用いるデータ構造</font></li> <font size="4"> <pre> uint32 *tex_dest = (uint32*)manager->malloc(tile_size); // 1 / 2 for (int y = 0; y < tex_height; y += TEXTURE_SPLIT_PIXEL*2) { for (int x = 0; x < tex_width; x += TEXTURE_SPLIT_PIXEL*2) { for (int j = 0; j < TEXTURE_SPLIT_PIXEL*2; j+=2) { for (int i = 0; i < TEXTURE_SPLIT_PIXEL*2; i+=2) { tex_dest[t++] = tex_src[(x+i) + tex_width*(y+j)]; } } } } </pre> </font> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> </div> --> <!-- <div class="slide"> <h1>ハッシュテーブル</h1> <ul> <pre><font size="4" color="#000000"> // ハッシュテーブル struct hashtable{ int tx_id; // Texture id char* key; // キー }; </font></pre> <pre><font size="4" color="#000000"> // ハッシュ関数 for(int i = 0; key[i]; i++){ //value += key[i] + 1; value += key[i]*(i+1)*17 + 1; } return fmod(value, N); } </font></pre> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> </div> <div class="slide"> <h1>ハッシュテーブル</h1> <pre><font size="3" color="#000000"> // 登録、検索 int hash::hash_regist(const char* key){ int hash = hash_function(key); for(int i = 0; ; i++){ // 値が空のとき if(table[hash].tx_id == -1){ table[hash].key = (char*)key; table[hash].tx_id = id_count; id_count++; printf("x : hash = %d, id = %d : %s\n" , hash, table[hash].tx_id, table[hash].key); return table[hash].tx_id; </font></pre> <div class="handout"> [any material that should appear in print but not on the slide] </div> </div> <div class="slide"> <h1>ハッシュテーブル</h1> <pre><font size="3" color="#000000"> // 検索keyが一致したとき }else if(strcmp(key, table[hash].key) == 0 && table[hash].tx_id != -1){ printf("o : hash = %d, id = %d : %s\n" , hash, table[hash].tx_id, table[hash].key); return table[hash].tx_id; } printf("hash = %d => ", hash); hash = ((37*hash)^(11*i)) % N; printf("%d\n", hash); } } </font></pre> <div class="handout"> [any material that should appear in print but not on the slide] </div> </div> --> <!-- <div class="slide"> <h1></h1> <ul> <li></li> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> </div> --> </div> </body> </html>