• 検索結果がありません。

計算機アーキテクチャ特論 後半第2回 アウトオブオーダー実行 Out-of-Order Execution

N/A
N/A
Protected

Academic year: 2021

シェア "計算機アーキテクチャ特論 後半第2回 アウトオブオーダー実行 Out-of-Order Execution"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

計算機アーキテクチャ特論

後半第6回

NoC

Network on Chip

講師 加藤真平

本資料は授業用です。無断で転載することを禁じます。

(2)

前回の理解度クイズ

問1

NVIDIA GPUにおけるグリッド、ブロック、スレッドの関係

を簡潔に述べよ。

答え

GPUアーキテクチャの差異を吸収する抽象概念

グリッド:複数のブロックの集合

ブロック:複数のスレッドの集合

スレッド:実行の最小単位

(3)

前回の理解度クイズ

問2

NVIDIA GPUにおけるワープの役割を簡潔に述べよ。

答え

マルチスレッディングにおけるスレッドのグループ。

32個のスレッドをひとまとめにしたものをワープと呼ぶ。

ワープ単位で実行するスレッドを切り替えることで、1つ

1つのスレッドを切り替える場合に比べてオーバヘッドを

削減できる。

(4)

前回の理解度クイズ

問3

NVIDIA GPUの実行手順が正しくなるように以下

を並べ替えよ。

① GPU上で計算

② CPUからGPUにプログラムコードをコピー

③ GPUからCPUに計算結果をコピー

④ CPUからGPUに入力データをコピー

⑤ GPUコンテキストの生成

答え

⑤ ② ④ ① ③

または ⑤ ④ ② ① ③

(5)

前回の理解度クイズ

問4

NVIDIA GPUを制御するうえでGPUコマンド送信に

使用するIndirect Bufferの役割を簡潔に述べよ

答え

Indirect Bufferは64ビットのパケットを格納しており、各

パケットは実際のGPUコマンドが格納されているメモリ領

域のオフセットとサイズに関する情報を持っている。GPU

はこのIndirect Bufferを読むことでGPUコマンドが格納さ

れている場所からそのサイズ分DMA転送を行うことが

できるようになる。

(6)

今日の講義

• Network on Chip (NoC)

• 理解度クイズ

(7)

メニーコア

NVIDIA/GPU

INTEL/MIC

X86 Vec L2 Cache X86 Vec L2 Cache X86 Vec L2 Cache Interprocessor Network

Memory & I/O Interface

Main Memory CPU L1 Cache L2 Cache L1 Cache L1 Cache L1 L1 L1 L1 L1 L1 L1 Video Memory Main Memory CPU

(8)
(9)
(10)

Network on Chip

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

Router

(11)

ここからは慶應義塾大学

(12)

はじめに:

マルチコア化への流れ

• 半導体技術の進歩

– 複数の計算コアを集積可

– 消費電力の増加

• マルチコア化

– コア数を増やす (2~80コ

ア)

– 動作周波数は低く抑える

– 並列化でスループットを稼ぐ

• マルチコアの例

– STI Cell BE

– Sun T1(Niagara)

動作周波数の向上は頭打ち [Pham, ISSCC’05] [Kongetira, micro’05] Ring buses PPE SPE

Cell BE (PPE 1個, SPE 8 個) SPE SPE SPE SPE SPE SPE SPE Sun T1(コア8個,各コア4スレッド) Core Core Core Core Core Core Core Core L2 $ L2 $ L2 $ L2 $ Crossbar SW

(13)

• オンチップバス

– ARM AMBA

– IBM CoreConnect

• Network-on-Chip (NoC)

– ネットワーク状に接続

– パケットスイッチング

コアの接続方式:

バス vs. ネットワーク

Core Core Core Core

On-chip bus 2-D mesh network Router Core [Dally,DAC’01] [Benini,Computer’02]

シンプル, 面積が小さい

×

コア数が増えるとボトルネック

オンチップバスに代わる結合網として Network-on-Chip(NoC)が注目

占有

パケットの構造

Header flit Body flits Dst

(14)

Network-on-Chips の応用

小規模 System-on-Chip 組込マルチメディア処理 ハイパフォーマンス系 オンチップバスの置換え コア数を増やして電圧低減 科学技術演算向け 高スループット化,低遅延化 消費電力の削減 面積コストの削減 MuCCRA [天野, ASSCC’07] MEM PE Array Network-on-Chip PE Array

PE Array MIPS core

Intel 80-core chip [Vangal,ISSCC’07]

Single tile MEM router FP MAC FP MAC 80 tiles

(15)

Network-on-Chip の研究分野

Device Level Circuit Level Architecture Level Software Level

• いろいろなアプローチ

– ソフトウェア レベル

– アーキテクチャ レベル

– 回路 レベル

• ネットワークアーキテクチャ

ルーティング,フロー制御 ネットワークトポロジ ルータアーキテクチャ Tree Mesh (Grid) Deadlock-free routing Crossbar FIFO FIFO

Input ports Output ports 3D IC, power gating Topology, routing, router architecture

(16)

NoC のトポロジ:

Mesh & Torus

• 2-D Mesh

• 2-D Torus

– メッシュの2倍の帯域

RAW [Taylor, ISCA’04]

ルータ 計算コア Intel’s 80-core [Vangal, ISSCC’07]

(17)

NoC のトポロジ:

Fat Tree

• Fat Tree (

p

,

q

,

c

)

p: 上位リンクの数

q: 下位リンクの数

c: コアのポート数

Fat Tree (2,4,2) Fat Tree (2,4,1) ルータ 計算コア SPIN [Andriahantenaina,DATE’03] ACM [Furtek, FPL’04] SCORE [Caspi, FPL’00]

(18)

NoC のトポロジ:

その他 (1)

ルータ 計算コア

• Spidergon

– リング + 対角線上に追加リンク

– Node degree 3; コスト効率が良い

[Bononi, DATE’06]

[Coppola, ISSOC’04]

(19)

NoC のトポロジ:

その他 (2)

Mesh-of-Tree WK-recursive (4,2) ルータ 計算コア

• WK-recursive (d,k)

– d-node の完全グラフ

– 再帰的に k 回結合

• Mesh-of-Tree

– メッシュ状にコアを並べる

– 縦/横方向にツリーで結合

[Vecchia, FCGS’88] [Leighton, Math System

theory’84] [Rahmati,

(20)

最近のオンチップネットワーク

システム名

トポロジ

ルーティング スイッチング フロー制御 MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit UPMC SPIN Fat Tree (32bit) Up*/down* WH, no VC Credit

QuickSilver ACM H-Tree (32bit) Up*/down* 1-flit, no VC Credit

UMass Amherst aSOC

2-D mesh Shortest-path Pipelined CS, no VC

Timeslot

Sun T1 Crossbar (128bit) - - Handshake Cell BE EIB Ring (128bit) Shortest-path Pipelined CS,

no VC Credit TRIPS (operand) 2-D mesh (109bit)

YX DOR 1-flit, no VC On/off

TRIPS (on-chip) 2-D mesh (128bit)

YX DOR WH, 4 VCs Credit

Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM

WH, no VC Stall/go

Intel Teraflops NoC

2-D mesh (32bit) Source

routing

WH, 2 lanes On/off

TILE64 iMesh 2-D mesh (32bit) XY DOR WH, no VC Credit

• ネットワークトポロジのまとめ

– 考慮すべきは, スループット, ルータ面積, 配線量, 配線遅延

– NoC では配線は豊富に使えるが, ルータ面積は小さくしたい

• 実際は 2-D mesh が良く使われる

(21)

On-Chip Network Architecture

Device Level Circuit Level Architecture Level Software Level

• いろいろなアプローチ

– ソフトウェア レベル

– アーキテクチャ レベル

– 回路 レベル

• ネットワークアーキテクチャ

ネットワークトポロジ ルータアーキテクチャ Tree Mesh (Grid) Deadlock-free routing Crossbar FIFO FIFO

Input ports Output ports 3D IC, power gating Topology, routing, router architecture

OS, task scheduling

(22)

ルーティング:

固定型ルーティング

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

例) 次元順ルーティング

X

方向

Y

方向

(23)

ルーティング:

次元順ルーティング (トーラス)

• 次元順ルーティング

– X方向  Y方向

– 仮想チャネルが必要

ルータ 計算コア 2次元トーラス

(24)

ルーティング:

次元順ルーティング (トーラス)

• 次元順ルーティング

– X方向  Y方向

– 仮想チャネルが必要

ルータ 計算コア 2次元トーラス 循環依存(サイクル)が発生  デッドロック バッファを多重化 (仮想チャネル) 循環依存を断ち切る  デッドロックフリー

(25)

ルーティング:

適応型ルーティング

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

例) West-first, Negative-first,

(26)

ルーティング:

West-first routing

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

West-first の禁止ターン NW SW

(27)

ルーティング:

North-last routing

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

North-last の禁止ターン NW NE

(28)

ルーティング:

Negative-first routing

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

Negative-first の禁止ターン NW ES

(29)

ルーティング:

Odd-even turn-model

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

Odd-even (奇数列) の禁止ターン Odd-even (偶数列) の禁止ターン 偶数列か奇数列かによって禁止ターン違う NW SW EN ES

(30)

ルーティング:

Opt-y routing (1/3)

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

NS方向に仮想チャネル0を使う場合 SW NW WS WN

• Fully adaptive routing

– 仮想チャネル (VC)を用い,

任意のターンを許可

– NS方向に VC 2本

(※) 点線のターンは「これ以上 West 方向に進まないとき」のみ許可

(31)

ルーティング:

Opt-y routing (2/3)

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

NS方向に仮想チャネル1を使う場合

• Fully adaptive routing

– 仮想チャネル (VC)を用い,

任意のターンを許可

– NS方向に VC 2本

(※) 点線のターンは「これ以上 West 方向に進まないとき」のみ許可

(32)

ルーティング:

Opt-y routing (3/3)

• 固定型ルーティング

– Source-destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source-destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

– Source-destination 間に

複数の経路

– 混雑に応じて1つを選択

NS方向の仮想チャネル番号切替え

• Fully adaptive routing

– 仮想チャネル (VC)を用い,

任意のターンを許可

– NS方向に VC 2本

(※) 点線のターンは「これ以上 West 方向に進まないとき」のみ許可 N0 N1 N1 N0 S0 S1 S1 S0

(33)

最近のオンチップネットワーク

システム名

トポロジ

ルーティング スイッチング フロー制御 MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit UPMC SPIN Fat Tree (32bit) Up*/down* WH, no VC Credit

QuickSilver ACM H-Tree (32bit) Up*/down* 1-flit, no VC Credit

UMass Amherst aSOC

2-D mesh Shortest-path Pipelined CS, no VC

Timeslot

Sun T1 Crossbar (128bit) - - Handshake Cell BE EIB Ring (128bit) Shortest-path Pipelined CS,

no VC Credit TRIPS (operand) 2-D mesh (109bit)

YX DOR 1-flit, no VC On/off

TRIPS (on-chip) 2-D mesh (128bit)

YX DOR WH, 4 VCs Credit

Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM

WH, no VC Stall/go

Intel Teraflops NoC

2-D mesh (32bit) Source

routing

WH, 2 lanes On/off

TILE64 iMesh 2-D mesh (32bit) XY DOR WH, no VC Credit

• パケットルーティングのまとめ

– NoC では単純な固定型ルーティングが多く使われている

– 非最短経路は消費電力(回路のスイッチング)の増加を招く

• ルーティングはトポロジによって(ある程度)決まる

(34)

パケットスイッチング:

3種類の方法

• Store-and-forward (SAF)

– パケット単位で転送

– 大きなバッファ

– T = D × (Lh + Lb)

• Wormhole (WH)

– フリット単位で転送

– 小さなバッファ

– T = D × Lh + Lb

• Virtual-cut through

– フリット単位で転送

– 大きなバッファ

ホップ数3, パケット長 10-flit で, 1-flit 転送 に1-clock かかるとき, 転送時間の合計は? SAFの場合 3 * (1 + 10) = 33 clock WHの場合 3 * 1 + 10 = 13 clock T=転送時間, D=ホップ数 Lh=ヘッダ長, Lb=ボディ長 R1 R2 R3 R1 R2 R3 … … … … … …

(35)

仮想チャネル(VC)機構

• VC の利点 – 先詰まりの防止

(1車線と2車線の道路の例)

前方で右折したいが先が詰 まってて進めない (怒) 右折レーンを有効活用 この帯域が無 駄になっている

(36)

仮想チャネル(VC)機構

• VC の利点 – 先詰まりの防止

(1車線と2車線の道路の例)

• VC の実装 – 1物理ポートの時分割多重

この帯域が無 駄になっている パケット(a)は先が詰まって進めないので, 先にパケット(b) がクロスバを通過 [Dally,TPDS’92] VC#0 Packet (a) Packet (b) VC#1

(37)

最近のオンチップネットワーク

システム名

トポロジ

ルーティング スイッチング フロー制御 MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit UPMC SPIN Fat Tree (32bit) Up*/down* WH, no VC Credit

QuickSilver ACM H-Tree (32bit) Up*/down* 1-flit, no VC Credit

UMass Amherst aSOC

2-D mesh Shortest-path Pipelined CS, no VC

Timeslot

Sun T1 Crossbar (128bit) - - Handshake Cell BE EIB Ring (128bit) Shortest-path Pipelined CS,

no VC Credit TRIPS (operand) 2-D mesh (109bit)

YX DOR 1-flit, no VC On/off

TRIPS (on-chip) 2-D mesh (128bit)

YX DOR WH, 4 VCs Credit

Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM

WH, no VC Stall/go

Intel Teraflops NoC

2-D mesh (32bit) Source

routing

WH, 2 lanes On/off

TILE64 iMesh 2-D mesh (32bit) XY DOR WH, no VC Credit

• パケットスイッチングのまとめ

– NoC では Wormhole 方式が主流

• Wormhole 方式

– バッファサイズが小さく, 通信遅延が小さい  NoC 向き

(38)

On-Chip Network Architecture

Device Level Circuit Level Architecture Level Software Level

• いろいろなアプローチ

– ソフトウェア レベル

– アーキテクチャ レベル

– 回路 レベル

• ネットワークアーキテクチャ

ネットワークトポロジ ルータアーキテクチャ Tree Mesh (Grid) Deadlock-free routing Crossbar FIFO FIFO

Input ports Output ports 3D IC, power gating Topology, routing, router architecture

OS, task scheduling

(39)

オンチップルータ:

ハードウェア構成

• 5入力5出力の WH ルータ, データ(フリット)幅は 64-bit

5x5 XBAR ARBITER FIFO FIFO FIFO FIFO FIFO X+ X- Y+ Y- CORE X+ X- Y+ Y- CORE

配置配線後のゲート数は 15~30 [kgates]で, 全体の6割が FIFO

1ポート当り複数の入力バッファ (この図では 2系統) を持つ  仮想チャネル2本

(40)

オンチップルータ:

パイプライン構造

• 衝突しなければ 3 cycle でヘッダがルータを通過

– RC (Routing computation)

– VSA (Virtual channel / switch allocation)

– ST (Switch traversal)

• 例) ルータ(a) からルータ(c) にパケットを転送

RC VSA ST ST ST ST RC VSA ST ST ST ST RC VSA ST ST ST ST

ELAPSED TIME [CYCLE]

1 2 3 4 5 6 7 8 9 10 11 12 @ROUTER A @ROUTER B @ROUTER C

HEAD DATA 1 DATA 2 DATA 3 ヘッダがルータ(a)に注入され, データ3がルータ(c)を通過するまで12サイクル SA SA SA SA SA SA SA SA SA

(41)

オンチップルータ:

Look-ahead 型ルータ

• 衝突しなければ 3 cycle でヘッダがルータを通過

– NRC (Next routing computation)

– VSA (Virtual channel / switch allocation)

– ST (Switch traversal)

NRC VSA ST ST ST ST VSA ST ST ST ST VSA ST ST ST ST

ELAPSED TIME [CYCLE]

1 2 3 4 5 6 7 8 9 10 11 12 @ROUTER A @ROUTER B @ROUTER C

HEAD DATA 1 DATA 2 DATA 3 NRC NRC NRCが終わらなくて も VSAを実行できる NRC: 次ルータのRCを実行 (自ルータのRCは手前のルータに任せる) ルータ(b)の出力ポートはルータ(a)が決め, ルータ(c)の出力ポートはルータ(b)が… SA SA SA SA SA SA SA SA SA

(42)

オンチップルータ:

低遅延ルータ

• 衝突しなければ 2 cycle でヘッダがルータを通過

– NRC + VSA (Next routing computation / switch allocation)

– ST (Switch traversal)

NRC

VSA ST

ELAPSED TIME [CYCLE]

1 2 3 4 5 6 7 8 9 ROUTER A HEAD DATA 1 DATA 2 DATA 3 NRC VSA ST NRC VSA ST ROUTER B ROUTER C NRC と VSA に依存性がないので並列実行できる  2サイクル転送 ヘッダがルータ(a)に注入され, データ3がルータ(c)を通過するまで9サイクル W. Dally, “Principles and Practices of Interconnection Networks” (2004)

(43)

オンチップルルータ:

消費電力の解析

• 90nmで配置配線し, 200MHz でシミュレーション

Total leakage (55.0%) Dynamic

スタンバイ電力の内訳 @ 200MHz

Buffers’ leakage (49.4%) ルータの全ポートのうち, 使われているポートの数 (最大帯域の30%負荷) 5ポートのうち0個のポートが使用中(スタンバイ時)の消費電力 @ 200MHz

• ルータアーキテクチャのまとめ

– 考慮すべきは, 面積(バッファ), パイプライン段数, 消費電力

– パイプライン段数を減らす  通信遅延が減る

• 消費電力の削減が重要

– パケットを転送するときの電力  動作電圧を下げる

– 常に漏れ出す(リーク)電流  電力供給自体を止める

(44)

理解度クイズ・授業アンケート

参照

関連したドキュメント

By this method, the determination of uranium from 7.5 p p m down to 1.5 ppb in materials related to semiconductor memory devices was achieved by Riley [6], who showed

In experiment 3, Figure 8 illustrates the results using the GAC 11, DRLSE 16, and PGBLSE models in the segmentation of malignant breast tumor in an US image.. The GAC model fails

In [12], as a generalization of highest weight vectors, the notion of extremal weight vectors is introduced, and it is shown that the uni- versal module generated by an extremal

[3] Chari, Vyjayanthi, On the fermionic formula and the Kirillov-Reshetikhin conjecture, Int. and Yamada, Y., Remarks on fermionic formula, Contemp. and Tsuboi, Z., Paths, crystals

Abstract We show that the transition matrices between the standard and the canon- ical bases of infinitely many weight subspaces of the higher-level q -deformed Fock spaces are

System Organ Class 器官別大分類 High Level Group Term 高位グループ語 High Level Term 高位語. Preferred

To reconstruct each of the low resolution images, we propose to use a regularizing three- level iterative algorithm, where a Gauss-Newton linearizing scheme (the first level, or

Moreover, by (4.9) one of the last two inequalities must be proper.. We briefly say k-set for a set of cardinality k. Its number of vertices |V | is called the order of H. We say that