Upload
dick
View
51
Download
0
Embed Size (px)
DESCRIPTION
命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案. 九州 大学 大学院システム 情報科学府* 九州大学大学院システム情報科学研究院* * 上野伸也 * 井上弘士** 村上和彰* *. 発表手順. 研究背景 マルチコア・プロセッサにおける課題 命令フェッチ機構における低消費エネルギー化の重要性 研究の目的 命令フェッチ機構の共有化手法 ベンチマークプログラムを用いた定量的評価 まとめと今後の課題. マルチコア・プロセッサにおける課題. 1 チップ上に複数のコアを搭載したマルチコア・ プロセッサが主流 マルチコア・プロセッサの消費エネルギー削減が重要 - PowerPoint PPT Presentation
Citation preview
1
命令フェッチ機構の共有に基づく低消費エネルギー化手法の提案
九州大学大学院システム情報科学府 * 九州大学大学院システム情報科学研究院 **上野伸也 * 井上弘士 ** 村上和彰 **
2
発表手順
• 研究背景– マルチコア プロセッサにおける課題・– 命令フェッチ機構における低消費エネルギー化の重要性
• 研究の目的• 命令フェッチ機構の共有化手法• ベンチマークプログラムを用いた定量的評価• まとめと今後の課題
3
マルチコア プロセッサにおける・課題
• 1 チップ上に複数のコアを搭載したマルチコア・プロセッサが主流
• マルチコア・プロセッサの消費エネルギー削減が重要– バッテリー駆動機器 →バッテリー駆動時間– サーバ、スーパーコンピュータ →運用コスト
3
ProcessorCore
ProcessorCore
SharedL2 cache
出典: POWER5 system microarchitecture
4
命令フェッチ機構における低消費エネルギー化の重要性
• シングルコア プロセッ・サにおいて、命令フェッチ機構における消費エネルギーは大きい
• マルチコア プロセッサ・においても大きな割合を占める
35%
3%9%
0%2%1%0%7%
9%1%
32%
ICACHEBPREDALURENAMEWINDOWLSQREGFILEDCACHEDCACHE2RESULTBUSCLOCK
FE
ICACHE
RENAM
E
REGALU
WIN
DOW
DCACHE
DCACHE2プロセッサ コ・
ア
BPRED LSQ
FETCH
命令フェッチ機構
プロセッサの消費エネルギー内訳
38%命令フェッチ機構で
約 40% の消費エネルギー
マルチコア プロセッサの・並列処理における問題点
5
………k=0;if() z=x+y;For(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
………k=50;if() z=x+y;For(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
コア0
コア1
k=50;z=x+y;
k=0;
C[k+0]=A[k+0]+B[k+0];D[k+0]=C[k+0]*(k+0);C[k+1]=A[k+1]+B[k+1];D[k+1]=C[k+1]*(k+1);
C[k+0]=A[k+0]+B[k+0];D[k+0]=C[k+0]*(k+0);C[k+1]=A[k+1]+B[k+1];D[k+1]=C[k+1]*(k+1);・・・・・・・・・
・・・・・・・・・
コア 0 が受け取った命令 コア 1 が受け取った命令
一致各プロセッサ・コアにおいてそれぞれ
命令フェッチ機構から命令を受け取るのは冗長
6
研究のねらい
• 着眼点– マルチコア・プロセッサの並列処理中に、命令
フェッチ機構から出力されるデータ内容が一致する場合があることに注目
• 研究の目的– 並列処理における命令フェッチ機構へのアクセ
ス回数削減により低消費エネルギー化⇒ 命令フェッチ機構において最大 20% の消費エ
ネルギー削減効果
7
提案手法の基本概念と動作例MIMD モードコア 1 SIMD モード演算コ
アFETCH FETCH
EXE EXE
コア 0
マルチコア・プロセッサメインコ
アブロードキャ
スト
停止している命令フェッチ機構の消費エネルギー削減
MIMD モード:従来の並列処理方式。全てのコアで命令をフェッチ、実行
SIMD モード:メインコアで命令をフェッチし、各コアへブロードキャスト
MIMD :Multiple Instruction stream , Multiple Data streamSIMD :Single Instruction stream ,Multiple Data stream
………k=50;if() z=x+y;For(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
………k=0;if() z=x+y;For(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
8
提案手法の基本概念と動作例MIMD モードコア 1 SIMD モード演算コ
ア
コア 0 が実行するプログラム
コア 1 が実行するプログラム
FETCH FETCH
EXE EXE
コア 0
マルチコア・プロセッサメインコ
アブロードキャ
スト
停止している命令フェッチ機構の消費エネルギー削減
待機
待機
プログラムカウンタ更新
MIMD モード:従来の並列処理方式。全てのコアで命令をフェッチ、実行SIMD モード:メインコアで命令をフェッチし、各コアへブロードキャスト
MIMD :Multiple Instruction stream , Multiple Data streamSIMD :Single Instruction stream ,Multiple Data stream
命令フェッチ機構の消費エネルギー削減モデル
9
SIMDMIMD
SIMD
MIMD
SIMDFETCH II
IEER
1
SIMD モード時の命令フェッチ機構の消費エネルギー
MIMD モード時の命令フェッチ機構の消費エネルギー
SIMD モードで実行した命令数
総実行命令数小さいほど削減率が高い
プロセッサの構成により決定
大きいほど削減率が高いプログラムの性質によって決定
10
提案方式の評価• 評価内容
– 従来方式: 全て MIMD モードで実行– 提案方式: MIMD モード, SIMD モードを切り替えながら実行
• オンチップ上の消費エネルギーを比較• コア間の通信にかかる消費エネルギーは 0 と仮定
• 評価環境– シミュレータ: 消費電力シミュレータ SIM-WATTCH , CMP シミュ
レータ M5– ベンチマークプログラム: Splash2 から 4 個のプログラムを選択
・・・・・・I$ D$L2
コア 0I$ D$
L2
コア 1I$ D$
L2
コア 7
主記憶
消費エネルギー比較
オンチップ
オフチップ
11
命令フェッチ機構における消費エネルギー削減効果
ベンチマークプログラムOCEAN RADIX WATER-SPATIAL FFT
0%
5%
10%
15%
20%
25%
0.00112712881027154
命令
フェ
ッチ
機構
にお
ける
消費
エネ
ルギ
ー削
減率
OCEAN 、 WATER-SPATIAL において約 20% の削減効果
プロセッサ全体の消費エネルギー削減効果
12
消費
エネ
ルギ
ー削
減率
最大で約 8% の消費エネルギー削減OCEAN RADIX WATER-SPATIAL
0%
1%
2%
3%
4%
5%
6%
7%
8%
9%
13
まとめと今後の課題
• まとめ– 並列処理における命令フェッチ機構の共有による消
費エネルギー削減手法を提案– ベンチマークプログラムを用いた評価では、命令
フェッチ機構において最大 20% ,プロセッサ全体では最大約 8% の消費エネルギー削減効果
• 今後の課題– コア間の通信における消費エネルギーを考慮した評
価– 提案手法における同期回数の増加による性能オー
バーヘッドの評価– ベンチマークプログラムの追加
14
ご清聴ありがとうございました
Back Slide
15
16
性能オーバーヘッド
• 同期回数の増加に伴う実行時間の増加
同期
同期
同期
SIMD
MIMD
MIMD:実行中
:待機状態
時間
提案手法
1 2 3 1 2 3
増加
スレッド番号
従来手法
17
アーキテクチャサポート
Fetch 演算部
CLK
メインコア
PC 1Fetch 演算
部
CLK
MUX1
0
SIMD
PC
1Fetch 演算部
CLKSIMD
MUX1
0
PC 1Fetch 演算
部
CLKSIMD
MUX1
0
PC
REG
SIMD
0→1
18
マルチコア・プロセッサにおける並列処理
………For(i=0~99){ C[i]=A[i]+B[i]; D[i]=C[i]*i;}………
………For(i=0~49){ C[i]=A[i]+B[i]; D[i]=C[i]*i;}………
………For(i=50~99){ C[i]=A[i]+B[i]; D[i]=C[i]*i;}………
プロセッサ・コア 1 が実行するプログラムコード
プロセッサ・コア 2 が実行するプログラムコード
並列化前のプログラムコード 並列化後のプログラムコード
19
制御フローの一致
………For(i=0~49){ C[i]=A[i]+B[i]; D[i]=C[i]*i;}………
………I0:$10=50I1:$11=100I2:load $1I3:load $2I4:$3=$1+$2I5:$4= $3 * $10I6:$10=$10+1I7:if $10<$11JUMP I2………
プロセッサ コア・ 1 が実行するプログラム
………I0:$10=0I1:$11=50I2:load $1I3:load $2I4:$3=$1+$2I5:$4= $3 * $10I6:$10=$10+1I7:if $10<$11JUMP I2………
プロセッサ コア・ 2 が実行するプログラム
………For(i=50~99){ C[i]=A[i]+B[i]; D[i]=C[i]*i;}………
20
冗長な命令キャッシュへのアクセス
PC
ICACHE
I2 0x00112233
PC
ICACHE
I2 0x00112233
プロセッサ・コア 1
プロセッサ・コア 2
PC
ICACHEI3 0x01020304
PC
ICACHE
I3 0x01020304
プロセッサ・コア 1
プロセッサ・コア 2
時刻 t t +1
21
消費エネルギーモデル• 従来手法における消費エネルギー :
–
• 提案手法における消費エネルギー :–
コア間の通信にかかる消費エネルギーは 0 と仮定して評価• 消費エネルギー削減効果 :
–
EMIMD:MIMD モードで 1 命令実行するのにかかる消費エネルギー
ESIMD:MIMD モードで 1 命令実行するのにかかる消費エネルギー
ITOTAL: 総実行命令数 IMIMD : MIMD モードで実行した命令数
ISIMD : MIMD モードで実行した命令数 Ecom: コア間の通信にかかる全消費エネルギーΔEcom:SIMD モード時、 1 命令のブロードキャストにかかる消費エネルギー
comTOTALMIMDORG E+IE=E
comSIMDcomSIMDMIMDMIMDPRO E+I)ΔE+(E+IE=E
TOTAL
SIMD
MIMD
SIMD
ORG
PRO
II)
EE-(1=
EE-1=R
R
ORGE
PROE
22
消費エネルギー削減効果• 命令キャッシュにおける消費エネルギー削減率消費エネルギーは実行命令数に比例すると仮定
–
• プロセッサ全体における消費エネルギー削減率コア間の通信にかかる消費エネルギーは 0 と仮定して評価
–
ITOTAL: 総実行命令数 ISIMD : MIMD モードで実行した命令数 N :コア数
EMIMD:MIMD モードで 1 命令実行するのにかかる消費エネルギー
ESIMD:MIMD モードで 1 命令実行するのにかかる消費エネルギー
TOTAL
SIMD
MIMD
SIMDreduce I
I)EE-(1=R
NN
IIRTOTAL
SIMDIcache
1
シミュレーション環境
23
M5 の設定
24
プロセッサの構成 8 コア・アウトオブオーダ命令発行幅 8
L1 命令キャッシュ サイズ 32KB / ブロックサイズ 64B/ 連想度 4/ レイテンシ 1 サイクル
L1 データキャッシュ サイズ 32KB / ブロックサイズ 64B/ 連想度 4/ レイテンシ 1 サイクル
L2 キャッシュ サイズ 1MB/ ブロックサイズ 64B/ 連想度 4/ レイテンシ 6 サイクル
ベンチマークプログラムの入力
25
プログラム 入力OCEAN 258 × 258 ocean
RADIX 256K integers
WATER-SPATIAL 512 molecules
FFT 1024 data points
実験結果 ( グラフ )
26
様々な構成における消費エネルギー削減率
27
プロ
セッ
サ全
体の
消費
エネ
ルギ
ー削
減率
IO1 IO2 IO4 OoO1 OoO2 OoO4 C2_OoO1C2_OoO2C2_OoO40%
1%
2%
3%
4%
5%
6%
7%
8%
9%
OCEANRADIXWATER-SPATIAL
SIMD モードによる消費エネルギー削減効果
28プロセッサ構成
α=E
SIM
D/E
MIM
D
IO1 IO2 IO4 OoO1 OoO2 OoO4 C2_OoO1 C2_OoO2 C2_OoO40.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
29
実験結果 (2/2)• プロセッサ全体の消費エネルギー削減効
果消費
エネ
ルギ
ー削
減率
IO1 IO2 IO4 OoO1 OoO2 OoO4 cache20%
1%
2%
3%
4%
5%
6%
7%
OCEANcontigradixWATER-SPATIAL
最大で 6% の消費エネルギー削減
様々な構成のプロセッサにおける消費エネルギー内訳
30OoO1 OoO2 OoO4 IO1 IO2 IO4 C2_OoO1 C2_OoO2 C2_OoO4
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
CLOCKRESULTBUSDCACHE2DCACHEREGFILELSQWINDOWRENAMEALUBPREDICACHE
実験結果 (2/3)
31
OCAEN_CONTIG RADIX WATER-SPATIAL FFT0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
ベンチマークプログラム
並列
処理
を行
う時
間の
割合
• 各ベンチマークプログラムにおける全実行時間に対
する並列処理の実行時間割合
FFT では並列処理を行う時間の割合が小さい
32
解決策• 命令の内容が同じ⇒ブロードキャスト
………k=0;For(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
………k=50;For(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
コア1
コア2
C[k+0]=A[k+0]+B[k+0];D[k+0]=C[k+0]*(k+0);i=i+1;ループ継続判定C[k+1]=A[k+1]+B[k+1];D[k+1]=C[k+1]*(k+1);・・・・・・・・・
C[k+0]=A[k+0]+B[k+0];D[k+0]=C[k+0]*(k+0);i=i+1;ループ継続判定C[k+1]=A[k+1]+B[k+1];D[k+1]=C[k+1]*(k+1);・・・・・・・・・
コア 1 が受け取った命令 コア 2 が受け取った命令
ブロードキャスト
33
各プロセッサ・コアがそれぞれ命令フェッチ機構から命令を受け取るのは冗長
マルチコア プロセッサの・並列処理における問題点
………k=0;ifFor(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
………k=50;ifFor(i=0~49){ C[k+i]=A[k+i]+B[k+i]; D[k+i]=C[k+i]*(k+i);}………
コア1
コア2
C[k+0]=A[k+0]+B[k+0];D[k+0]=C[k+0]*(k+0);i=i+1;ループ継続判定C[k+1]=A[k+1]+B[k+1];D[k+1]=C[k+1]*(k+1);・・・・・・・・・
C[k+0]=A[k+0]+B[k+0];D[k+0]=C[k+0]*(k+0);i=i+1;ループ継続判定C[k+1]=A[k+1]+B[k+1];D[k+1]=C[k+1]*(k+1);・・・・・・・・・
コア 1 が受け取った命令 コア 2 が受け取った命令フェッチ機構から受け取った内容は一致