メニーコア・プロセッサとそれを支える...

77
メニーコア・プロセッサとそれをえる メニーコア・プロセッサとそれをえる 要素技術 井上弘士 1 木村2 宏紀 3 1 九州大学大学院システム情報科学研究院 情報知能工学部門 2 早稲田大学 理工学術院 情報理工学科 2 早稲田大学 理工学術院 情報理工学科 3 東京大学大学院 情報理工学系研究科 1 EES2009チュートリアル

Upload: others

Post on 25-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

メニーコア・プロセッサとそれを支えるメニーコア・プロセッサとそれを支える要素技術

井上弘士1 木村啓二2 松谷宏紀3啓 松 宏紀

1九州大学大学院システム情報科学研究院 情報知能工学部門2早稲田大学 理工学術院 情報理工学科2早稲田大学 理工学術院 情報理工学科3東京大学大学院 情報理工学系研究科

1EES2009チュートリアル

チュートリアル内容チュートリアル内容

なぜ な 「 「• なぜメニーコアなのか?~「マルチ」から「メニー」の世界へ~

• メニーコアを支える要素技術

プロセ サ/メモリ ア キテクチャ– プロセッサ/メモリ・アーキテクチャ

– ネットワーク・オン・チップ

– 自動並列化コンパイラ

• 今後の展望今後の展望

EES2009チュートリアル 2

トランジスタを如何に有効活用し性能を向上するか?

ポイント1 理論ピ ク性能を高くする!• ポイント1:理論ピーク性能を高くする!– 如何に「より多くの演算」を「より高速に」処理するか?

• 並列性の活用

• 動作周波数の改善

などなど• などなど

• ポイント2:実効性能を理論ピーク性能に近づける!– 如何に「性能阻害要因を排除」するか?

• メモリ階層の 適化(キャッシュの搭載など)

• 予測技術に基づく投機実行サポート

• などなど

EES2009チュートリアル 3

「マルチ」から「メニー」の世界へ!「マルチ」から「メニー」の世界へ!10 000 000

1,000,000

10,000,000

Blue‐Gene/L

Roadrunner/s)

10,000

100,000

Giga‐Flop

/

EarthSimulator

100

1,000

Cell/B.E. (9 cores)

ClearSpeed (96 cores)

Intel Test Chip(80 cores)

rmance (G

1

10 Top 500 Supercomputers(http://www.top500.org/)

ClearSpeed (96 cores)

Power6, Xeon (2 cores)Perfor

1 10 100 1,000 10,000 100,000Total Number of Processor Chips

EES2009チュートリアル 4

代表的なメニーコアの「実」チップ代表的なメニーコアの「実」チップ

• 80コア+NOC• 80コア+NOC• 1.81TFlop/s@

FP

1.5mm x 2.0mm

5.7GHz

• 1 01TFlop/s@

MEMFP MAC

80 tilesFP 1.01TFlop/s@

3.16GHzSingle tile

routerFP MAC

Single tile

65nm CMOS process

See

EES2009チュートリアル 5

http://www.legitreviews.com/article/460/1/http://techresearch.intel.com/articles/Tera‐Scale/1449.htm

なぜメニーコアなのか?ポイントは?なぜメニーコアなのか?ポイントは?

メニ コアの利点は?• メニーコアの利点は?– コア数(PE数)に比例して理論ピーク性能が向上!

設計が比較的容易!– 設計が比較的容易!• メニーコアの欠点は?

コア数(PE数)に比例してピ ク消費電力が増加!– コア数(PE数)に比例してピーク消費電力が増加!– 実効性能を理論ピーク性能に近づけることがより困

難に!難に!• ポイントは?

– どのようなコア(とメモリ)を搭載するのか?どのような ア(とメ リ)を搭載するのか?– どのようにコアを接続するのか?– どのようにコアを活用するのか?

EES2009チュートリアル 6

本チュートリアルで対象とするオンチップ並列処理モデル

プ上 複数 プ を搭載• 1つのチップ上に複数のプロセッサコアを搭載

• 同時に複数のコアで実行することにより性能向上

並列処理マルチプログラミング

並列プログラム複数のスレッド

に分割

プログラム1

プログラム2

プログラム3

プログラム4

Core  Core  Core  Core 

に分割

Core  Core  Core  Core 0 1 2 30 1 2 3

7

チュートリアル内容チュートリアル内容

なぜ な 「 「• なぜメニーコアなのか?~「マルチ」から「メニー」の世界へ~

• メニーコアを支える要素技術

プロセ サ/メモリ ア キテクチャ– プロセッサ/メモリ・アーキテクチャ

– ネットワーク・オン・チップ

– 自動並列化コンパイラ

• 今後の展望今後の展望

EES2009チュートリアル 8

M. D. Hill and M. R. Marty, “Amdahl’s Law in the Multicore Era,” IEEE Computer, pp.33‐38, July 2008.M. D. Hill, HPCA’08 Keynote, http://pages.cs.wisc.edu/~markhill/includes/publications.html#year2008

詳細はこちらをご覧下さい

, y , p //p g / / /p y

どのようなコアを搭載するか?性能 観点~性能の観点から~

EES2009チュートリアル 9

アムダールの法則(を思い出そう)アムダールの法則(を思い出そう)1 全実行時間に対する

並列実行時間の割合

Amdahl’s Speedup =+ F

N1ーF1 N

ParallelExecution

1SequentialExecution コア数

• 高性能化を実現するには?1. F(並列実行可能部分)を大きくする!

2. 逐次実行時間を短縮する!逐 実 短 す

3. 並列実行時間をF/Nに近づける!

10

Symmetricメニーコアの性能ポテンシャルは?Symmetricメニーコアの性能ポテンシャルは?• 1BCE(Base Core Equivalent)は 小コア「c」の実装に

す要するHW量

• R‐BCEでの逐次実行性能=Perf(R)=square root(R)

• メモリによる影響等は無視(理想状態を想定)

256 BCE256 BCE

高い並列実行性能 高い逐次実行性能

256 BCE

SP

PP

PP

PP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

4BCE

SP

P P P

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

1BCE

EES2009チュートリアル 11256BCE/コア×1個4BCE/コア×64個

c c c c c c c

1BCE/コア×256個

Symmetricメニーコアの性能ポテンシャルは?Symmetricメニーコアの性能ポテンシャルは?

250 1

cccc

cccc

cccc

cccc

cccc

cccc

cccc

200F=0.999

Speedup =+

FPerf(R)×N

11ーFPerf(R)

ccc

ccc

ccc

ccc

ccc

ccc

cccF=0.999

150

peed

up

( )Perf(R)

PP

PP

PP

50

100Sp

F=0.99

F=0.975

P P P F=0.975SP

F=0 5

0

1 2 4 8 16 32 64 128 256

F=0.9F=0.5

F=0. 5

1 2 4 8 16 32 64 128 256R BCEs

SP•Perf(R)=16•Perf(R)=2•Perf(R)=1PP

PP

PP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

EES2009チュートリアル 12Mark D. Hill, HPCA’08 Keynote, http://pages.cs.wisc.edu/~markhill/includes/publications.html#year2008

•N=1•N=64•N=256P P P

ccc

ccc

ccc

ccc

ccc

ccc

ccc

Asymmetricメニーコアの性能ポテンシャルは?Asymmetricメニーコアの性能ポテンシャルは?• 1BCE(Base Core Equivalent)は 小コア「c」の実装に

す要するHW量

• R‐BCEでの逐次実行性能=Perf(R)=square root(R)

• メモリによる影響等は無視(理想状態を想定)

高い並列実行性能 高い逐次実行性能

256 BCE 256 BCE 256 BCE256 BCE

cc

cc

cccc

cccc

cccc

cccc

cccc

P cccc

cccc

cccc

cccc

ccccP SP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

P SPccc

ccc

ccc

ccc

ccc

ccc

ccc

EES2009チュートリアル 131BCE/コア×252個+4BCE/コア×1個

1BCE/コア×224個+32BCE/コア×1個

4BCE/コア×64個256BCE/コア×1個1BCE/コア×256個

Asymmetricメニーコアの性能ポテンシャルは?Asymmetricメニーコアの性能ポテンシャルは?

Speedup =1

250 Speedup =+

FPerf(R)+(N‐R)

1ーFPerf(R)200

F=0.999

150

peed

up F=0.99

50

100Sp

F=0.975

F 0 9

0

1 2 4 8 16 32 64 128 256

F=0.9

F=0.5

SP •Perf(R)=16•Perf(R)=5.7•Perf(R)=1

R BCEscccc

cccc

cccc

cccc

ccccP

cc

cc

cccc

cccc

cccc

cccc

cccc

P

•Perf(R)=2cccc

cccc

cccc

cccc

cccc

cccc

cccc

EES2009チュートリアル 14Mark D. Hill, HPCA’08 Keynote, http://pages.cs.wisc.edu/~markhill/includes/publications.html#year2008

•N‐R=0•N‐R=224•N=256 ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

•N‐R=252ccc

ccc

ccc

ccc

ccc

ccc

ccc

Dynamicメニーコアの性能ポテンシャルは?Dynamicメニーコアの性能ポテンシャルは?• 動的なコア活用法の切替え(ができたとしたら・・・)

並 部 全 資 を 「– 並列部:全てのHW資源を 小コア「c」で活用– 逐次部:「P」もしくは「SP」で実行

高い並列実行性能 高い逐次実行性能高い並列実行性能 高い逐次実行性能

c c c c c

256 BCE

P256 BCE

cc

cc

cccc

cccc

cccc

cccc

cccc

Pccc

ccc

ccc

ccc

ccc

256 BCE256 BCE

ccc

ccc

ccc

ccc

ccc

ccc

ccc

cc

cc

cc

cc

cc

cc

cc

cc

cc

cc

P

SP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

1BCE/コア×252個+4BCE/コア×1個

1BCE/コア×224個+32BCE/コア×1個

cc

cc

cc

cc

cc

SPccc

ccc

ccc

ccc

ccc

ccc

ccc 動的な切替え

EES2009チュートリアル 15

32BCE/コア×1個

4BCE/コア×64個256BCE/コア×1個1BCE/コア×256個

動的な切替え

動的な切替え

動的な切替え

Dynamicメニーコアの性能ポテンシャルは?Dynamicメニーコアの性能ポテンシャルは?250

F=0 999

Speedup =1

200

F 0.999

Speedup =+

FN

1ーFPerf(R)

150

peed

up F=0.99

50

100Sp

F=0.975

F=0 9

0

1 2 4 8 16 32 64 128 256

F=0.9

F=0.5

R BCEs

cccc

cccc

cccc

cccc

cccc

cccc

cccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc SP •Perf(R)=16•Perf(R)=5.7•Perf(R)=1

cccc

cccc

cccc

cccc

ccccP

cc

cc

cccc

cccc

cccc

cccc

cccc

P

•Perf(R)=2cccc

cccc

cccc

cccc

cccc

cccc

cccc

EES2009チュートリアル 16Mark D. Hill, HPCA’08 Keynote, http://pages.cs.wisc.edu/~markhill/includes/publications.html#year2008

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

•N=256•N=256•N=256 ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

•N=256ccc

ccc

ccc

ccc

ccc

ccc

ccc

メニーコア性能のポイントメニーコア性能のポイント

• 単純なメニーコア構成であれば,並列実行可能部分を「極めて高く(F>0.95)」する必要がある!

如何にしてこの並列性をアプリケーションから抽– 如何にしてこの並列性をアプリケーションから抽出するか?

如何にして並列化効率を阻害する要因を排除す– 如何にして並列化効率を阻害する要因を排除するか?

• 「並列処理の 適化」+「逐次処理の 適化」を同時に考慮する必要あり!

EES2009チュートリアル 17

D. H. Woo and H. S. Lee, “Extending Amdahl’s Law for Energy‐Efficient Computing in the Many‐Core Era,” IEEE Computer, pp.24‐31, Dec. 2008.

詳細はこちらをご覧下さい

p , pp ,

どのようなコアを搭載するか?性能/電力/ ネルギ の観点から~性能/電力/エネルギーの観点から~

EES2009チュートリアル 18

メニーコア・プロセッサの電力/エネルギー効率を探る!!

• メニーコアは低消費電力/消費エネルギーの観• メニーコアは低消費電力/消費エネルギーの観点から得策なのか?ポイント• ポイント– 逐次実行時に多くのプロセッサがアイドル状態

どのような を如何に活用すべきか– どのようなコアを如何に活用すべきか?

P 高性能/高消費電力コア(OOOスーパスカラなど)

プ文献をご参

P P P P c c c c c c c c c c c c c c c c

c

「P*」モデル 「c*」モデル 「c*+P」モデル

低性能/低消費電力コア(IOスカラ・プロセッサなど) 照下さい!

PPP

PPP

PPP

PPP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cc

cc

cccc

cccc

ccccP

EES2009チュートリアル 19

PP

PP

PP

PP

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

ccc

性能/消費電力/消費エネルギー~ 「p*」タイプ・メニーコアの場合~

P

1 fkn )1()1(1

1コア実行での実行時間=11コア実行での総消費E=1

1コア実行での総消費エネルギー

コア稼働時に対するアイドル時電力比(0≤k≤1)

逐次実行時のアイドルコア数

ffPerf

)1(

1ff

fknW

)1(

)1()1(1

並列実行時n nf )(

1Perf

のコア数

)1()1(1 fknWf

)1()1(11

)1(

1fknffJ

Perf

EES2009チュートリアル 20

)()()1( fn

f

性能/消費電力/消費エネルギー~ 「c*」タイプ・メニーコアの場合~

逐次実行時のP1コア実行での実行時間=11コア実行での総消費E=1

の稼働時に対するアイドル時電力比(0≤kC≤1)

アイドルコア数に対する の・・・・P c

相対性能(0≤S ≤1)消費電力比(0≤ ≤1)

c

fSPerf C

ffkwnwW CCC

)1()1(

時電 ( C )相対性能(0≤SC≤1) (0≤wC≤1)

nff

f )1(

nff

W )1(並列実行時

のコア数

)1()1( fkwnwS

WPerf

CCC

C

CCC

)1()1( fkS

fS

JPerf CC

EES2009チュートリアル 21

)1()1()1( fkwnwnffJ CCC

「p*メニーコア」 vs 「c*メニーコア」~ 仮定~

高性能/高消費電力コア 低性能/低消費電力コア

トランジスタ数(面積) 1 0 25

P c

トランジスタ数(面積) 1 0.25 

性能 1 SC:0.5 (ポラックの法則)

稼働時消費電力 1 WC:0.25(Power∝ #Tran.)

1/4

1/2

1/430%

プロセッサコア特性は上表の通り

稼働時消費電力 1 WC:0.25(Power #Tran.)

アイドル時消費電力 0.3 (稼働時消費電力比) KC:0.25(稼働時消費電力比)

1/4%

25%

• プロセッサコア特性は上表の通り

• メモリアクセスやオンチップ/オフチップ通信な/どの影響は無視(理想状態)

EES2009チュートリアル 22

「p*メニーコア」 vs 「c*メニーコア」~ 性能を比較する!~

F>=0.999であれば「c*」は大きなアドバンテージ!!

120

140f=0.3f=0.5f=0.7f=0.9

f=0.95f=0.99

f=0.999f=1.0

140

120 60

70f=0.3f=0.5f=0.7f=0.9

f=0.95f=0.99f=0.99f=1 0

70

60 PP

PP

PP

PP

PP

PP

PP

PP

p*(64コア)cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

c*(256コア)

60

80

100

tive

perfo

rman

ce

f 1.0

100

80

60form

ance F=1.0

F=0.99930

40

50

tive

perfo

rman

ce

f=1.0

50

40

30form

ance

F=1.0

F=0.999

PP

PP

PP

PP

PPPP

PPPP

PPPP

PPPP

PP

PP

PP

PP

PPPP

PPPP

PPPP

PPPP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

20

40

60

Rel

at 60

40

20

Per

F=0.99

F=0 95F=0.9 10

20

30

Rel

at 30

20

10Perf

F=0.99F=0.95

F=0.9

0 256 128 64 32 16 8 4 2 1

Number of processors

11 16  32       64                  128                                        256

#of Cores

F=0.95

0 64 32 16 8 4 2 1

Number of processors

11   4    8        16                    32                                            64

#of Cores同じHW量

EES2009チュートリアル 23P 1コアに対する相対性能

同じHW量

「p*メニーコア」 vs 「c*メニーコア」~ 電力当りの性能を比較する!~

p*(64コア)c*(256コア)PPPP

PPPP

PPPP

PPPP

PP

PP

PP

PP

PPPP

PPPP

PPPP

PPPP

PP

PP

PP

PP

p (64 ア)cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

c (256 ア)

F<=0.95の場合は電力当り性能が低下!

常に電力当り性能が低下!高々2倍

0 8

1f=0.3f=0.5f=0.7f=0.9

f=0.95f=0.99

2f=0.3f=0.5f=0.7f=0.9

f=0.95f=0.99

2F=1.0

F=0.9991

PP

PP

PP

PP

PP

PP

PP

PP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc F=1.0

F=0.999

0.6

0.8

rman

ce p

er w

att

f 0.99f=0.99f=1.0

1

1.5

rman

ce p

er w

att

f 0.99f=0.999

f=1.01.5

1mance / W

F=0.99 0.8

0.6

mance / W

F=0.99

F=0.95

0.2

0.4

Rel

ativ

e pe

rfor

0.5

Rel

ativ

e pe

rfo

0.5

Perform

F=0.95

F=0.9

0.4

0 2Perform

F=0.9

0 64 32 16 8 4 2 1

Number of processors

0 256 128 64 32 16 8 4 2 1

Number of processors

0

1 16  32       64                  128                                        256#of Cores

0.2

0

1   4    8        16                    32                                            64#of Cores

EES2009チュートリアル 24

同じHW量

P 1コアに対する相対性能

「p*メニーコア」 vs 「c*メニーコア」~ エネルギー当りの性能を比較する!~

p*(64コア)c*(256コア)PPPP

PPPP

PPPP

PPPP

PP

PP

PP

PP

PPPP

PPPP

PPPP

PPPP

PP

PP

PP

PP

p (64 ア)cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccccccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

c (256 ア)

大256倍の性能向上!

250

300f=0.3f=0.5f=0.7f=0.9

f=0.95f=0.99

60

70f=0.3f=0.5f=0.7f=0.9

f=0.95

300

250

70

60

PP

PP

PP

PP

PP

PP

PP

PP

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

cccc

c*の性能限界

150

200

man

ce p

er jo

ule

f 0.99f=0.999

f=1.0

40

50

man

ce p

er jo

ule

f=0.99f=0.99f=1.0

F=1.0

F=0 999

200

150nce / Joule

50

40

ce / Jo

ule

F=1.0

F=0 999

C*のポテンシャル(vs. p*)

100

150

Rel

ativ

e pe

rform

20

30

Rel

ativ

e pe

rformF=0.999150

100

50

Performan

30

20

Performan

F=0.999

F=0.99p*の性能限界

0

50

256 128 64 32 16 8 4 2 1

Number of processors

0

10

64 32 16 8 4 2 1

Number of processors1 16  32       64                  128                                        256#of Cores

F=0.99 F=0.95

50

0

10

0

1   4    8        16                    32                                            64#of Cores

F=0.95

EES2009チュートリアル 25

#of Cores #of Cores同じHW量

P 1コアに対する相対性能

「p*メニーコア」 vs 「c*メニーコア」~ 結局のところ・・・~

「 * の本質は?• 「c*」の本質は?– 超並列実行の実現

– 「性能/電力の向上(つまり,消費エネルギー削減)」ではなく,「性能/エネルギー(つまり,エネルギ 遅延積 削減) 大きな ドバ ジギー遅延積の削減)」に大きなアドバンテージ!

• 「c*」のアプリケーション・ターゲットは?– 高い性能と省エネルギーが求められる場合

• 「p*」が優位な場合は?「p 」が優位な場合は?– 十分な並列性が抽出できない場合

EES2009チュートリアル 26

チュートリアル内容チュートリアル内容

なぜ な 「 「• なぜメニーコアなのか?~「マルチ」から「メニー」の世界へ~

• メニーコアを支える要素技術

プロセ サ/メモリ ア キテクチャ– プロセッサ/メモリ・アーキテクチャ

– ネットワーク・オン・チップ

– 自動並列化コンパイラ

• 今後の展望今後の展望

EES2009チュートリアル 27

オンチップ・ネットワークの話し

256ClearSpeed CSX700

picoChip PC102 picoChip PC205ed

)

128

ClearSpeed CSX700

t includ

シンプルな PE を大量に接続

64 TILERA TILE64Intel 80‐coreClearSpeed CSX600

are no

t

16

32MIT RAW UT TRIPS (OPN)

caches a

8

16STI Cell BE

f PEs (c

高性能 CPU を複数接続

4

Sun T1 Sun T2

Intel Core, IBM PowerXmbe

r o

2002 2004 2006 2008 2010?

,AMD OpteronN

um

2

NOCの内部構造を探る!素技術 解説~要素技術の解説~

EES2009チュートリアル 29

コアの接続方式: バス vs. ネットワーク

• オンチップバス • Network‐on‐Chip (NoC)– 全コアがリンクを共有

– 1度に1対のみ通信可能

– ネットワーク状に接続

– パケットスイッチング

Router

Core

パケットの構造Core Core Core Core

Routerパケットの構造

On‐chip bus占有 Dst

○ シンプル, 面積が小さい

× コア数が増えるとボトルネックHeader flitBody flits

EES2009チュートリアル 302‐D mesh network

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

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

オンチップネットワークの要素技術

h l

Software Level• いろいろな研究分野Topology, routing,

OS, task scheduling

Circuit Level

Architecture Level– ソフトウェア レベル

– アーキテクチャ レベル

回路 レベル3D IC, power gating

Topology, routing, router architecture

Device Level– 回路 レベル

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

Input ports Output ports

TreeFIFO

M h (G id)CrossbarFIFO

Deadlock free routing

ネットワークトポロジ ルータアーキテクチャ

Mesh (Grid)

ルーティング,フロー制御

Deadlock‐free routing

要素技術: ネットワークトポロジ• 2‐D Mesh

– 各ノードは東西南北の隣接

• 2‐D Torus端と端をつなぐリンクを追加各ノ ドは東西南北の隣接

ノードと接続– 端と端をつなぐリンクを追加

– メッシュの2倍の帯域

EES2009チュートリアル 32ルータ 計算コア

要素技術: パケットルーティング

• 固定型ルーティングS d i i 間の– Source‐destination 間の経路は1つに固定

X方向

• ランダム型ルーティング– Source‐destination 間に間

複数の経路– ランダムに1つを選択 Y方向

• 適応型ルーティングSource destination 間に– Source‐destination 間に複数の経路

– 混雑に応じて1つを選択例) 次元順ル テ ング例) 次元順ルーティング

EES2009チュートリアル 33

要素技術: パケットルーティング

• 固定型ルーティングS d i i 間の– Source‐destination 間の経路は1つに固定

• ランダム型ルーティング– Source‐destination 間に間

複数の経路– ランダムに1つを選択

• 適応型ルーティングSource destination 間に– Source‐destination 間に複数の経路

– 混雑に応じて1つを選択 例) Turn‐model (West‐first, Odd‐even),例) Turn model (West first, Odd even), Opt‐y, Duato’s protocol

EES2009チュートリアル 34

要素技術: ルータアーキテクチャ

入力 ネ 出力チ ネル1) 出力チャネルを

2) 選択した出力チャネルを使うためアービトレーション

ARBITER

入力チャネル 出力チャネル) を

選択する使う

FIFOX+

X

X+

X

GRANT

FIFO

FIFOX‐

Y+

X‐

Y+

FIFO

FIFOY+

Y‐

Y+

Y‐3) パケットを出力チャネ

ルへ転送5x5 

CROSSBARFIFO

FIFO

CORE CORE

ルへ転送

EES2009チュートリアル 35

どのような「実」システムが存在するのか?

EES2009チュートリアル 36

実システムの例: Intel 80‐core chip256

ClearSpeed CSX700

picoChip PC102 picoChip PC205ed

)

128

ClearSpeed CSX700

t includ

高性能計算

64 TILERA TILE64Intel 80‐coreClearSpeed CSX600

are no

t

16

32MIT RAW UT TRIPS (OPN)

caches a

8

16STI Cell BE

f PEs (c

4

Sun T1 Sun T2

Intel Core, IBM PowerXmbe

r o

2002 2004 2006 2008 2010?

,AMD OpteronN

um

2

実システムの例: Intel 80‐core chip

• タイルの構成

– 浮動小数点演算ユニット (FPMAC) 2個

FP

1.5mm x 2.0mm

– メモリ

– オンチップルータ

MEMFP MAC

80 tilesFP

• ネットワークの特徴Single tile

routerFP MAC

– 8x10 mesh

– リンクデータ幅 32‐bit

Single tile

65nm CMOS process リ クデ タ幅

– 次元順ルーティング

– Wormhole スイッチングIntel 80‐core chip [Vangal,ISSCC’07]

Wormhole スイッチング

EES2009チュートリアル 38

実システムの例: UT Austin TRIPS chip256

ClearSpeed CSX700

picoChip PC102 picoChip PC205ed

)

128

ClearSpeed CSX700

t includ

64 TILERA TILE64Intel 80‐coreClearSpeed CSX600

are no

t

16

32MIT RAW UT TRIPS (OPN)

caches a

タイルプロセッサ

8

16STI Cell BE

f PEs (c

4

Sun T1 Sun T2

Intel Core, IBM PowerXmbe

r o

2002 2004 2006 2008 2010?

,AMD OpteronN

um

2

実システムの例: UT Austin TRIPS chip

• On‐chip network (OCN)Memory banks

– TRIPS プロセッサ 2個

– メモリバンク 16個M M E E E E

R R R R

D

G

I

I

• Operand network (OPN)– TRIPS プロセッサ内

M

M

M

M

E E E E

E E E E

D

DI

ITRIPS processor0

TRIPS プ セッサ内

– タイル 25個M

M

M

M

E E E EDI

E E E EDI

• OCN と OPN の特徴

2次元メッシュ

M

M

M

M

E E E E

E E E E

D

DI

I

TRIPS processor– 2次元メッシュ

– YX ルーティング

W h l スイッチング

M M E E E E

R R R R

D

G

I

I

1

– Wormhole スイッチング

EES2009チュートリアル 40TRIPS chip diagram [Gratz, IEEE MICRO’07]

実システムの例: Sony,Toshiba,IBM Cell BE

256ClearSpeed CSX700

picoChip PC102 picoChip PC205ed

)

128

ClearSpeed CSX700

t includ

64 TILERA TILE64Intel 80‐coreClearSpeed CSX600

are no

t

16

32MIT RAW UT TRIPS (OPN)

caches a

8

16STI Cell BE

f PEs (c

ゲーム機, 高性能計算

4

Sun T1 Sun T2

Intel Core, IBM PowerXmbe

r o

2002 2004 2006 2008 2010?

,AMD OpteronN

um

2

実システムの例: Sony,Toshiba,IBM Cell BE

• Cell BE の構成

– PPE (PowerPC) 1個

– SPE (SIMDプロセッサ) 8個

– メモリ, I/O 

– リングバス EIB で接続

SPE SPE SPE SPEL2$

• Element Interconnect Bus

EIB

Element Interconnect Bus– 単方向リング 4本

– 中央にアービタ

PPESPE SPE SPE SPE

中央にア ビタ

– リンクデータ幅 128‐bitCell Broadband Engine

EES2009チュートリアル 42http://domino.research.ibm.com/comm/research_projects.nsf/pages/multicore.CellBE.html

実システムの例: OpenSPARC T2

256ClearSpeed CSX700

picoChip PC102 picoChip PC205ed

)

128

ClearSpeed CSX700

t includ

64 TILERA TILE64Intel 80‐coreClearSpeed CSX600

are no

t

16

32MIT RAW UT TRIPS (OPN)

caches a

8

16STI Cell BE

f PEs (c

サーバ (Web) 用途

4

Sun T1 Sun T2

Intel Core, IBM PowerXmbe

r o

2002 2004 2006 2008 2010?

,AMD OpteronN

um

2

実システムの例: OpenSPARC T2

• Sun UltraSPARC T2 のオープンソース版

SPARCL2$ SPARC SPARC SPARC L2$

• OpenSPARC T2 の構成

– SPARC プロセッサ ( 大8ス

SPARCcore

L2$ SPARCcore

SPARCcore

SPARCcore

L2 tag L2 tag L2 tag L2 tagL2$

L2$

L2$ SPARC プ セッサ ( 大8スレッド処理) 8個

– L2 キャッシュバンク 8個

g g g g

L2 L2 L2 L2

L2$

L2$

L2$

L2$

CPU‐Cache crossbar

– クロスバで接続L2 tag L2 tag L2 tag L2 tag

SPARC SPARC SPARC SPARC

L2$

L2$

L2$

L2$• CPU‐Cache Crossbar (CCX)

– リンクデータ幅 128‐bithttp://www opensparc net/

core core core coreL2$ L2$

EES2009チュートリアル 44

リンクデ タ幅 128 bithttp://www.opensparc.net/

実システムの例: TILERA TILE64256

ClearSpeed CSX700

picoChip PC102 picoChip PC205ed

)

128

ClearSpeed CSX700

t includ

64 TILERA TILE64Intel 80‐coreClearSpeed CSX600

are no

t

高性能マルチメディア処理

16

32MIT RAW UT TRIPS (OPN)

caches a 高性能マルチメディア処理

8

16STI Cell BE

f PEs (c

4

Sun T1 Sun T2

Intel Core, IBM PowerXmbe

r o

2002 2004 2006 2008 2010?

,AMD OpteronN

um

2

実システムの例: TILERA TILE64

• タイルの構成

– VLIW プロセッサ

– L1 / L2 キャッシュ

– オンチップルータ

• ネットワークの特徴

– 8x8 mesh8x8 mesh

– 5系統のネットワーク

– リンクデータ幅 32‐bitリンクデ タ幅 32 bit

– 次元順ルーティング

– Wormhole スイッチング5種類の静的&動的ネットワーク:

EES2009チュートリアル 46

– Wormhole スイッチング

http://www.tilera.com/products/TILE64.php

5種類の静的&動的ネットワ ク: MDN TDN UDN IDN STN

如何にして「低消費電力NOC」を実す現するのか?

EES2009チュートリアル 47

低消費電力化に向けて

• 電圧と周波数の制御 (DVFS)

• 電力供給のストップ (Power gating)電力供給 ッ ( g g)

• バッファリング回数の削減バッファリング回数の削減

– 平均ホップ数の小さいトポロジの採用

中継ルータのスキップ– 中継ルータのスキップ

次元化 複数 プを積み重ねる• 3次元化 (複数のチップを積み重ねる)– パケット移動距離の短縮

EES2009チュートリアル 48

低消費電力化: Runtime Power Gating低消費電力化 g

• パケットが来たらバッファの電源 ON    通過したら OFF

ARBITERFIFOX+

X

X+

X

FIFO

FIFOX‐

Y+

X‐

Y+

FIFO

FIFOY+

Y‐

Y+

Y‐5x5 

CROSSBARFIFO

FIFO

CORE CORE

EES2009チュートリアル 49

低消費電力化: Runtime Power Gating低消費電力化 g

• パケットが来たらバッファの電源 ON    通過したら OFF

ARBITERX+

XX‐

Y+FIFOY+

VDD

Y+

Y‐

FIFOY+

5x5 CROSSBAR COREGND

EES2009チュートリアル 50

低消費電力化: Runtime Power Gating低消費電力化 g

• パケットが来たらバッファの電源 ON    通過したら OFF

ARBITERX+

XX‐

Y+FIFOY+

VDD

Sleep Y+

Y‐

FIFOY+

VGND

Sleep 

5x5 CROSSBAR COREGND

ACTIVE Power Switch

EES2009チュートリアル 51

低消費電力化: Runtime Power Gating動作再開低消費電力化 g

• パケットが来たらバッファの電源 ON    通過したら OFF

ARBITERウェイクアップ&

X+

X

初期化中

X‐

Y+FIFOY+

VDD

Sleep Y+

Y‐

FIFOY+

VGND

Sleep 

5x5 CROSSBAR COREGND

ACTIVE Power Switch電源ON

EES2009チュートリアル 52ウェイクアップ遅延を隠蔽するようなウェイクアップ制御手法が必要

低消費電力化に向けて: 他にも課題は多い

• 電圧と周波数の制御 (DVFS)

• 電力供給のストップ (Power gating)電力供給 ッ ( g g)

• バッファリング回数の削減バッファリング回数の削減

– 平均ホップ数の小さいトポロジの採用

中継ルータのスキップ– 中継ルータのスキップ

次元化 複数 プを積み重ねる• 3次元化 (複数のチップを積み重ねる)– パケット移動距離の短縮

EES2009チュートリアル 53

チュートリアル内容チュートリアル内容

なぜ な 「 「• なぜメニーコアなのか?~「マルチ」から「メニー」の世界へ~

• メニーコアを支える要素技術

プロセ サ/メモリ ア キテクチャ– プロセッサ/メモリ・アーキテクチャ

– ネットワーク・オン・チップ

– 自動並列化コンパイラ

• 今後の展望今後の展望

EES2009チュートリアル 54

プログラムを「並列化する」とは?

EES2009チュートリアル 55

メニーコア時代における自動並列化コンパイラの可能性

音が きます• メニーコアの足音が聞こえてきます

– 128コアあれば性能を128倍にしてほしいアあれば性能を 倍 し ほし

– でも消費電力は上げないで

ソフトウ ア開発は誰がやるの?• ソフトウェア開発は誰がやるの?

– とりあえず並列化プログラムを記述しやすくするプログラミング言語とかあるらしい

• Erlangとか

– なんとかなりそう

ほんと?ほんと?コンパイラで自動的に並列化したい

プログラムの並列化とはプログラムの並列化とは• 並列化可能な箇所の特定

• 並列処理単位(タスク)への分割

タスクのコアへの割り当て(スケジ リング)• タスクのコアへの割り当て(スケジューリング)

• 同期コード・(必要なら)データ転送コードの挿入

CORE0 CORE1 CORE0 CORE1

2009/5/13 57

負荷分散(マンデルブロ集合並列化を例に)

計算回数が少ない領域

スレッド1

計算回数が多い領域

スレッド2

スレッド数を増やしたときの速度向上率スレッド3

スレッド4 2 5

3

3.5

速度向上率

スレッド4

1.5

2

2.5

速度

向上

逐次

スレッド数分割• 以下の複素数列が2に達するまでの計算回数

0

0.5

1

0 2 4 6 8 10

達するまでの計算回数

• 複素平面上の各点に

CZZ nn 2

1

0 2 4 6 8 10

スレッド数

複 各対して計算

– 各点の計算は完全に独立

遠くなるメモリ遠くなるメモリ• メモリはどんどん遠くなる

– 近接メモリ(キャッシュ、スクラッチパッドメモリ等)の近接メモリ(キャッシュ、スクラッチパッドメモリ等)の効率的な利用が重要

• チップ内外を問わずバンド幅は限られる

– コア間共有データ コア固有データをどのように保持するべきか?– コア間共有デ タ、コア固有デ タをどのように保持するべきか?

– データ転送はどうする?

ストライドを変えたメモリアクセスにより

read

(ns) キャッシュ周りのパラメータを測定した

結果(参考:ヘネパタ第4版)

定 境測定環境:Intel xeon x5365@3GHz (4x2 core)L1Dcache 32KBL2 h 4MB/2

stride

L2cache 4MB/2core

アムダールの法則アムダールの法則• 適化の効果は 適化可能な箇所の割合に制限される適化の効果は 適化可能な箇所の割合に制限される

pnspeedup 11

1

p: 並列化率, n: プロセッサ(コア)数

8.00 8.00

9.00

pn

5 00

6.00

7.00

率 並列化率100%

4.00

2 50

3.33 3.00

4.00

5.00

速度

向上

率 並列化率100%

並列化率80%

並列化率50%

1.00

2.00

1.00 1.67

2.50

1.00 1.33 1.60 1.78

0 00

1.00

2.00

0.00

0 2 4 6 8 10プロセッサ数

並列化コンパイラ並列化コンパイラ• 入力プログラムを並列化する

– 並列化可能な箇所を特定する列化可能な箇所を特定する– 処理を分割する– 処理をスレッドに割り当てる

• 一般的にループを並列化のターゲットとする• 般的にル プを並列化のタ ゲットとするfor (i=0; i<1000; i++)sum += a[i];

for (i=0; i<250; i++) for (i=250; i<500; i++)CPU0用CPU0用 CPU1用CPU1用

sum0 += a[i];barrier(var); /*待ち合わせ*/sum = sum0+sum1+sum2+sum3;

( ; ; )sum1 += a[i];

barrier(var);

for (i=500; i<750; i++)sum2 += a[i];

for (i=750; i<1000; i++)sum3 += a[i];

CPU2用CPU2用 CPU3用CPU3用

sum2 += a[i];barrier(var);

sum3 += a[i];barrier(var);

並列化可能とは?並列化可能とは?

複数の処理が同時に実行できる• 複数の処理が同時に実行できる– 複数の処理を任意の順番で実行しても結果が

変わらない(処理が依存しない)変わらない(処理が依存しない)

• 処理が依存するとは?

a = b + c;真依存、依存(True dependence)

c = a - d;

a = e * f;逆依存(Antidependence)

a = e * f;

a = g / h;出力依存(Output dependence)

a g / h;

ループの並列化ループの並列化

for (i=0; i<n; i++) {a[i] = b[i] + c[i]; // S1[i+1] [i] + d[i] // S2

S1(0): a[0] = b[0] + c[0];S2(0): c[1] = a[0] + d[0];S3(0): e[0] = c[2] + c[1];c[i+1] = a[i] + d[i]; // S2

e[i] = c[i+2]+c[i+1]; // S3a[i+1] = f[i] + 1.0; // S4

}

S3(0): e[0] = c[2] + c[1];S4(0): a[1] = f[0] + 1.0;

S1(1): a[1] = b[1] + c[1];

O A

} S1(1): a[1] = b[1] + c[1];S2(1): c[2] = a[1] + d[1];S3(1): e[1] = c[3] + c[2];S4(1): a[2] = f[1] + 1.0;S4(1): a[2] f[1] + 1.0;

S1(2): a[2] = b[2] + c[2];S2(2): c[3] = a[2] + d[2];

O A

ル プ繰り越し依存( ) [ ] [ ] [ ]

S3(2): e[2] = c[4] + c[3];S4(2): a[3] = f[2] + 1.0;

ループ繰り越し依存(loop carried dependence)dependence)

参考:中田育男、「コンパイラの構成と 適化」、朝倉書店

「実」自動並列化コンパイラ:OSCAR

EES2009チュートリアル 64

OSCARコンパイラOSCARコンパイラ

早稲田大学 笠原 木村研で開発している自動並• 早稲田大学 笠原・木村研で開発している自動並列化コンパイラ

• マルチグレイン並列化• マルチグレイン並列化– プログラム全域にわたる並列化

• メモリ 適化• メモリ 適化– キャッシュ・ローカルメモリ利用の 適化

• デ タ転送 適化• データ転送 適化– データ転送隠蔽技術

• 低消費電力化• 低消費電力化• ヘテロジニアス・スケジューリング

マルチグレイン並列処理マルチグレイン並列処理• プログラム全域にわたる 適化

– ループイタレーションレベル並列化

• 通常の並列化コンパイラ

– 粗粒度タスク並列化

– 近細粒度並列化

ループイタレーションレベル並列処理並列化可能

ループ

粗粒度・近細粒度並列化ル プ

逐次ル プ

粒度並列化

もとの逐次プログラム通常の並列化コンパイラによる並列処理

OSCARコンパイラによるマルチグレイン並列処理

ループ

データローカリティ 適化データローカリティ 適化1 1 PE0 PE1

12 1Analyzing

2

3 4 56

23 45

6 7 8910 1112

3

4

2

6 7

8

14

18

data affinity among loops

3 4 56

7

6 7 8910 1112

1314 15 16

5

8

9

11

15

18

19

25

Decomposes loops

8 9 10 1718 19 2021 22

2324 25 26

10

13 16

17 20

22 26

29loops

considering cache or local memory size

Executing same colored

l11

12 1314

2324 25 26

2728 29 3031 32

dlg0dlg3dlg1 dlg2 21

22

23 24

26

27 28

30

memory size(Loop Aligned

Decomposition)

loops successively

MTG MTG decomposedi f h k Scheduling onto

1533Data Localization Group

27 28

31

32

into four chunks Scheduling ontotwo processors

OSCAR APIOSCAR API• 主にリアルタイム情報家電機器が対象

– 様々なメモリアーキテクチャカ 分散共有• SMP, ローカルメモリ, 分散共有メモリ, ...

• 産官学連携– 日立、ルネサス、富士通、東芝、パナソニック、NEC

経済産業省・NEDOのサポート– 経済産業省・NEDOのサポート• OpenMPのサブセットがベース

– 共有メモリモデルの、サーバ機等で非常によく使われる並列化API– OpenMPコンパイラでコンパイル可能p ン イラで ン イル可能

• 6つのカテゴリ– 並列実行– メモリ配置

デ タ転送

Multicore Chip m

PC0(Processor

Multicore Chip 0

CPU

リファレンスとなるOSCARメモリアーキテクチャ

– データ転送– 電力制御– タイマ– 同期

Core0)

DSM(Distributed Shared

LDM(Local Data Memory)

CSM j

offchipCSM

DTC(Data TransferController)

FVR (Frequency and Voltage Control Register)

(Processor

Core n)

PC1(ProcessorCore1)

PC nTIMER(Timer Unit)

同期

onchip CSM

(Memory) (Centralized

SharedMemory)

FVR

FVR FVR FVR

GROUPBAR(Group Barrier

Synchronization)

FVR FVR FVR

以下で公開:http://www.kasahara.cs.waseda.ac.jp

32コアサーバでの性能32コアサーバでの性能IBM Power6 (2core) x 16

7.3 time speedup on average3.3 times acceleration over XL Fortran

メニーコアを支える今後のコンパイ技術ル技術

EES2009チュートリアル 70

これからのコンパイラ技術これからのコンパイラ技術

パ る低消費電• コンパイラによる低消費電力化

– コア数が増えても消費電力は抑えたいア数 増え も消費電力は抑えた

• ヘテロジニアスマルチコア用コンパイル技術

いろいろな アが混載される状況に対応– いろいろなコアが混載される状況に対応

• Parallelizable C– 並列処理用プログラミングガイドライン

• コンパイラ技術そのものではないですがコンパイラ技術そのものではないですが…

コンパイラによる低消費電力化コンパイラによる低消費電力化 Power saving control in the fastest execution mode

FV control Power off controlk h d li l FV control Power off controlTask scheduling result

Power saving control in realtime execution modeTask scheduling result FV control Power off control

Solar Powered RP2 Multicore ChipSolar Powered RP2 Multicore Chip

ヘテロジニアスマルチコア用コンパイラ技術

多種類の計算エンジン(プロセッサ)を1チップに集積した多種類の計算エンジン(プロセッサ)を1チップに集積したSoCアーキテクチャ

プログラムの並列性を抽出し、各プロセッサの特徴に適しプ グラムの並列性を抽出し、各プ セッサの特徴に適したタスクの分割と配置を行う並列化コンパイラ

汎用タ ク汎用タスク汎用タスク

DSPタスク

汎用タスク

CPU CPU DSPプログラム

汎用タスク

DSPタスクS タスク

DRPタスク DRP BMP

フ ロク ラム

DRPタスク

BMPタスク

ヘテロジニアス・チップマルチプロセッサ

BMPタスク

CPU:汎用プロセッサS 信号処理 ゚ セ サ

並列化コンパイラ DSP:信号処理プロセッサDRP:動的再構成可能プロセッサBMP:ビット処理プロセッサ

並列化コンパイラ

Parallelizable CParallelizable C• 並列処理用プログラミングガイドライン

• Cで記述されたプログラムは解析が困難– ポインタの柔軟性に起因ポインタの柔軟性に起因

– ポインタの利用に制限を設ける

Cで記述されたプログラムの解析が可能にCで記述されたプログラムの解析が可能に

4 96

7.05

5.246.06

5.306.16

6.00

7.00

8.00

io

2.412.03 1.94 1.97 1.90 1.91

3.724.10

3.63 3.673.09

3.55

4.96

2.00

3.00

4.00

5.00

Spee

d-up

rati

1core2core4core

IBM Power5+8コアWSでの性能

0.00

1.00 8core

チュートリアル内容チュートリアル内容

なぜ な 「 「• なぜメニーコアなのか?~「マルチ」から「メニー」の世界へ~

• メニーコアを支える要素技術

プロセ サ/メモリ ア キテクチャ– プロセッサ/メモリ・アーキテクチャ

– ネットワーク・オン・チップ

– 自動並列化コンパイラ

• 今後の展望今後の展望

EES2009チュートリアル 76

実装からプログラミングレベルまでの統合的な技術開発が必要!!

1

プ グラミング技術

応用技術(On‐Line画像処理など)

23 45

6 7 8910 1112

1314 15 16

コンパイラ/OS技術

プログラミング技術(API標準化, Tuningなど)

ProgramProgram

1718 19 2021 22

2324 25 26

2728 29 3031 32

dlg0dlg3dlg1 dlg2

アーキテクチャ技術

コンパイラ/OS技術(自動並列化, VMなど)

ProgramProgram

c c c c c c c

cccc

cccc

cccc

cccc

cccc

33Data Localization Group

回路設計技術

ア キテクチャ技術(CPU/メモリ構成, NOCなど)

StackedMain Memory

ccc

cc

ccc

cc

ccc

cc

ccc

cc

ccc

cc

ccc

cc

ccc

cc

c

ccc

c

ccc

c

ccc

c

ccc

c

ccc

P

半導体製造/実装技術( 次元積層など)

(Sub‐Threshold回路など)Many‐CoreAccelerator

cc

cc

cc

cc

cc

cc

cc

ARBITER

FIFO

FIFOX+

X‐

X+

X‐

入力チャネル 出力チャネル

GRANT

EES2009チュートリアル 77

(3次元積層など)5x5 

CROSSBARFIFO

FIFO

FIFOY+

Y‐

CORE

Y+

Y‐

CORE

3) パケットを出力チャネルへ転送