Mercurial > hg > Papers > 2009 > gongo-master
view 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 source
.. include:: s5defs.txt .. include:: <mmlalias.txt> =========================================== Cell 用の Fine-Grain Task Manager の実装 =========================================== *発表者* **宮國渡** *指導教官* **河野真治** *所属* **琉球大学 理工学研究科 情報工学専攻 並列信頼研究室** 研究の背景 =================== 現在、学生実験で PS3Linux を用いてゲーム開発を行っているが、 学生には困難であることがわかってきている + :maroon:`問題1` : :underline:`Cell アーキテクチャプログラミング` + Many Core による並列プログラミング (データ、コードの分割の必要性) + Cell の仕様 (DMA、データのアライメント、etc..) + :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 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 <div align="center" style="font-size: large;"> 6 CPU を使っても、プログラムの並列化率が 8 割程度では<br/> 3倍程度の性能向上しか得られない </div> Amdahl 則より、恒常的に並列プログラムの並列度を維持する必要がある