Mercurial > hg > Papers > 2009 > gongo-master
diff presen/presen.rst @ 23:51c95851ae11
fix presentation
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sat, 14 Feb 2009 19:40:02 +0900 |
parents | 2c5703c3a36e |
children | de8ba175cc9b |
line wrap: on
line diff
--- a/presen/presen.rst Sat Feb 14 13:54:55 2009 +0900 +++ b/presen/presen.rst Sat Feb 14 19:40:02 2009 +0900 @@ -1,4 +1,5 @@ -.. include:: <s5defs.txt> +.. include:: s5defs.txt +.. include:: <mmlalias.txt> =========================================== Cell 用の Fine-Grain Task Manager の実装 @@ -14,14 +15,13 @@ **琉球大学 理工学研究科 情報工学専攻 並列信頼研究室** -研究の背景と目的 +研究の背景 =================== -現在、学生実験で PS3Linux を用いてゲーム開発を行っている +現在、学生実験で PS3Linux を用いてゲーム開発を行っているが、 +学生には困難であることがわかってきている -**しかし、学生には困難!** - -+ 問題1:Cell アーキテクチャプログラミング ++ :maroon:`問題1` : :underline:`Cell アーキテクチャプログラミング` + Many Core による並列プログラミング @@ -29,73 +29,137 @@ + Cell の仕様 (DMA、データのアライメント、etc..) -+ 問題2:ゲーム開発用の Framework が無い ++ :maroon:`問題2` : :underline:`ゲーム開発用の Framework が無い` + +実験期間の大半を Cell の勉強に費やさねばならず、 +開発されるゲームのレベルが例年一定以上にならない + +研究目的 +============ + +Many Core Architecture を用いた並列プログラムの開発をサポートするフレームワーク :maroon:`Fine Grain Task Manager` を提案する + +- 動作環境 + + Mac OS X、Linux、PS3(Cell) + +- Fine Grain Task の単位 + + サブルーチンまたは関数 + +- Task Manager を用いた開発行程 + + 1. 逐次型プログラム + 2. データやコードを分割したプログラム + 3. 並列に動かすプログラム + + 各段階で信頼性を確保しながら開発を進める + + +研究目的 (Con't) +================== + +**Cerium** + Task Manager を用いた、PS3ゲーム開発用フレームワーク + +Cerium は 3 つの機能で構成されている + +- 独自の :maroon:`Rendering Engine` +- ゲームに登場するオブジェクトやルールなど、ゲームを構成する要素を + 木構造として持つ :maroon:`Scene Graph` +- Rendering Engine や Scene Graph の処理単位を Task とし、複数の Core へ + 割り振りを行うカーネル :maroon:`TaskManager` + +発表の流れ +====================== + +- Cell アーキテクチャの概要 +- Many Core プログラミングの特徴 +- Task Manager の実装 +- Task Manager を用いた並列プログラム +- Cerium +- Cerium を用いたゲーム +- まとめと今後の課題 + +Cell アーキテクチャの概要 +=========================== + +- :big:`Cell アーキテクチャの概要` +- :silver:`Many Core プログラミングの特徴` +- :silver:`Task Manager の実装` +- :silver:`Task Manager を用いた並列プログラム` +- :silver:`Cerium` +- :silver:`Cerium を用いたゲーム` +- :silver:`まとめと今後の課題` -実験期間の大半を Cell の勉強に費やし、 -開発されるゲームのレベルが例年一定以上にならない +Cell Broadband Engine +======================== + +.. image:: images/cell_arch.jpg + :align: center + :width: 280px + +- 1個の PPE と 8 個の SPE がリングバスで構成されている + + - Linux 側から使える SPE は 6 個 + +- SPE は :maroon:`256KB` の Local Store (LS) を持つ +- SPE からメインメモリへは直接アクセスできない + + - SPE が持つ MFC (Memory Flow Controller) へ + :maroon:`DMA 命令` を送ることで行う + +Cell の基本機能 +======================= + +- :maroon:`DMA (Direct Memory Access)` + + メインメモリと LS 間でデータが転送される + + DMA 転送を行うにはいくつか条件がある + + - データサイズは 16 バイトの倍数 + - 転送元と転送先のアドレスが 16 バイト境界に揃えられている + +- :maroon:`Mailbox` + + SPE の MFC 内にある FIFO キュー + + PPE と SPE 間で 32 ビットメッセージの交換に用いられる + + キューは 3 種類 + + - SPU Inbound Mailbox : PPE |rightarrow| SPE + - SPU Outbound Mailbox : SPE |rightarrow| PPE + - SPU Outbound interrupt Mailbox : SPE |rightarrow| PPE (割り込み) + +Many Core プログラミングの特徴 +================================ + +- :silver:`Cell アーキテクチャの概要` +- :big:`Many Core プログラミングの特徴` +- :silver:`Task Manager の実装` +- :silver:`Task Manager を用いた並列プログラム` +- :silver:`Cerium` +- :silver:`Cerium を用いたゲーム` +- :silver:`まとめと今後の課題` + + +定常的な並列度の必要性 +======================== + +**Amdahl 則** + 元のプログラムの並列化率が低ければ、その性能を生かすことは出来ない + +.. image:: images/amdahl.jpg + :align: center + :width: 360px .. raw:: html - <center> - ↓ - </center> - -Many Core Architecture を用いた並列プログラムの開発を -サポートするフレームワーク「 :red:`Fine Grain Task Manager` 」を提案する - -研究目的 -============== - -+ 学生実験で PS3Linux を用いてゲーム開発を行っている - - + Cell プログラミングが難しい - - + 並列実行のためのデータ、コードの分割 - + Cell 仕様 (DMA、アライメント、etc...) - - + 毎回 Cell の勉強からしないと始めないといけないので - ゲームプログラムのレベルが一定以上にならない - - + ゲーム開発用のフレームワークが無い - -+ 本研究では、Cell のような Many Core Architecture を用いた、 - 並列プログラムの開発をサポートするフレームワークとして、 - Fine Grain Task Manager を設計する -+ Task Manager を用いた開発行程 - - 1. 逐次型プログラム - 2. データやコードを分割したプログラム(シーケンシャルに動く) - 3. 並列実行プログラム + <div align="center" style="font-size: large;"> + 6 CPU を使っても、プログラムの並列化率が 8 割程度では<br/> + 3倍程度の性能向上しか得られない + </div> -+ 各ステップで信頼性を確かめながら開発を行っていく - -+ Task Manager を用いて、PS3 ゲーム開発用フレームワークとして Cerium を開発する - - -作業報告 -====================== - -- 修論事務提出 -- SceneGraph - - - allExecute - -- Camera - - -SceneGraph -================= - -allExecute で一つずつコピーしていく - -- remove flag がついた奴はコピーしない -- 今の実装だと親消すと子も全滅 - - - 選べてもいいし、ユーザが自分で付け替えるのは。。。 - -Camera -================= - -それっぽい動き - - +Amdahl 則より、恒常的に並列プログラムの並列度を維持する必要がある