チップ内ネットワークにおける 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,yN • 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
© Copyright 2024 ExpyDoc