Document

チップ内ネットワークにおける
Fat H-Tree トポロジの性能評価
松谷 宏紀 (慶大)
鯉渕 道紘 (国情研)
天野 英晴 (慶大)
はじめに
• Network-on-Chip (NoC)
– タイルアーキテクチャ
– 均一なグローバル配線
– パケット転送
タイル(計算コア, ルータ)
1
2
3
4
5
7
– Mesh, Torus
– H-Tree, Fat Tree
– Fat H-Tree
• Fat H-Tree の解析
0
6
• NoC のトポロジ
8
e.g., RAW [Taylor, IEEE Micro’02]
– 性能, 平均ホップ数
– 面積, 配線量
• Fat H-Tree ルーティング
– 3種類提案
– トレードオフを考察
NoC のトポロジ ~Mesh, Torus~
• 2-D Mesh
• 2-D Torus
– RAW [Taylor, IEEE Micro’02]
– aSOC [Liang, IEEE TVLSI’04]
(※)
はルータ,
– NoC [Dally, DAC’01]
– NoC [Marescaux, FPL’02]
は計算コアを表す
NoC のトポロジ ~H-Tree, Fat Tree~
• H-Tree
– SCORE [Caspi, FPL’00]
[Furtek, FPL’04]
– ACM
• Fat Tree
– (上向きp, 下向きq, 階層数
r)
[Andriahantenaina,
– SPIN DATE’03]
(2, 4, 2) の Fat Tree
Fat Tree
程度ではルート付近がボトルネック
(※)は多重度2
はルータ,(p=2)
は計算コアを表す
NoC のトポロジ ~Fat H-Tree の定義~
• Fat H-Tree
[山田, 信学論’06]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
はルータ,
は計算コア
2つのH-Tree を結合
(※)端と端がつながっている (Folding)
はルータ,
は計算コア
NoC のトポロジ ~Fat H-Tree の定義~
• Fat H-Tree
[山田, 信学論’06]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
計算コアとrank 1ルータ
2つのH-Tree を結合
によって Torus が形成
各計算コアは
Red
tree, Black tree にそ
れぞれつながる
(※) 図では rank 2 以上のルータは省略
Fat H-Tree
を2個つなげるだけで,
Torusは計算コア
並の性能
はルータ,は H-Tree
は計算コア
はルータ,
NoC のトポロジ ~FHT の2次元配置~
• Fat H-Tree
[山田, 信学論’06]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2つのH-Tree を結合
トポロジとしては等価
はルータ,
は計算コア
2次元レイアウト後の Fat H-Tree
本発表の流れ
• NoC のトポロジ
– Mesh, Torus, H-Tree
– Fat Tree, Fat H-Tree
• Fat H-Tree ルーティング
– Single Tree (STR)
– Dual Tree (DTR)
– Torus Routing (TOR)
• Fat H-Tree の解析
– 性能, 平均ホップ数
– 面積, 配線量
– ルーティングの Trade-off
Fat H-Tree ルーティング ~STR~
• Single Tree (STR)
– パケットごとに
RedかBlackか選択
Red tree を使う
 6-hop
• Dual Tree (DTR)
– Tree の切替え可
– 仮想チャネルの切替え
[山田, 信学論’06]
• Torus Routing (TOR)
– 計算コアとrank 1ルータ
によるTorusのみ使用
– 仮想チャネルの切替え
Black tree を使う
 4-hop
Fat H-Tree ルーティング ~DTR~
• Single Tree (STR)
– パケットごとに
RedかBlackか選択
最初は Red を使う
• Dual Tree (DTR)
– Tree の切替え可
– 仮想チャネルの切替え
[山田, 信学論’06]
を切替える
•Tree
Torus
Routing (TOR)
ときに
– 計算コアとrank 1ルータ
によるTorusのみ使用
– 仮想チャネルの切替え
途中から Black を使う
Fat H-Tree ルーティング ~TOR~
• Single Tree (STR)
– パケットごとに
RedかBlackか選択
• Dual Tree (DTR)
– Tree の切替え可
– 仮想チャネルの切替え
[山田, 信学論’06]
• Torus Routing (TOR)
– 計算コアとrank 1ルータ
Fat H-Tree の Torus 構造
によるTorusのみ使用
– 仮想チャネルの切替え Rank 2 より上位の  非最短ルーティング
リンクは利用不可
本発表の流れ
• NoC のトポロジ
– Mesh, Torus, H-Tree
– Fat Tree, Fat H-Tree
• Fat H-Tree ルーティング
– Single Tree (STR)
– Dual Tree (DTR)
– Torus Routing (TOR)
• Fat H-Tree の解析
– 性能, 平均ホップ数
– 面積, 配線量
– ルーティングの Trade-off
スループット理想値 ~Channel bisection~
N=n*n N=16
N=64 N=256
Mesh
2n
8
16
32
Torus
4n
16
32
64
HT
4
N / 2(r -1)
4
4
4
8
16
32
FHT 4n + 8
24
40
72
FT
(※) FHTはFat H-Tree,FTは(2,4,r)のFat Tree,
HTはH-Tree
Torus 分 を表す
H-Tree 2個分
• Fat H-Tree
– H-Tree 2個
– コア-ルータ間チャネルによる Torus
Fat H-Tree は Torus より高い Bisection Bandwidth を実現
平均ホップ数
Have
1
 2
H(x,y)

N - N x,yN
• Fat H-Tree
– DTRは最短ルーティング
– STR, TORは非最短
routing
N=16
N=64 N=256
Mesh
DOR
4.67
7.33
12.67
Torus
DOR
4.14
6.06
10.03
HT
tree
3.61
5.43
7.36
FT
tree
3.61
5.43
7.36
FHT
STR
3.20
5.02
6.90
FHT
DTR
3.20
4.84
6.78
FHT
TOR
3.20
5.65
10.83
Fat H-Tree の Dual Tree routing は最も平均ホップ数が小さい
結合網の面積 ~ルータの個数~
• 見積もり
– ルータの個数 ×
(ルータ面積 + NI 面積)
• ルータの個数
N=n*n N=16
N=64 N=256
Mesh
N
16
64
256
Torus
N
16
64
256
HT
qr  1
q -1
5
21
85
6
28
120
10
42
170
FT
FHT
qr - 2r
q- 2
2(qr - 1)
q -1
(※) q は下向きリンク数 q = 4
r は階層数 r  log4 (N)
Fat H-Tree のルータの個数は, Mesh/Torus より少ない
結合網の面積 ~NoC の合成~
• NoC 全体の合成
– 16コア, 64コア
– Design Compiler
– 0.18um プロセス
Buf
• ルータの構造
– 1-flit = 32-bit
– 4段パイプライン
– Wormhole Switching
• NI の構造
– 入力側: 2-flit FIFO
– 出力側: 2-flit FIFO
Fat H-Tree のみ 2-port NI
Buf
Input Ports
Crossbar
使用した Wormhole ルータ
[松谷, SACSIS’06]
結合網の面積 ~合成結果 (16/64コア)~
16 コアの
合成結果
64 コアの
合成結果
Fat H-Tree は NI の面積(大). それでも Mesh より総面積は小さい
配線量 ~隣接コア間距離を 1-Unit~
• 総 Unit 長
– 計算コア⇔ルータ間
– ルータ⇔ルータ間
合計で何Unitか?
1-Unit 長
1-Unit = 隣接コア間距離
N=n*n
N=16 N=64 N=256
Mesh 2(N-n)+N
40
176
736
Torus 4(N-n)+N
64
288
1,216
HT
2r - 1
2N( r )
2
24
112
480
FT
r・N
32
192
1,024
FHT
2r -1 - 1
8N( r -1 )
2
64
384
1,792
(※) r はツリーの階層数. r  log4 (N)
1-Unit 長
配線量 ~何mmになるか?~
• 2つのシナリオ
– 16コア (1-Unit = 3mm)
– 64コア (1-Unit = 1.5mm)
1-Unit = 3mm
12mm角のチップ, データ幅は32-bit
Mesh
N=16
占有率
7,680
(2.31%)
N=64
占有率
12mm
16,896 (4.69%)
Torus 12,288 (3.41%) 27,648 (7.68%)
HT
4,608
(1.28%)
10,752 (2.99%)
FT
6,144
(1.70%)
18,432 (5.12%)
FHT
1-Unit = 1.5mm
12,288 (3.41%) 36,864 (10.24%
)
(※)Fat
占有率は,
0.18um
2層分の配線資源に占める割合(%)
H-Tree
の配線長は長いが,
0.18um 2層分の配線で実装可
性能評価 ~シミュレーション環境~
• フリットレベル-シミュレータ
– スループットを測定
– 16コア, 64コア
• トポロジ (ルーティング)
– Mesh, Torus (DOR)
– H-Tree, Fat Tree (tree)
– Fat H-Tree (DTR,TOR)
パケットサイズ
16 flit (1 flit ヘッダ)
バッファサイズ
1 flit 分
パケット転送方式 Wormhole方式
パケット転送時間 3 cycle / 1 hop
• 通信パターン
–
–
–
–
–
–
Uniform
BT.W
SP.W
CG.W
MG.W
IS.W
NAS Parallel
Benchmark
評価結果 ~Uniform (16コア)~
• スループットを比較
–
–
–
–
FHT (DTR) ・・・ 全リンク(ルートを含む)を使って最短ルーティング
FHT (TOR) ・・・ 下位リンク(Torus)のみを利用する非最短ルーティング
Mesh
Torus
FHT(DTR) はルート付近
が混雑し性能(減)
FHT(TOR) は
Torus 並
性能は Torus > FHT(TOR) > FHT(DTR) > Mesh の順
評価結果 ~BTトラフィック (16/64コア)~
• スループットを比較
– FHT (DTR) ・・・ 全リンク(ルートを含む)を使って最短ルーティング
– FHT (TOR) ・・・ 下位リンク(Torus)のみを利用する非最短ルーティング
BTトラフィック (16コア)
BTトラフィック (64コア)
BTは隣接間通信が多く FHT(DTR) が有利 (ルート付近混雑しな
評価結果 ~ISトラフィック (16/64コア)~
• スループットを比較
– FHT (DTR) ・・・ 全リンク(ルートを含む)を使って最短ルーティング
– FHT (TOR) ・・・ 下位リンク(Torus)のみを利用する非最短ルーティング
ISトラフィック (16コア)
ISトラフィック (64コア)
All-to-all を含む IS では FHT(DTR) 不利 (ルート付近で混雑する)
まとめ ~Fat H-Tree の性能評価~
Mesh
Torus
FHT
性能
△
○
○
ホップ数
面積
配線量
×
×
△
×
×
△/×
○
×
×
FT
HT
△/×
×
Torus 並の性能
Mesh
△ より少ない面積
△
△
○
△
○
0.18umプロセス2層
分の配線で実装可
(※) FHTはFat H-Tree, FTは(2,4,r)のFat Tree, HTはH-Tree
を表す
• 今後の課題
– 消費電力に関する考察
– 積層チップ向けに
Fat H-Tree を 3-D 化
Stacked
Fat H-Tree
H-Tree NoC
H-Tree NoC