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