Mercurial > hg > Papers > 2009 > gongo-master
diff presen/presen.rst @ 26:252d2d951d7e
add Task Manager
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sun, 15 Feb 2009 11:44:57 +0900 |
parents | de8ba175cc9b |
children | 90128e098120 |
line wrap: on
line diff
--- a/presen/presen.rst Sat Feb 14 23:53:02 2009 +0900 +++ b/presen/presen.rst Sun Feb 15 11:44:57 2009 +0900 @@ -15,18 +15,6 @@ **琉球大学 理工学研究科 情報工学専攻 並列信頼研究室** -発表の流れ -====================== - -- 研究の背景と目的 -- Cell アーキテクチャの概要 -- Many Core プログラミングの特徴 -- Task Manager の実装 -- Task Manager を用いた並列プログラム -- Cerium -- Cerium を用いたゲーム -- まとめと今後の課題 - 研究の背景 =================== @@ -62,9 +50,9 @@ - Task Manager を用いた開発行程 - 1. 逐次型プログラム (MacOSX、Linux) - #. データやコードを分割したプログラム (MacOSX、Linux) - #. 並列に動かすプログラム (Cell) + 1. 逐次型プログラム + #. データやコードを分割したプログラム + #. 並列に動かすプログラム 各段階で信頼性を確保しながら開発を進める @@ -83,17 +71,29 @@ - Rendering Engine や Scene Graph の処理単位を Task とし、複数の Core へ 割り振りを行うカーネル :maroon:`TaskManager` +学生が Cell アーキテクチャを理解しながら、 +期間内でゲーム開発が行える、シンプルな +マルチタスクフレームワークを目指す + + +発表の流れ +====================== + +- Cell アーキテクチャの概要 +- Many Core プログラミングの特徴 +- Task Manager の実装、例題 +- Cerium +- 比較 +- まとめと今後の課題 Cell アーキテクチャの概要 =========================== -- :silver:`研究の背景と目的` - :big:`Cell アーキテクチャの概要` - :silver:`Many Core プログラミングの特徴` - :silver:`Task Manager の実装` -- :silver:`Task Manager を用いた並列プログラム` - :silver:`Cerium` -- :silver:`Cerium を用いたゲーム` +- :silver:`比較` - :silver:`まとめと今後の課題` Cell Broadband Engine @@ -113,23 +113,25 @@ - SPE が持つ MFC (Memory Flow Controller) へ :maroon:`DMA 命令` を送ることで行う +- 128 ビットレジスタを用いて SIMD (Single Instruction Multiple Data) が可能 + Cell の基本機能 ======================= -- :maroon:`DMA (Direct Memory Access)` +**DMA** - メインメモリと LS 間でデータが転送される +- メインメモリと LS 間でデータが転送される - DMA 転送を行うにはいくつか条件がある +- DMA 転送を行うにはいくつか条件がある - データサイズは 16 バイトの倍数 - 転送元と転送先のアドレスが 16 バイト境界に揃えられている -- :maroon:`Mailbox` +**Mailbox** - SPE の MFC 内にある FIFO キュー +- SPE の MFC 内にある FIFO キュー - PPE と SPE 間で 32 ビットメッセージの交換に用いられる +- PPE と SPE 間で 32 ビットメッセージの交換に用いられる キューは 3 種類 @@ -140,13 +142,11 @@ Many Core プログラミングの特徴 ================================ -- :silver:`研究の背景と目的` - :silver:`Cell アーキテクチャの概要` - :big:`Many Core プログラミングの特徴` - :silver:`Task Manager の実装` -- :silver:`Task Manager を用いた並列プログラム` - :silver:`Cerium` -- :silver:`Cerium を用いたゲーム` +- :silver:`比較` - :silver:`まとめと今後の課題` @@ -163,7 +163,7 @@ .. raw:: html <div align="center" style="font-size: large;"> - 6 CPU を使っても、プログラムの並列化率が 8 割程度では<br/> + 6 CPU を使っても、プログラムの並列化率が 8 割程度では<br /> 3倍程度の性能向上しか得られない </div> @@ -234,14 +234,75 @@ 並列プログラムの開発行程 ========================== -並列プログラミングでは、以下の段階において、それぞれ実装とテストを行う。 +以下の段階において、それぞれ実装とテストを行う 1. C によるシーケンシャルな実装 + +- アルゴリズムの確認 + 2. 並列実行を考慮したデータ構造を持つ実装 -3. コードを分割し、シーケンシャルに実行する実装 + +- データ構造が変化しても 1. と結果が同じになるかを確認 + +3. コードを分割し、それらをシーケンシャルに実行する実装 + +- この段階まではアーキテクチャに依存しない +- 二分法によるデバッグが可能 + 4. 分割したコードを並列実行する実装 +Task Manager の実装 +================================ + +- :silver:`Cell アーキテクチャの概要` +- :silver:`Many Core プログラミングの特徴` +- :big:`Task Manager の実装` +- :silver:`Cerium` +- :silver:`比較` +- :silver:`まとめと今後の課題` + + +Task Manager +================ + +Task と呼ばれる、分割された各プログラムを管理する + +- Task はサブルーチンもしくは関数 +- Task 同士の依存関係を考慮 +- 実行状態になった Task を各 SPE に割り振る + +.. raw:: html + + <div align="center"> + +.. class:: small + + Task Manager User API + + ============= ============================================ + create_task Task の生成 + allocate 実行環境のアライメントを考慮した allocator + ============= ============================================ + + Task API + + ============= ================================================== + add_inData Task の入力データの設定 (入力元アドレス、データサイズ) + add_outData Task の出力データの設定 (出力先アドレス、データサイズ) + add_param Task のパラメータ (32bits) + wait_for Task の依存関係の考慮 + set_cpu Task を実行する CPU の設定 + ============= ================================================== + +.. raw:: html + + </div> + + + + + 比較 - Gallium =========================== @@ -306,6 +367,11 @@ :align: center :width: 350px + +.. raw:: html + + <div align="center"> + ===================== =============== Gallium (SPE 6 個) 5.4 FPS --------------------- --------------- @@ -313,6 +379,10 @@ --------------------- --------------- Cerium (SPE 6 個) :maroon:`9.5 FPS` ===================== =============== + +.. raw:: html + + </div> 比較 - OpenGL @@ -328,10 +398,10 @@ .. raw:: html <div align="center" style="color: maroon; font-size: large;"> - // 線分3つ指定し、三角形を生成<br/> - glVertex3d(x1, y1, z1);<br/> - glVertex3d(x2, y2, z2);<br/> - glVertex3d(x3, y3, z3);<br/> + // 線分3つ指定し、三角形を生成<br /> + glVertex3d(x1, y1, z1);<br /> + glVertex3d(x2, y2, z2);<br /> + glVertex3d(x3, y3, z3);<br /> </div> - OpenGL での親子関係の表現 @@ -396,4 +466,5 @@ Task Manager は :maroon:`OpenCL による実装の一つ` と言える -- 学生による Cell プログラミングフレームワークとしては Task Manager が扱いやすい +- 学生が Cell アーキテクチャの理解、及び Cell プログラミングを行う際は + Task Manager が適している