Transcript Fat H-Tree

Network-on-Chip における
Fat H-Tree トポロジに関する研究
松谷 宏紀 (慶大)
鯉渕 道紘 (NII)
天野 英晴 (慶大)
Network-on-Chip (NoC) とは?
計算タイル(プロセッサ等)
+ オンチップ・ルータ
• Mesh トポロジ
– 直径が大きい
– スケーラビリティ
(弱)
• Tree トポロジ
– ルート付近が混雑
• Fat H-Tree トポロジ
パケット転送(タイル間通信)
タイルアーキテクチャの実装例
(VDEC/ASPLA/京大 90nm CMOS)
– Tree と Torus の両
方の特徴
– Fat H-Tree
の解析
[松谷, IPDPS’07]
– 3次元レイアウト
[松谷, ARC-1-2007]
NoC のトポロジ:
• 2-D Mesh
Mesh & Torus
• 2-D Torus
RAW [Taylor, IEEE Micro’02]
aSOC [Liang, IEEE TVLSI’04]
[Dally, DAC’01]
– メッシュの2倍の帯域
Fat H-Tree はツリー型トポロジでありながら,
トーラス構造を内包している
ルータ
計算コア
NoC のトポロジ:
• Fat Tree (p, q, c)
p: 上位リンクの数
q: 下位リンクの数
c: コアのポート数
Fat Tree
SPIN [Andriahantenaina,
DATE’03]
SCORE [Caspi, FPL’00]
ACM [Furtek, FPL’04]
Rank-1
Rank-2
Fat Tree (2,4,1)
Fat Tree (2,4,2)
Fat Tree も Fat H-Tree は複数のツリーを持つが,
ルータ
計算コア
複数ツリーのつなぎ方が異なる
発表の流れ
• NoC のトポロジ
– Mesh, Torus
– H-Tree, Fat Tree
• Fat H-Tree の特徴
– 定義
– レイアウト (2次元, 3次元)
– ルーティング (DTR)
• Fat H-Tree の評価
– 結合網の面積
– 消費エネルギー
– スループット
Fat H-Tree: 定義
• Fat H-Tree
[山田, 信学論’06]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2個のH-Tree
(red
& black)
を結合
Red Tree の
1-hop
右斜下の位置に
Black Tree を配置する
Black TreeとRed Treeの位置をずらすことで,
Fat Tree とは異なるトポロジとなる
ルータ
計算コア
ルータ
計算コア
Fat H-Tree: 定義
• Fat H-Tree
[Yamada, EUC’04]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2個のH-Tree (red & black) を結合
Fat H-Tree は Red Tree と Black Tree によって形成
ルータ
計算コア
ルータ
計算コア
Fat H-Tree: 定義
• Fat H-Tree
[Yamada, EUC’04]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2個のH-Tree (red & black) を結合
Fat H-Tree は Red Tree と Black Tree によって形成
ルータ
計算コア
ルータ
計算コア
Fat H-Tree: 定義
• Fat H-Tree
[Yamada, EUC’04]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2個のH-Tree (red & black) を結合
Fat H-Tree は Red Tree と Black Tree によって形成
ルータ
計算コア
ルータ
計算コア
Fat H-Tree: 定義
• Fat H-Tree
[Yamada, EUC’04]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2個のH-Tree (red & black) を結合
計算コアとrank-1ルータ
によってトーラスが形成
各計算コアは
Red
tree, Black tree にそ
れぞれつながる
図では rank-2 以上のルータは省略
Fat H-Tree
を2個つなげるだけでトーラス並の性能
ルータは H-Tree
計算コア
ルータ
計算コア
Fat H-Tree: 2次元レイアウト
• Fat H-Tree
– トーラス構造を内包 端と端をつなぐリンクが非常に長くなる
 畳み込みレイアウト (2次元トーラスと同じ方法)
トポロジとしては等価
ルータ
計算コア
Fat H-Tree の2次元レイアウト
Fat H-Tree: 3次元化のメリット
• 配線遅延, 消費電力の増加
– リピータの挿入  消費電力の増加
• チップの3次元実装
– 複数枚の小さなダイ(またはウェハ)を積層
プレーン間の貫通ビア [Davis,DToC’05]
大きな1枚のプレーン (配線が長い)
小さな4枚のプレーン (配線が短い)
Fat H-Tree: 3次元レイアウト
• Fat H-Tree の4分割
– トーラス構造を内包 (Red Tree & Black Tree)
トーラス構造が保存されるように折り畳む
1. 左右に折り畳む
2. 上下に折り畳む
Fat H-Tree: 3次元レイアウト
• Fat H-Tree の4分割
– トーラス構造を内包 (Red Tree & Black Tree)
トーラス構造が保存されるように折り畳む
1. 左右に折り畳む
2. 上下に折り畳む
Fat H-Tree: 3次元レイアウト
• Fat H-Tree の4分割
– トーラス構造を内包 (Red Tree & Black Tree)
トーラス構造が保存されるように折り畳む
1. 左右に折り畳む
2. 上下に折り畳む
Fat H-Tree: ルーティングアルゴリズム
• 単一ツリーのみの経路
– Red Tree だけ使う, or
– Black Tree だけ使う
Red Tree だけ
 6-hop
Black Tree だけ
 6-hop
Fat H-Tree: ルーティングアルゴリズム
• 単一ツリーのみの経路
– Red Tree だけ使う, or
– Black Tree だけ使う
• 両方のツリーを使う経路
– ツリー間の乗り換え
– 最短経路
両方のツリーを組合せた最短経路
を活用することが性能向上の鍵
最初Red Treeを使う
乗り換え!
その後Black Treeを使う,
トータル 4-hop (最短)
Fat H-Tree: Dual tree routing (DTR)
• Dual tree routing
– ツリー間の乗り換え許可
– ツリー間に循環依存発生
 Deadlock する
• Deadlock 回避法
– Red TreeからBlack Tree
への乗り換え時に,
仮想チャネル番号を +1
VC#0 を使用
乗り換え!
VC#1 を使用
64コアの Fat H-Tree において必要な仮想チャネル数は高々 2本
発表の流れ
• NoC のトポロジ
– Mesh, Torus
– H-Tree, Fat Tree
• Fat H-Tree の特徴
– 定義
– レイアウト (2次元, 3次元)
– ルーティング (DTR)
• Fat H-Tree の評価
– 結合網の面積
– 消費エネルギー
– スループット
スループット理想値: Channel bisection
HT
FT1
FT2
FHT
Mesh
Torus
N  2n  2n N=16
4
4
2n1
8
2n  2
16
2n  2  8
24
2n1
2n  2
N=64
N=256
4
4
16
32
32
64
40
72
8
16
32
16
32
64
Torus
1個Tree(2,4,1)
H-Tree 2個
FT1: Fat
FT2: Fat Tree(2,4,2)
分
分
Fat H-Tree は, 内包するトーラス構造によって大幅に性能向上
結合網の面積: ルータの個数
HT
N  2n  2n N=16
( 4n  1) / 3
5
FT1
(4n  2n ) / 2
6
28
120
FT2
4 n  2n
12
56
240
FHT
2( 4n  1) / 3
10
42
170
N=64
N=256
21
85
Mesh
N
16
64
256
Torus
N
16
64
256
FT1: Fat Tree(2,4,1)
FT2: Fat Tree(2,4,2)
ルータに加え Network Interface (NI) が必要
Fat H-Tree の場合は 2-port の NI が要る
Fat H-Tree のルータ数は Fat Tree(2,4,2) より少ない  面積(小)
結合網の面積: NoC の合成
• ルータと NI の合成
– 16コア, 64コア
– Design Compiler
– 0.18um CMOS
• ルータの構造
– 32-bit Wormhole
– 4段パイプライン
– 仮想チャネル2本
2VCs
Buf
Buf
2VCs
Buf
Buf
Input Ports
Crossbar
使用した Wormhole Router の構造
• NI の構造
– 入力側: 2-flit FIFO
– 出力側: 2-flit FIFO
[松谷, SACSIS’06]
Fat H-Tree の NI はツリー間の転送を行う
 Fat H-Tree の NI は “router” として実装
結合網の面積: 合成結果 (16 / 64コア)
合成結果
(16コア)
Fat H-Tree の NI の
面積は他より大きい
合成結果
(64コア)
Fat H-Tree の NI は大きいが, 総面積は Fat Tree(2,4,2) よりも(小)
配線量: 隣接コア間距離を 1-Unit
• 総 Unit 長
– 計算コア⇔ルータ間
– ルータ ⇔ルータ間
合計で何 Unit か?
1-Unit 長
1-Unit = 隣接コア間距離
HT
FT1
FT2
N  2n  2n N=16
2N (2  1)
24
2
nN
32
2nN
64
n
n
N=64
N=256
112
480
192
1,024
384
2,048
FHT
8N(2n 1  1)
8
2n 1
72
392
1,800
Mesh
2(N  2n )
24
112
480
1-Unit 長
Torus 4(N  2 )
48
224
960
Fat
の配線量はやや長いが,
Fat Tree(2,4,2) と同レベル
FT1:H-Tree
Fat Tree(2,4,1)
FT2: Fat Tree(2,4,2)
n
消費エネルギー: NoCの電力モデル
• フリットエネルギー E flit
– 1-flit を宛先まで送る
– 平均何ジュールかかる?
• シミュレーション環境
– 12mm角チップ (16 / 64コ
ア)
– 0.18um CMOS
• 転送エネルギー
12mm
Eflit  w  Have (Esw  Elink )
[Wang, DATE’05]
Esw
– 1-bit 転送 @ ルータ(NI)
– ルータ回路のゲートレベル
解析 (Power compiler)
for routers
– 1.88 [pJ / hop] for NI
– 1.27 [pJ / hop] for NI(FHT)
– 1.45 [pJ / hop]
• 配線エネルギー
Elink
– 1-bit 転送 @ リンク
消費エネルギー: 評価結果 (16 / 64コア)
シミュレーション結果
(16コア)
シミュレーション結果
(64コア)
Fat H-Tree の消費エネルギーは Fat Tree(2,4,2) より小さい
性能評価: シミュレーション環境
• ネットワークシミュレーション
– スループット vs. 遅延
– 16コア, 64コア
• トポロジ (ルーティング)
– Mesh, Torus (DOR)
– Fat Trees (up/down)
– Fat H-Tree (DTR)
パケットサイズ
16-flit (1-flit header)
バッファサイズ
1-flit per channel
スイッチング
Wormhole switching
仮想チャネル数 2
通信遅延
3-cycle per 1-hop
• トラフィックパターン
–
–
–
–
–
–
Uniform
BT.W
SP.W
CG.W
MG.W
IS.W
NAS Parallel
Benchmark
FHT vs. Fat Tree: Uniform (16 / 64コア)
• Fat H-Tree (FHT)
• Fat Tree(2,4,2)
• Fat Tree(2,4,1)
Uniform (16コア)
FHT (DTR) ではツ
リーのルート付近が混
雑して性能が劣化
Uniform (64コア)
16コアでは FHT は Fat Tree より高い性能, 64コアでは FHT 不利
FHT vs. Fat Tree: BT (16 / 64コア)
• Fat H-Tree (FHT)
• Fat Tree(2,4,2)
• Fat Tree(2,4,1)
BT トラフィック (16コア)
FHT(DTR) でも, ツ
リーのルート付近が混
雑していない
BT トラフィック (64コア)
隣接間通信の多い BT トラフィックでは, FHT は 64コアでも有利
FHT vs. Fat Tree: MG (16 / 64コア)
• Fat H-Tree (FHT)
• Fat Tree(2,4,2)
• Fat Tree(2,4,1)
MG トラフィック (16コア)
MG トラフィック (64コア)
BT同様, MG トラフィックにおいても FHT は Fat Tree よりも高性能
Fat H-Tree のまとめ
• 最短経路ルーティング
– Dual Tree Routing
• VLSI レイアウト
– 2次元レイアウト
– 3次元レイアウト
• Fat H-Tree の評価
–
–
–
–
スループット: Uniform トラフィックを除き Fat Tree より高性能
結合網の面積: Fat Tree (2,4,2) より 20.5%~28.1% 小さい
消費エネルギー: Fat Tree (2,4,2) より 6.7%~7.0% 少ない
総リンク長:
Fat Tree (2,4,2) と同程度