33
1 命命命命命命命命命命命命命命命 命命命命命命命命命命命命命命 命命命命命命命命命命命命命命命命 * 命命命命命命命命命命命命命命命命命命 ** 命命命命 * 命命命命 ** 命命命命 **

命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

  • Upload
    dick

  • View
    51

  • Download
    0

Embed Size (px)

DESCRIPTION

命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案. 九州 大学 大学院システム 情報科学府*  九州大学大学院システム情報科学研究院* * 上野伸也 * 井上弘士** 村上和彰* *. 発表手順. 研究背景 マルチコア・プロセッサにおける課題 命令フェッチ機構における低消費エネルギー化の重要性 研究の目的 命令フェッチ機構の共有化手法 ベンチマークプログラムを用いた定量的評価 まとめと今後の課題. マルチコア・プロセッサにおける課題. 1 チップ上に複数のコアを搭載したマルチコア・ プロセッサが主流 マルチコア・プロセッサの消費エネルギー削減が重要 - PowerPoint PPT Presentation

Citation preview

Page 1: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

1

命令フェッチ機構の共有に基づく低消費エネルギー化手法の提案

九州大学大学院システム情報科学府 *  九州大学大学院システム情報科学研究院 **上野伸也 *  井上弘士 **  村上和彰 **

Page 2: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

2

発表手順

• 研究背景– マルチコア プロセッサにおける課題・– 命令フェッチ機構における低消費エネルギー化の重要性

• 研究の目的• 命令フェッチ機構の共有化手法• ベンチマークプログラムを用いた定量的評価• まとめと今後の課題

Page 3: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

3

マルチコア プロセッサにおける・課題

• 1 チップ上に複数のコアを搭載したマルチコア・プロセッサが主流

• マルチコア・プロセッサの消費エネルギー削減が重要– バッテリー駆動機器 →バッテリー駆動時間– サーバ、スーパーコンピュータ →運用コスト

3

ProcessorCore

ProcessorCore

SharedL2 cache

出典: POWER5 system microarchitecture

Page 4: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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% の消費エネルギー

Page 5: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

マルチコア プロセッサの・並列処理における問題点

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 が受け取った命令

一致各プロセッサ・コアにおいてそれぞれ

命令フェッチ機構から命令を受け取るのは冗長

Page 6: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

6

研究のねらい

• 着眼点– マルチコア・プロセッサの並列処理中に、命令

フェッチ機構から出力されるデータ内容が一致する場合があることに注目

• 研究の目的– 並列処理における命令フェッチ機構へのアクセ

ス回数削減により低消費エネルギー化⇒ 命令フェッチ機構において最大 20% の消費エ

ネルギー削減効果

Page 7: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

7

提案手法の基本概念と動作例MIMD モードコア 1 SIMD モード演算コ

アFETCH FETCH

EXE EXE

コア 0

マルチコア・プロセッサメインコ

アブロードキャ

スト

停止している命令フェッチ機構の消費エネルギー削減

MIMD モード:従来の並列処理方式。全てのコアで命令をフェッチ、実行

SIMD モード:メインコアで命令をフェッチし、各コアへブロードキャスト

MIMD :Multiple Instruction stream , Multiple Data streamSIMD :Single Instruction stream ,Multiple Data stream

Page 8: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

………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

Page 9: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

命令フェッチ機構の消費エネルギー削減モデル

9

SIMDMIMD

SIMD

MIMD

SIMDFETCH II

IEER

1

SIMD モード時の命令フェッチ機構の消費エネルギー

MIMD モード時の命令フェッチ機構の消費エネルギー

SIMD モードで実行した命令数

総実行命令数小さいほど削減率が高い

プロセッサの構成により決定

大きいほど削減率が高いプログラムの性質によって決定

Page 10: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

10

提案方式の評価• 評価内容

– 従来方式: 全て MIMD モードで実行– 提案方式: MIMD モード, SIMD モードを切り替えながら実行

• オンチップ上の消費エネルギーを比較• コア間の通信にかかる消費エネルギーは 0 と仮定

• 評価環境– シミュレータ: 消費電力シミュレータ  SIM-WATTCH , CMP シミュ

レータ  M5– ベンチマークプログラム: Splash2 から 4 個のプログラムを選択

・・・・・・I$ D$L2

コア 0I$ D$

L2

コア 1I$ D$

L2

コア 7

主記憶

消費エネルギー比較

オンチップ

オフチップ

Page 11: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

11

命令フェッチ機構における消費エネルギー削減効果

ベンチマークプログラムOCEAN RADIX WATER-SPATIAL FFT

0%

5%

10%

15%

20%

25%

0.00112712881027154

命令

フェ

ッチ

機構

にお

ける

消費

エネ

ルギ

ー削

減率

OCEAN 、 WATER-SPATIAL において約 20% の削減効果

Page 12: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

プロセッサ全体の消費エネルギー削減効果

12

消費

エネ

ルギ

ー削

減率

最大で約 8% の消費エネルギー削減OCEAN RADIX WATER-SPATIAL

0%

1%

2%

3%

4%

5%

6%

7%

8%

9%

Page 13: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

13

まとめと今後の課題

• まとめ– 並列処理における命令フェッチ機構の共有による消

費エネルギー削減手法を提案– ベンチマークプログラムを用いた評価では、命令

フェッチ機構において最大 20% ,プロセッサ全体では最大約 8% の消費エネルギー削減効果

• 今後の課題– コア間の通信における消費エネルギーを考慮した評

価– 提案手法における同期回数の増加による性能オー

バーヘッドの評価– ベンチマークプログラムの追加

Page 14: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

14

ご清聴ありがとうございました

Page 15: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

Back Slide

15

Page 16: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

16

性能オーバーヘッド

• 同期回数の増加に伴う実行時間の増加

同期

同期

同期

SIMD

MIMD

MIMD:実行中

:待機状態

時間

提案手法

1 2 3 1 2 3

増加

スレッド番号

従来手法

Page 17: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

17

アーキテクチャサポート

Fetch 演算部

CLK

メインコア

PC 1Fetch 演算

CLK

MUX1

0

SIMD

PC

1Fetch 演算部

CLKSIMD

MUX1

0

PC 1Fetch 演算

CLKSIMD

MUX1

0

PC

REG

SIMD

0→1

Page 18: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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 が実行するプログラムコード

並列化前のプログラムコード 並列化後のプログラムコード

Page 19: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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;}………

Page 20: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

20

冗長な命令キャッシュへのアクセス

PC

ICACHE

I2 0x00112233

PC

ICACHE

I2 0x00112233

プロセッサ・コア 1

プロセッサ・コア 2

PC

ICACHEI3 0x01020304

PC

ICACHE

I3 0x01020304

プロセッサ・コア 1

プロセッサ・コア 2

時刻 t t +1

Page 21: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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

Page 22: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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

Page 23: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

シミュレーション環境

23

Page 24: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

M5 の設定

24

プロセッサの構成 8 コア・アウトオブオーダ命令発行幅 8

L1 命令キャッシュ サイズ 32KB / ブロックサイズ 64B/ 連想度 4/ レイテンシ 1 サイクル

L1 データキャッシュ サイズ 32KB / ブロックサイズ 64B/ 連想度 4/ レイテンシ 1 サイクル

L2 キャッシュ サイズ 1MB/ ブロックサイズ 64B/ 連想度 4/ レイテンシ 6 サイクル

Page 25: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

ベンチマークプログラムの入力

25

プログラム 入力OCEAN   258 × 258 ocean

RADIX 256K integers

WATER-SPATIAL 512 molecules

FFT 1024 data points

Page 26: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

実験結果 ( グラフ )

26

Page 27: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

様々な構成における消費エネルギー削減率

27

プロ

セッ

サ全

体の

消費

エネ

ルギ

ー削

減率

IO1 IO2 IO4 OoO1 OoO2 OoO4 C2_OoO1C2_OoO2C2_OoO40%

1%

2%

3%

4%

5%

6%

7%

8%

9%

OCEANRADIXWATER-SPATIAL

Page 28: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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

Page 29: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

29

実験結果 (2/2)• プロセッサ全体の消費エネルギー削減効

果消費

エネ

ルギ

ー削

減率

IO1 IO2 IO4 OoO1 OoO2 OoO4 cache20%

1%

2%

3%

4%

5%

6%

7%

OCEANcontigradixWATER-SPATIAL

最大で 6% の消費エネルギー削減

Page 30: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

様々な構成のプロセッサにおける消費エネルギー内訳

30OoO1 OoO2 OoO4 IO1 IO2 IO4 C2_OoO1 C2_OoO2 C2_OoO4

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

CLOCKRESULTBUSDCACHE2DCACHEREGFILELSQWINDOWRENAMEALUBPREDICACHE

Page 31: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

実験結果 (2/3)

31

OCAEN_CONTIG RADIX WATER-SPATIAL FFT0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

ベンチマークプログラム

並列

処理

を行

う時

間の

割合

• 各ベンチマークプログラムにおける全実行時間に対

する並列処理の実行時間割合

FFT では並列処理を行う時間の割合が小さい

Page 32: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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 が受け取った命令

ブロードキャスト

Page 33: 命令フェッチ機構の共有に基づく 低消費エネルギー化手法の提案

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 が受け取った命令フェッチ機構から受け取った内容は一致