スライド 1 - Matsutani Lab | Department of Information

CMP における
オンチップルータのランタイム
パワーゲーティングの評価
松谷 宏紀 (東大)
鯉渕 道紘 (NII)
中村 宏 (東大)
天野 英晴 (慶大)
Number of PEs (caches are not included)
最近のマルチコア・メニーコア
picoChip PC102
256
picoChip PC205
ClearSpeed CSX700
128
64
Intel 80-core
TILERA TILE64
ClearSpeed CSX600
32
MIT RAW
16
UT TRIPS (OPN)
STI Cell BE
8
Sun T1
4
2
Sun T2
Intel Core, IBM PowerX
AMD Opteron
2002
2004
2006
2008
2010?
Number of PEs (caches are not included)
最近のマルチコア・メニーコア
picoChip PC102
256
picoChip PC205
ClearSpeed CSX700
シンプルな PE を大量に接続
128
64
Intel 80-core
TILERA TILE64
ClearSpeed CSX600
Target
32
MIT RAW
16
UT TRIPS (OPN)
STI Cell BE
8
Sun T1
4
2
高性能 CPU を複数接続
Sun T2
Intel Core, IBM PowerX
AMD Opteron
2002
2004
2006
2008
2010?
共有メモリ型 CMP: NUCA 型キャッシュ
• 8-CPU CMP の構成例
– プロセッサ (プライベート L1 キャッシュ内蔵)
– 共有 L2 キャッシュ; バンク分割 (non-uniform cache arch)
[Beckmann, MICRO’04]
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB, 4-way)
共有メモリ型 CMP: NUCA 型キャッシュ
• 8-CPU CMP の構成例
– プロセッサ (プライベート L1 キャッシュ内蔵)
– 共有 L2 キャッシュ; バンク分割 (non-uniform cache arch)
– プロセッサと L2 バンクの結合  オンチップネットワーク
[Beckmann, MICRO’04]
最近,ほぼすべての用途において低消費電力化が必須
プロセッサやキャッシュの低消費電力化は当たり前
オンチップルータの低消費電力化が重要
UltraSPARC
オンチップルータは,通信が無ければ動作を止められる
L1キャッシュ (I & D)
(各 16kB)
本研究では CMP 向け NoC のスタンバイ電力を削減
L2キャッシュバンク
(各 256kB, 4-way)
オンチップルータ
発表の流れ: CMP 用 NoC のランタイムPG
• 共有メモリ型 CMP
• オンチップルータのパワーゲーティング
– 入力バッファ
NEW– クロスバスイッチ
NEW– 出力ラッチ
細粒度なランタイム
パワーゲーティング
• ウェイクアップ遅延の隠蔽
– 遅延の見積もり
– ウェイクアップ遅延の隠蔽方式
• シミュレーション結果
– ウェイクアップ遅延の影響
– リーク電力の削減量
オンチップルータ: パワーゲーティング粒度
パケットが来たら電源 ON
通過したら OFF
出力チャネル
入力チャネル
ARBITER
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
CORE
FIFO
5x5
CROSSBAR
CORE
オンチップルータ: パワーゲーティング粒度
• 粗粒度なアプローチ
– ルータ丸ごと
PGのチャンスが少ない
• 細粒度なアプローチ
– 入力バッファ (VC 単位)
– クロスバ, 出力ラッチ
ARBITER
X+
X+
X-
X-
Y+
Y+
Y-
Y-
CORE
5x5
CROSSBAR
CORE
細粒度パワーゲーティングによって,ルータのリークの88.4%をカバー
オンチップルータ: 細粒度 PG の動作
• 粗粒度なアプローチ
– ルータ丸ごと
PGのチャンスが少ない
• 細粒度なアプローチ
– 入力バッファ
– クロスバ, 出力ラッチ
ARBITER
X+
X+
Packet
X-
X-
Y+
Y+
Y-
Y-
CORE
5x5
CROSSBAR
CORE
オンチップルータ: 細粒度 PG の動作
• 粗粒度なアプローチ
– ルータ丸ごと
PGのチャンスが少ない
• 細粒度なアプローチ
– 入力バッファ
– クロスバ, 出力ラッチ
ARBITER
X+
X+
Packet
X-
X-
Y+
Y+
Y-
Y-
CORE
5x5
CROSSBAR
CORE
オンチップルータ: 細粒度 PG の動作
• 粗粒度なアプローチ
– ルータ丸ごと
PGのチャンスが少ない
• 細粒度なアプローチ
– 入力バッファ
– クロスバ, 出力ラッチ
ARBITER
X+
X+
Packet
X-
X-
Y+
Y+
Y-
Y-
CORE
5x5
CROSSBAR
CORE
使われる部分だけ電源ONすることで,ルータの大部分のリークを削減
発表の流れ: CMP 用 NoC のランタイムPG
• 共有メモリ型 CMP
• オンチップルータのパワーゲーティング
– 入力バッファ
– クロスバスイッチ
– 出力ラッチ
細粒度なランタイム
パワーゲーティング
• ウェイクアップ遅延の隠蔽
– 遅延の見積もり
– ウェイクアップ遅延の隠蔽方式
• シミュレーション結果
– ウェイクアップ遅延の影響
– リーク電力の削減量
ウェイクアップ遅延: 入力バッファPGの例
パケットが来たら電源 ON
通過したら OFF
出力チャネル
入力チャネル
ARBITER
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
CORE
FIFO
5x5
CROSSBAR
CORE
ウェイクアップ遅延: 入力バッファPGの例
パケットが来たら電源 ON
通過したら OFF
ARBITER
X+
X-
VDD
Y+
Y+
FIFO
Y-
GND
5x5
CROSSBAR
CORE
ウェイクアップ遅延: 入力バッファPGの例
パケットが来たら電源 ON
通過したら OFF
細粒度パワーゲーティング
• セルごとに VGND ポートを持つ
• ブロックごとに VGND を共有
• VGND と GND の間にスイッチ
ARBITER
X+
X-
VDD
Y+
VGND
ACTIVE
GND
Y+
Sleep
FIFO
Y-
Switch
5x5
CROSSBAR
CORE
動作再開
ウェイクアップ遅延: 入力バッファPGの例
FIFO
出力[1]
パケットが来たら電源 ON
通過したら OFF
細粒度パワーゲーティング
• セルごとに VGND ポートを持つ
• ブロックごとに VGND を共有
• VGND と GND の間にスイッチ
FIFO
出力[0]
ウェイクアップ&
初期化中
ARBITER
X+
ACTIVE
VDD
Y+
電源ON
Sleep
FIFO
XY+
CLK
YVGND
ACTIVE
5x5
Switch
CROSSBAR
GND
CORE
電源をONしてバッファが動作するまで
4nsec
(クロスバのPGも同じ)
Fujitsu
65nm
CMOS (1.20V, 25C)
ウェイクアップ遅延の影響: 評価環境
• GEMS/Simics シミュレーション環境
– 3サイクルルータ
– ウェイクアップ遅延: 2, 4, 6 cycles
– SPLASH-2 ベンチマーク (8スレッド) radix, lu, fft, barnes,
radiosity, ocean, raytrace,
volrend, water-ns, water-sp,
fmm (計11種類)
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB, 4-way)
オンチップルータ
ウェイクアップ遅延の影響: 評価結果
• SPLASH-2 ベンチ (11個の並列アプリ) の実行時間
2-cycle ウェイク
(500MHz)
4-cycle ウェイク
(1000MHz)
6-cycle ウェイク
(1500MHz)
PG しないときの実行時間 = 1.00
アプリの実行時間が平均 23.5% ~ 77.2% 増加
実行時間の増加はエネルギ増  ウェイクアップ遅延の隠蔽が必須
ウェイクアップ隠蔽: Look-ahead 方式
• 2ホップ先のルータを事前にウェイクアップ
– Look-ahead ルーティングを使用 [松谷,ASPDAC’08]
– 4-cycle のウェイクアップ遅延を隠蔽 (3-cycle ルータの場合)
SRC
DST
Wakeup
Wakeup
2-hop
3-hop
1-hop
4-hop
• 欠点
– 2ホップにまたがるwakeup線
– 1ホップ目をどう事前ウェイク
アップさせるか?
(*) 4x4 mesh の平均ホップ数は 2.67
1ホップのウェイクアップ遅延を隠蔽できない  性能の劣化が激しい
ウェイクアップ隠蔽: Look-ahead 方式
+ CPU ever-on
• 2ホップ先のルータを事前にウェイクアップ
– Look-ahead ルーティングを使用
– 4-cycle のウェイクアップ遅延を隠蔽 (3-cycle ルータの場合)
SRC
DST
Wakeup
Wakeup
Ever-on
1-hop
2-hop
3-hop
4-hop
• CPU ever-on
– CPU からの入力チャネルは
スリープさせない
– 1ホップ目はノーウェイト
(*) 4x4 mesh の平均ホップ数は 2.67
Ever-on チャネルは全体の4.7%  最小コストで遅延を大幅に削減
ウェイクアップ隠蔽: Buffer window 方式
• FIFO バッファの一部を常にON
[Chen,ISLPED’03]
– Window size = 常に On なバッファ量
– Short packet (window size 以下)  ノーウェイト
ARBITER
X+
FIFO
X+
X-
FIFO
X-
Y+
FIFO
Y+
Y-
FIFO
Y-
CORE
FIFO
5x5
CROSSBAR
CORE
ウェイクアップ隠蔽: Buffer window 方式
• FIFO バッファの一部を常にON
[Chen,ISLPED’03]
– Window size = 常に On なバッファ量
– Short packet (window size 以下)  ノーウェイト
ARBITER
X+
Window size = 3
XY+
Y+
YRead
Write
5x5
CROSSBAR
CORE
ウェイクアップ隠蔽: Buffer window 方式
• FIFO バッファの一部を常にON
[Chen,ISLPED’03]
– Window size = 常に On なバッファ量
– Short packet (window size 以下)  ノーウェイト
ARBITER
X+
Window size = 3
XY+
Y+
YRead
Write
5x5
CROSSBAR
CORE
ウェイクアップ隠蔽: Buffer window 方式
• FIFO バッファの一部を常にON
[Chen,ISLPED’03]
– Window size = 常に On なバッファ量
– Short packet (window size 以下)  ノーウェイト
ARBITER
X+
Window size = 3
XY+
Y+
YRead
Write
5x5
CROSSBAR
CORE
ウェイクアップ隠蔽: Buffer window 方式
• FIFO バッファの一部を常にON
[Chen,ISLPED’03]
– Window size = 常に On なバッファ量
– Short packet (window size 以下)  ノーウェイト
ARBITER
X+
Window size = 3
XY+
Y+
YRead
Write
5x5
CROSSBAR
CORE
ウェイクアップ隠蔽: Buffer window 方式
• FIFO バッファの一部を常にON
[Chen,ISLPED’03]
– Window size = 常に On なバッファ量
– Short packet (window size 以下)  ノーウェイト
ARBITER
X+
Window size = 3
XY+
Y+
YRead
5x5
CROSSBAR
CORE
Write
遅延は隠蔽できるが,
window size分PGできないリーク削減量(少)
発表の流れ: CMP 用 NoC のランタイムPG
• 共有メモリ型 CMP
• オンチップルータのパワーゲーティング
– 入力バッファ
– クロスバスイッチ
– 出力ラッチ
細粒度なランタイム
パワーゲーティング
• ウェイクアップ遅延の隠蔽
– 遅延の見積もり
– ウェイクアップ遅延の隠蔽方式
• シミュレーション結果
– ウェイクアップ遅延の影響
– リーク電力の削減量
評価環境: GEMS/Simics シミュレータ
• 8-CPU 共有メモリ型 CMP
radix, lu, fft, barnes,
radiosity, ocean, raytrace,
– Sun Solaris 9; Sun Studio 12
volrend, water-ns, water-sp,
– SPLASH-2 ベンチマーク (8スレッド) fmm (計11種類)
– Token coherence protocol [Martin,ISCA’03]
UltraSPARC
L1キャッシュ (I & D)
(各 16kB)
L2キャッシュバンク
(各 256kB, 4-way)
オンチップルータ
評価環境: オンチップルータ @ 65nm
• データ幅 128-bit; 仮想チャネル数 4; バッファ量 4-flit
VC0: Req (L1L2, L2L1)
VC1: Req(L2Mem, MemL2)
VC2: Rep (AnyL2, L2Any) VC3: Persistent Req (L1Any)
ARBITER
X+
4 VC
X+
X-
4 VC
X-
Y+
4 VC
Y+
Y-
4 VC
Y-
CORE
4 VC
5x5
CROSSBAR
CORE
制御パケット1-flit; データパケット 5-flit (512-bit $ライン+制御情報)
動作再開
ウェイクアップ隠蔽の効果: 評価方法
• ウェイクアップ遅延の隠蔽手法 (3種類)
SRC
DST
Wakeup
SRC
DST
Wakeup
FIFO
出力[1]
Window size = 2
FIFO
出力[0]
ウェイクアップ&
初期化中
Read
Ever-on
Look-ahead 方式
Look-ahead (CPU ever-on)
Write
Buffer window 方式
ACTIVE
• ウェイクアップ遅延の見積り @ Fujitsu 電源ON
65nm process
–
–
–
–
–
ホールドセル挿入
CLK
配置配線 (Astro)
パワースイッチ挿入 (CoolPower)
再配線 (Astro)
CORE
RC 抽出, SPICE シミュレーション
Fujitsu 65nm CMOS (1.20V, 25C)
ウェイクアップ隠蔽の効果: 評価方法
• ウェイクアップ遅延の隠蔽手法 (3種類)
SRC
DST
Wakeup
SRC
DST
Window size = 2
Wakeup
Read
Ever-on
Look-ahead 方式
Look-ahead (CPU ever-on)
Write
Buffer window 方式
• ウェイクアップ遅延の見積り @ Fujitsu 65nm process
–
–
–
–
–
ホールドセル挿入
配置配線 (Astro)
パワースイッチ挿入 (CoolPower)
再配線 (Astro)
RC 抽出, SPICE シミュレーション
電源ONの後
4nsec で動作可能
ウェイクアップ遅延
2, 4, 6 cycles
ウェイクアップ隠蔽の効果: 評価結果
• SPLASH-2 の実行時間 (2-cycleウェイク @ 500MHz)
Look-ahead 方式
Look-ahead 方式
(CPU ever-on)
Buffer window 方式
Naïve 方式の平均実行時間 (+23.5%)
アプリの平均実行時間 23.5% 増  3.1% 増に緩和
ウェイクアップ隠蔽の効果: 評価結果
• SPLASH-2 の実行時間 (4-cycleウェイク @ 1000MHz)
Look-ahead 方式
Look-ahead 方式
(CPU ever-on)
Buffer window 方式
Naïve 方式の平均実行時間 (+47.9%)
アプリの平均実行時間 47.9% 増  6.4% 増に緩和
ウェイクアップ隠蔽の効果: 評価結果
• SPLASH-2 の実行時間 (6-cycleウェイク @ 1500MHz)
Look-ahead 方式
Look-ahead 方式
(CPU ever-on)
Buffer window 方式
Naïve 方式の平均実行時間 (+77.2%)
アプリの平均実行時間 77.2%増 20.8%増 (改善の余地あり)
ルータが 500~1000MHz 動作ならオーバヘッドは高々 3.1~6.4%
ルータの平均リーク電力: 評価方法
• ウェイクアップ遅延の隠蔽手法 (3種類)
SRC
DST
Wakeup
SRC
DST
Window size = 2
Wakeup
Read
Look-ahead 方式
Ever-on
Look-ahead (CPU ever-on)
Write
Buffer window 方式
• パワーゲーティングの対象部位 (3段階)
ARB
入力バッファOnly
ARB
入力バッファ + クロスバ
ARB
入出力バッファ + クロスバ
ルータの平均リーク電力: 評価結果
• 入力バッファだけ PG (4-cycleウェイク)
Look-ahead 方式
Look-ahead 方式
(CPU ever-on)
Buffer window 方式
パワーゲーティング無しのリーク電力 (100%)
入力バッファ PG によって,
アプリ実行時のリーク電力を平均 57.7% 削減
ルータの平均リーク電力: 評価結果
• 入力バッファ PG + クロスバ PG (4-cycleウェイク)
Look-ahead 方式
Look-ahead 方式
(CPU ever-on)
Buffer window 方式
パワーゲーティング無しのリーク電力 (100%)
入力バッファ + クロスバ PG によって,
アプリ実行時のリーク電力を平均 74.1% 削減
ルータの平均リーク電力: 評価結果
• 入力バッファ PG + クロスバ PG + 出力ラッチ PG
Look-ahead 方式
Look-ahead 方式
(CPU ever-on)
Buffer window 方式
パワーゲーティング無しのリーク電力 (100%)
入力バッファ + クロスバ + 出力ラッチPG によって,
アプリ実行時のリーク電力を平均 79.8% 削減
細粒度ランタイムPGによって,アプリ実行時のリーク電力を80%削減
発表のまとめ: CMP用 NoCのランタイムPG
• オンチップルータのパワーゲーティング
–
–
–
–
入力バッファ
細粒度なランタイム
クロスバスイッチ
パワーゲーティング
出力ラッチ
ウェイクアップ遅延は 4nsec 以下
• ウェイクアップ遅延の隠蔽方式
– Look-ahead 方式
– Look-ahead 方式 (CPU ever-on)
– Buffer window 方式
• シミュレーション結果
– 500~1000MHz 動作なら性能オーバヘッドは3.1~6.4%
– アプリ実行時のリーク電力を 79.8% 削減