マルチ・スレッド実行を前提とした キャッシュ・リーク削減アルゴリズムの評価 福岡大学 ◎小宮礼子 井上弘士 モシニャガ・ワシリー 九州大学 村上和彰 2004/09/08 1 発表手順 はじめに キャッシュ・リーク削減手法 評価対象手法 マルチ・スレッド実行時の評価 おわりに 2004/09/08 2 はじめに プロセッサの消費電力 =リーク消費電力+動的消費電力 ARM-110 70% プロセッサ中のリーク電力の割合* Power: 43 % キャッシュ・メモリのリーク消費電力削減が必要!! * Fred Pollack (Intel Fellow): New Microarchitecture Challenges in the Coming Generations of CMOS Process Technologies [Micro32] 2004/09/08 3 キャッシュ・リーク削減手法 リーク削減方式 sleepモード (低リーク・低速) 従来方式 awakeモード (高速・高リーク) ある粒度単位でsleepモードとawakeモードを切替える sleepモード領域が増加→リーク削減 sleepモードへのアクセス→ペナルティによる性能低下 将来,参照されないであろう領域をsleepモードへ変更 2004/09/08 4 従来評価 リーク削減手法の分類と定量的評価 分類 いつモードを切替えるか? どの範囲で制御するか? どのようにしてモードを切替えるか? 評価 リーク消費エネルギー削減率 実行時間増加率 2004/09/08 5 従来評価 前提:単一スレッド実行 単一スレッド 1スレッドのみを実行 (ST) マルチ・スレッド 複数スレッドを同時に実行 →スレッドの組合せによりアクセスパタンが変化 (MT) MT実行時にリーク削減手法が有効か? 研究目的 MT実行時のリーク削減手法有効性評価 2004/09/08 6 評価対象(Drowsy Cache) 単一スレッド評価時に最良だったリーク削減手法 いつモードを切替えるか? awake→sleep:将来,参照されない領域を検出 一定サイクル(4Kサイクル)経過後 sleep→awake:将来,参照されるであろう領域を検出 アクセス発生時 どの範囲で制御するか? ライン単位 アクセス どのようにしてモードを切替えるか? アクセス awake sleep 内部状態非破壊方式 2004/09/08 7 評価 ベンチマーク プログラム ZonC 入力 SPARCシミュレータ 抽出 アドレス トレース 128KB,連想度2 ,データL1キャッシュ 実行サイクル トレース 入力 出力 リーク削減率 実行時間 増加率 ベンチマーク:SPEC2000 600万命令実行 SPARC64プロセッサ スレッド数4 (アウト・オブ・オーダ実行) キャッシュ・シミュレータ 性能・リーク消費エネルギーの測定 sleepラインへのアクセス・ペナルティ (SHP = Sleep Hit Penalty) →1~3cycle sleep/awakeモードでの リーク消費エネルギー →0.08 : 1 K.Flautner, “Drowsy Caches: Simple Techniques for Reducing Leakage Power, Proc. of the 29th Int, Symp. on Computer Architecture, pp.148-157, May 2002. 2004/09/08 8 消費エネルギー・モデル LEtotal = CSize × CC × LEbit キャッシュ・サイズ(128K) プログラム実行時間:CC = CCconv + CCextra 削減方法なし 実行時間ペナルティ サイクル当たりのSRAMセルリーク消費エネルギー: LEbit = SR × LEsbit + (1-SR) × LEabit 1bit-sleep-SRAMセル平均リーク消費エネルギー →0.08LEabit キャッシュ内のsleepモード部分の割合 2004/09/08 9 入力ベンチマーク・プログラム Max Min i176.gcc i164.gzip ET f179.art f173.applu f191.fma3d i255.vortex i252.eon i175.vpr i253.perlbmp i254.gap f168.wupwise f200.sixtrack i253.perlbmp i254.gap LE f200.sixtrack i256.bzip2 f188.ammp i186.crafty i255.vortex i197.parser f179.art i176.gcc i181.mcf f178.galgel ET:実行時間増加率 2004/09/08 Mid LE:リーク消費エネルギー削減率 10 SHPがリーク消費エネルギー削減率に与える影響 100 SHP=1 2 3 cycle 90 リーク消費エネルギー削減率(%) 80 70 60 50 40 30 20 10 0 2004/09/08 ET-Max ET-Mid ET-Min LE-Max LE-Mid LE-Min 11 消費エネルギー・モデル LEtotal = CSize × CC × LEbit キャッシュ・サイズ(128K) SHPにより増加!! プログラム実行時間:CC = CCconv + CCextra 削減方法なし 実行時間ペナルティ サイクル当たりのSRAMセルリーク消費エネルギー: LEbit = SR × LEsbit + (1-SR) × LEabit 1bit-sleep-SRAMセル平均リーク消費エネルギー →0.08LEabit キャッシュ内のsleepモード部分の割合 2004/09/08 12 入力ベンチマーク・プログラムの影響 2004/09/08 SHP = 1 SHP = 2 SHP = 3 100 90 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 ET-Max ET-Mid ET-Min LE-Max LE-Mid LE-Min 実行時間増加率(%) リーク消費エネルギー削減率(%) 100 13 消費エネルギー・モデル LEtotal = CSize × CC × LEbit キャッシュ・サイズ(128K) 低減!! プログラム実行時間:CC = CCconv + CCextra 削減方法なし 実行時間ペナルティ サイクル当たりのSRAMセルリーク消費エネルギー: LEbit = SR × LEsbit + (1-SR) × LEabit 1bit-sleep-SRAMセル平均リーク消費エネルギー →0.08LEabit キャッシュ内のsleepモード部分の割合 2004/09/08 14 おわりに まとめ MT実行時のリーク削減手法の有効性を評価 入力ベンチマーク ET-Min SHP 1cycle リーク削減率: 88.2% 実行時間増加率: 1.84% ST実行時に実行時間増加が低いプログラム →高いリーク削減効果 今後の課題 実行時間増加による性能低下を抑える 2004/09/08 15 2004/09/08 16 ZonCプロセッサ・モデル SPARC64プロセッサ トレースドリブン Out-of-order実行方式 ノード数 1 CPU数 1 コア数 1 CPUのクロック周波数 ウォームアップ命令数 測定対象命令数 2004/09/08 1250MHz 3,000,000 6,000,000 17 マルチ・スレッド VMTを使用: 2次キャッシュミスをトリガにしてスレッド切替え 時間 スレッド1 2004/09/08 スレッド2 18 切り替えアルゴリズムの分類 Sleepモードへの切替えアルゴリズム 切替え条件 カウンタ型 (target) 監視期間 条件確認 カウンタ値≦閾値 (ミス数[1],アクセス数) Time-Window[1] 同期[1] カウンタ値≧閾値 (実行サイクル数[3]) Time-Window[3] 同期[3] カウンタ値≧閾値 (ヒット数、非アクセスサイクル[2]) イベント型 Load命令発行[4] [1]DRI [2]Decay T 2004/09/08 Time-Window 同期 非同期 No-Time-Window[2] --- No-Time-Window[4] --- [3]Drowsy [4]Hierarchy 非同期 同期 t Time-Window No-Time-Window 19 切替えタイミング <TW同期型> T <TW非同期型> T <NTW型> 条件確認 利点 判定回数が少ない t モード切替え 監視期間 欠点 モード切替えまでに 時間のロス 条件確認 t モード切替え 監視期間 利点 モード切替えが早い 欠点 常に条件確認が必要 条件確認 利点 モード切替えが早い t モード切替え 監視期間 欠点 実現不可能なアルゴ リズムがある T:Time-Window 条件成立 20 Awakeモードへの切替えアルゴリズム 切替え条件 カウンタ型 (target) 監視期間 条件確認 カウンタ値≦閾値 (ヒット数、非アクセスサイクル) Time-Window 同期 カウンタ値≧閾値 (実行サイクル数) Time-Window 同期 Time-Window [1] カウンタ値≧閾値 (ミス数[1],アクセス数) イベント型 Store命令発行[4] Load/Store命令発行[2 [3]] [1]DRI 2004/09/08 [2]Decay 同期 非同期[1] No-Time-Window --- No-Time-Window [2] [3][4] --- [3]Drowsy [4]Hierarchy 21 比較対象モデルの決定 モデル (sleep-awake) sleepモードへ awakeモードへ 切替条件 監視期間 条件確認 切替条件 監視期間 条件確認 EC-EC EC TW 同期 EC TW 同期 EC-NAC EC TW 同期 NAC TW 同期 EC-S EC TW 同期 S NTW --- EC-LS EC TW 同期 LS NTW --- NAC-EC NAC NTW --- EC TW 同期 NAC-NAC NAC NTW --- NAC TW 同期 NAC-S NAC NTW --- S NTW --- NAC-LS NAC NTW --- LS NTW --- EC: Execution Cycles NAC: No-Access-Cycles S: Store LS: Load/Store (実行サイクル数) 2004/09/08 (非アクセスサイクル数) (Store命令発行) (Load/Store命令発行) 22 モード切替えアルゴリズムの比較 100 LEtotal(SHP=2) Exe.Time(SHP=2) LEtotal(SHP=3) Exe.Time(SHP=3) 100 90 80 80 70 70 60 60 50 50 40 40 30 30 20 20 10 10 0 0 EC-EC EC-NAC EC-S EC-LS NAC-EC NAC-NAC NAC-S NAC-LS 実行時間増加率(%) リーク消費エネルギー削減率(%) 90 LEtotal(SHP=1) Exe.Time(SHP=1) 23
© Copyright 2024 ExpyDoc