高機能ルータを利用したDMR実行メニーコアにおける効率的なタスク配置手法の検討 (IPSJ SIG-ARC 2012-03-27)

1,019 views
951 views

Published on

高機能ルータを利用したDMR実行メニーコアにおける効率的なタスク配置手法の検討

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,019
On SlideShare
0
From Embeds
0
Number of Embeds
262
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

高機能ルータを利用したDMR実行メニーコアにおける効率的なタスク配置手法の検討 (IPSJ SIG-ARC 2012-03-27)

  1. 1. 2012年 3月 27日計算機アーキテクチャ研究会@長崎高機能ルータを利用したDMR実行メニーコアにおける効率的なタスク配置手法の検討 高前田 (山崎) 伸也†‡, 佐藤 真平†‡, 吉瀬 謙二† †東京工業大学 大学院情報理工学研究科 ‡日本学術振興会 特別研究員
  2. 2. 概要 n  NoCルータの支援によりDMR(二重冗長)実行をする メニーコアにおける良いタスク配置手法 (を考える) l  SmartCoreシステム: 2つのコアがペアを形成し 同一スレッドを実行・実行結果をNoCルータで比較 l  FPGAシステムにDMRプロセッサを実装 •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4 •  ちゃんと作ったFPGAシステムを使っているよ!! l  各種パターンを評価 •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離) •  パターンによるシンプルな配置で性能と信頼性が両立できそう •  DMR実行のオーバーヘッドをタスク配置の良さでカバー2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 2
  3. 3. 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 3
  4. 4. 概要 n  NoCルータの支援によりDMR(二重冗長)実行をする メニーコアにおける良いタスク配置手法 (を考える) l  SmartCoreシステム: 2つのコアがペアを形成し 同一スレッドを実行・実行結果をNoCルータで比較 l  FPGAシステムにDMRプロセッサを実装 •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4 •  ちゃんと作ったFPGAシステムを使っているよ!! l  各種パターンを評価 •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離) •  パターンによるシンプルな配置で性能と信頼性が両立できそう •  DMR実行のオーバーヘッドをタスク配置の良さでカバー2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 4
  5. 5. 背景: メニーコア Intel Single Chip Cloud Computer 48 cores (x86) TILERA TILE-Gx100 100 cores (MIPS)2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 5
  6. 6. メニーコアの信頼性 n  微細化により多くのトランジスタ n  それに伴う心配点 l  ソフトエラー耐性 •  宇宙線などがプロセッサをヒット l  タイミングエラーの増加 •  トランジスタのばらつきの増加によるタイミング違反 信頼性の高いプロセッサを作るには どうすればいいのだろう?2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 6
  7. 7. SmartCoreシステム: 高機能ルータ支援によるDMR実行機構 n  高機能ルータ: Normal Communication (VC0) (1) パケットのコピー Merge Communication (VC1) (2) 待ち合わせ Copy Communication (VC2) (3) 比較 Master A の機能を持つルータ PE PE PE R R R n  2つのPEが同一スレッドを実行 Slave A ルータでパケットの出力系列を PE PE PE 比較し誤りを検出 R R R l  マスターノード: Master B Slave B 本来スレッドを実行するノード PE PE PE l  スレーブノード: DMR用に割り当てられたノード R R R2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 7
  8. 8. (1)スレーブノードへのパケットのコピー n  マスターノードへのパケットをスレーブノードへコピー l  マスターとスレーブは同一の論理IDを共有 l  すべてのパケットはまずマスターノードへ届く l  ペアで同一のパケット列を受信することにより 同一の処理を継続する Master Slave PE PE P P R R2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 8
  9. 9. パケットの(2)待ち合わせと(3)比較 n  スレーブノードが出力するパケットはマスターノードへ フォワード n  マスターノード側で2つのパケット列を待ち合わせし, 先頭フリットから順次比較 l  内容に差異がある場合には,エラーとして通知し,適切に処理 Master P Slave PE PE P R R2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 9
  10. 10. DMR実行を支援する高機能ルータ Node Type Pair ID Arbiter N N E E S S XBAR W W (c) Comparator CMP (b) ID Translator ID C Trans C (a) Copy Buffer ID Trans (b) ID Translator2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 10
  11. 11. DMR実行を支援する高機能ルータ Node Type Pair ID Arbiter N N E E S S XBAR W W (c) Comparator CMP (b) ID Translator ID C Trans C (a) Copy Buffer ID Trans (b) ID Translator2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 11
  12. 12. ベースアーキテクチャ: M-Core [6] n  2Dメッシュネットワークを持つタイルアーキテクチャ l  キャッシュなし・各ノードがスクラッチパッドを持つ l  プログラミング: DMAベース (コア間・メモリ) Local Memory Core DMAC R Node DRAM Controller DRAM Controller [6] 植原ら,メニーコアプロセッサの研究・教育を支援する実用的な基盤環境, IEICE Trans.D (2010)2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 12
  13. 13. メニーコア上でのタスク配置 n  タスクの置き方で性能は異なる: 数%∼十数% l  通信の衝突量・レイテンシが変化するため n  RMAP: 2Dメッシュ向けタスク配置手法[3] l  通信衝突を削減することで性能向上 l  各タスクを互い違いに・Nルーク問題の解の重ね合わせに配置 A A A A B B B B A B C D A B C D A A A A B B B B B C D A B C D A A A A A B B B B C D A B C D A B A A A A B B B B D A B C D A B C C C C C D D D D A B C D A B C D C C C C D D D D B C D A B C D A C C C C D D D D C D A B C D A B C C C C D D D D D A B C D A B C Normal Allocation (4 Apps) RMAP X4 (4 Apps) [3]佐野ら:メニーコアプロセッサのための通信衝突に着目したタスク配置手法, IPSJ-ACS Vol.4 No.4 (2011)2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 13
  14. 14. DMR実行時の複数アプリの配置 n  スレッド間の通信に加えてDMRペア内の通信が加わる l  冗長実行ペアの配置を考慮する必要あり n  DMRペアは近い方がいい?遠い方がいい? l  近い方が性能は良さそう l  遠い方が空間冗長性の観点では良さそう App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) (1,1) (2,1) (3,1) (4,1) (1,1) (2,1) (3,1) (4,1) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) (1,1) (2,1) (3,1) (4,1) (1,1) (2,1) (3,1) (4,1) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave M1 M2 M1 M22012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 14
  15. 15. 本発表の目標 n  いろいろなタスク配置を試してみて DMR実行に「良い」タスク配置手法を考える n  「良い」とは? l  高性能 •  通信のコンテンションは少ない方がいい •  通信レイテンシ・通信ホップ数は短い方がいい •  特にDMRペア間は頻繁に通信する 近づけて配置したい l  高信頼 •  DMR実行のペアノードを近くに置くと 同一原因で故障モードに入ったりしそう 離して配置したい 両立できるポイントを探る!2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 15
  16. 16. 今回の登場選手 n  アプリケーション2種を同時に配置・実行 l  Bitonic Sort: 通信 多,通信衝突 多 l  Matrix Multiply: 通信 中,通信衝突 中 n  7つのパターンで性能を測定 l  “DMRペア間距離 = 1” の配置 3種 •  Separate X •  Interleave •  RMAP l  “DMRペア間距離 > 1” の配置 4種 •  Block •  Interleave ROT •  Interleave ROTx2 •  RMAP ROT2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 16
  17. 17. App1 (1,1) App1 (1,1) App1 (2,1) App1 (2,1) App1 (3,1) App1 (3,1) App1 (4,1) App1 (4,1) Separate XMaster Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2)Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3)Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4)Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1)Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2)Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3)Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4)Master Slave Master Slave Master Slave Master Slave ペア間距離 = 1M1 M2 17
  18. 18. App1 (1,1) App1 (1,1) App1 (2,1) App1 (2,1) App1 (3,1) App1 (3,1) App1 (4,1) App1 (4,1) InterleaveMaster Slave Master Slave Master Slave Master Slave (1,1) (2,1) (3,1) (4,1) App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1)Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2)Master Slave Master Slave Master Slave Master Slave (1,2) (2,2) (3,2) (4,2) App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2)Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3)Master Slave Master Slave Master Slave Master Slave (1,3) (2,3) (3,3) (4,3) App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3)Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4)Master Slave Master Slave Master Slave Master Slave (1,4) (2,4) (3,4) (4,4) App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4)Master Slave Master Slave Master Slave Master Slave ペア間距離 = 1M1 M2 18
  19. 19. (1,1) (2,1) (1,2) (2,2) (3,1) (4,1) (3,2) (4,2) App1 App2 App1 App2 App1 App2 App1 App2 RMAP (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1)Master Slave Slave Master Master Slave Slave MasterApp1 App2 App1 App2 App1 App2 App1 App2(1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1)Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2)Master Slave Slave Master Master Slave Slave MasterApp2 App1 App2 App1 App2 App1 App2 App1(1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2)Slave Master Master Slave Slave Master Master Slave App1 App2 App1 App2 App1 App2 App1 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3)Master Slave Slave Master Master Slave Slave MasterApp1 App2 App1 App2 App1 App2 App1 App2(1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3)Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4)Master Slave Slave Master Master Slave Slave MasterApp2 App1 App2 App1 App2 App1 App2 App1(1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4)Slave Master Master Slave Slave Master Master Slave (1,3) (2,3) (1,4) (2,4) (3,3) (4,3) (3,4) (4,4) ペア間距離 = 1 M1 M2 19
  20. 20. App1 (1,1) App1 (2,1) App1 (3,1) App1 (4,1) App1 (1,1) App1 (2,1) App1 (3,1) App1 (4,1) BlockMaster Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2)Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3)Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4)Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (2,1) (3,1) (4,1) (1,1) (2,1) (3,1) (4,1)Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2)Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3)Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4)Master Master Master Master Slave Slave Slave Slave ペア間距離 = 4M1 M2 20
  21. 21. App1 (1,1) App1 (1,3) App1 (2,1) App1 (2,3) App1 (3,1) App1 (3,3) App1 (4,1) App1 (4,3) Interleave ROTMaster Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (2,1) (3,1) (4,1) (1,1) (1,3) (2,1) (2,3) (3,1) (3,3) (4,1) (4,3) SlaveMaster Slave Master Slave Master Slave Master Slave (1,3) (2,3) (3,3) (4,3) App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,4) (2,2) (2,4) (3,2) (3,4) (4,2) (4,4)Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (2,2) (3,2) (4,2) (1,2) (1,4) (2,2) (2,4) (3,2) (3,4) (4,2) (4,4) SlaveMaster Slave Master Slave Master Slave Master Slave (1,4) (2,4) (3,4) (4,4) App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,1) (2,3) (2,1) (3,3) (3,1) (4,3) (4,1)Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (2,3) (3,3) (4,3) (1,3) (1,1) (2,3) (2,1) (3,3) (3,1) (4,3) (4,1) SlaveMaster Slave Master Slave Master Slave Master Slave (1,1) (2,1) (3,1) (4,1) App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,2) (2,4) (2,2) (3,4) (3,2) (4,4) (4,2)Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 (1,4) (2,4) (3,4) (4,4) App2 App2 App2 App2 (1,4) (1,2) (2,4) (2,2) (3,4) (3,2) (4,4) (4,2) SlaveMaster Slave Master Slave Master Slave Master Slave (1,2) (2,2) (3,2) (4,2) ペア間距離 = 5M1 M2 21
  22. 22. App1 (1,1) App1 (3,3) App1 (2,1) App1 (4,3) App1 (3,1) App1 (1,3) App1 (4,1) App1 (2,3) Interleave ROTx2Master Slave Master Slave Master Slave Master Slave Master (1,1) (2,1) (3,1) (4,1) App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (3,3) (2,1) (4,3) (3,1) (1,3) (4,1) (2,3) SlaveMaster Slave Master Slave Master Slave Master Slave (3,3) (4,3) (1,3) (2,3) App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (3,4) (2,2) (4,4) (3,2) (1,4) (4,2) (2,4)Master Slave Master Slave Master Slave Master Slave Master (1,2) (2,2) (3,2) (4,2) App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (3,4) (2,2) (4,4) (3,2) (1,4) (4,2) (2,4) SlaveMaster Slave Master Slave Master Slave Master Slave (3,4) (4,4) (1,4) (2,4) App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (3,1) (2,3) (4,1) (3,3) (1,1) (4,3) (2,1)Master Slave Master Slave Master Slave Master Slave Master (1,3) (2,3) (3,3) (4,3) App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (3,1) (2,3) (4,1) (3,3) (1,1) (4,3) (2,1) SlaveMaster Slave Master Slave Master Slave Master Slave (3,1) (4,1) (1,1) (2,1) App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (3,2) (2,4) (4,2) (3,4) (1,2) (4,4) (2,2)Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (2,4) (3,4) (4,4) (1,4) (3,2) (2,4) (4,2) (3,4) (1,2) (4,4) (2,2) SlaveMaster Slave Master Slave Master Slave Master Slave (4,2) (3,2) (1,2) (2,2) ペア間距離 = 8M1 M1 22
  23. 23. Master (1,1) (2,1) (1,2) (2,2) Master (3,1) (4,1) (3,2) (4,2) Slave (3,3) (4,3) (4,3) (4,4) Slave (1,3) (2,3) (1,4) (2,4) RMAP ROT App1 App2 App1 App2 App1 App2 App1 App2 (1,1) (3,3) (4,3) (2,1) (3,1) (1,3) (2,3) (4,1)Master Slave Slave Master Master Slave Slave MasterApp1 App2 App1 App2 App1 App2 App1 App2(3,3) (1,1) (2,1) (4,3) (1,3) (3,1) (4,1) (2,3)Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,2) (3,4) (4,4) (2,2) (3,2) (1,4) (2,4) (4,2)Master Slave Slave Master Master Slave Slave MasterApp2 App1 App2 App1 App2 App1 App2 App1(3,4) (1,2) (2,2) (4,4) (1,4) (3,2) (4,2) (2,4)Slave Master Master Slave Slave Master Master Slave App1 App2 App1 App2 App1 App2 App1 App2 (1,3) (3,1) (4,1) (2,3) (3,3) (1,1) (2,1) (4,3)Master Slave Slave Master Master Slave Slave MasterApp1 App2 App1 App2 App1 App2 App1 App2(3,1) (1,3) (2,3) (4,1) (1,1) (3,3) (4,3) (2,1)Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,4) (3,2) (4,2) (2,4) (3,4) (1,2) (2,2) (4,4)Master Slave Slave Master Master Slave Slave MasterApp2 App1 App2 App1 App2 App1 App2 App1(3,2) (1,4) (2,4) (4,2) (1,2) (3,4) (4,4) (2,2)Slave Master Master Slave Slave Master Master Slave Master Master (1,3) (2,3) (1,4) (2,4) (3,3) (4,3) (3,4) (4,4)M1 M2 Slave ペア間距離 = 8 Slave (3,1) (4,1) (3,2) (4,2) (1,1) (2,1) (1,2) (2,2) 23
  24. 24. 評価 Target Core n  各種タスク配置パターンの性能を評価 l  ペア間距離と性能の関係を調査 Local Memory •  本稿では ペア間距離   ディペンダビリティ Core DMAC n  セットアップ R l  M-Coreプロセッサ・64ノード (8x8) •  Core: MIPS32 ISA, Single-issue, 5-stage, In-order •  DMR Router: 4-stage (NRC/VA, SA, ST, LT), 32-bit Width 3-VC (Normal, Copy, Merge), 4-FIFO Depth Credit-base Flow Control, XY-DOR l  アプリケーション2種を同時に実行 •  Bitonic Sort: 通信トラフィック多・通信コンテンション多 •  Matrix Multiply: 通信トラフィック中・通信コンテンション中 •  おおよそ350Mサイクル中にBSを3回・MMを4回ずつ繰り返し実行2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 24
  25. 25. Target Core 評価環境: ScalableCoreシステム[8,9] Core Local Memory DMAC n  複数FPGAを用いたメニーコアシミュレータ R l  Verilog HDLでDMRプロセッサを記述・実装 System Functions DRAM Controller DRAM Controller[8] Shinya Takamaeda-Yamazaki, et al. ScalableCore System: A Scalable Many-core Simulator by Employing over 100 FPGAs, IS-ARC 2012[9] 高前田ら,メニーコアアーキテクチャのHW評価環境ScalableCoreシステム, IPSJ-ACS Vol.4 No.1 (2011)2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 25
  26. 26. 評価: DMRなし場合の性能 n  アプリ特徴が現れた結果 l  Bitonic Sort •  通信衝突が回避できるRMAPで性能向上 l  Matrix Multiply •  ノード間距離大きいRMAPでは通信レイテンシが増加し性能低下 Bitonic Sort (衝突 多) Matrix Multiply (衝突 中) 1.20% 0.00% 1.02% Interleave RMAP Block Performance Improvement Performance Improvement 1.00% -0.20% -0.03% 0.80% -0.40% 0.60% -0.44% -0.60% 0.40% -0.80% 0.20% 0.00% 0.00% -1.00% -0.96% Interleave RMAP Block -0.20% -0.10% -1.20%2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 26
  27. 27. 評価: Bitonic Sort (DMRあり) n  ペア間距離が大きい配置でも少ない性能低下 l  ペア間距離が大きいRMAP ROTが健闘 •  衝突を削減することにより性能低下を抑制 •  ペア間距離が大きいのでディペンダブル Separate Interleave RMAP Block Interleave ROT Interleave ROTx2 RMAP ROT 1.00% 0.00% Performance Improvement RMAP 0 1 2 3 4 5 6 7 8 9 -1.00% Interleave Separate -2.00% RMAP ROT -3.00% -4.00% Interleave ROT -5.00% Block Interleave -6.00% ROTx2 Pair Distance2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 27
  28. 28. 評価: Matrix Multiply (DMRあり) n  ペア間距離が大きくなる配置は性能低下 l  RMAP ROTのように衝突を削減する配置でも レイテンシ増加により性能低下 l  Blockが健闘: 衝突が少ないマスターをまとめて配置しても平気 Separate Interleave RMAP Block Interleave ROT Interleave ROTx2 RMAP ROT 0.00% 0 1 Separate RMAP 2 3 4 5 6 7 8 9 -0.50% Interleave Performance Improvement Block -1.00% -1.50% -2.00% -2.50% -3.00% Interleave ROT -3.50% RMAP ROT -4.00% Interleave -4.50% ROTx2 Pair Distance2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 28
  29. 29. 考察 n  通信衝突の多いアプリと通信衝突の少ないアプリでは 適した配置方法が異なる l  衝突が多いアプリ: バンド幅重視の配置が有利 (RMAP ROT) l  衝突が少ないアプリ: マスター間のレイテンシ重視の配置が有利 (Block) n  単一の配置ポリシーでは信頼性と性能の両立はできない l  アプリ特性に応じて混ぜ方を変える必要がありそう2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 29
  30. 30. まとめ n  NoCルータの支援によりDMR(二重冗長)実行をする メニーコアにおける良いタスク配置手法 (を考える) l  SmartCoreシステム: 2つのコアがペアを形成し 同一スレッドを実行・実行結果をNoCルータで比較 l  FPGAシステムにDMRプロセッサを実装 •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4 •  ちゃんと作ったFPGAシステムを使っているよ!! l  各種パターンを評価 •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離) •  パターンによるシンプルな配置で性能と信頼性が両立できそう •  DMR実行のオーバーヘッドをタスク配置の良さでカバー l  今後の課題: アプリ特性に応じた配置方法を切り替え2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 30

×