• 検索結果がありません。

Microsoft PowerPoint - ESS2009ManyCoreTutorial.pptx

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - ESS2009ManyCoreTutorial.pptx"

Copied!
77
0
0

読み込み中.... (全文を見る)

全文

(1)

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

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

要素技術

井上弘士

1

木村啓二

2

松谷宏紀

宏紀

3

1

九州大学大学院システム情報科学研究院 情報知能工学部門

2

早稲田大学 理工学術院 情報理工学科

2

早稲田大学 理工学術院 情報理工学科

3

東京大学大学院 情報理工学系研究科

1 EES2009チュートリアル

(2)

チュートリアル内容

チュートリアル内容

なぜ

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

ニー」の世界へ~

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

プロセ サ/メモリ ア キテクチャ

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

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

– 自動並列化コンパイラ

• 今後の展望

今後の展望

(3)

トランジスタを如何に有効活用し

性能を向上するか?

ポイント1 理論ピ ク性能を高くする!

• ポイント1:理論ピーク性能を高くする!

– 如何に「より多くの演算」を「より高速に」処理するか?

• 並列性の活用

• 動作周波数の改善

などなど

• などなど

• ポイント2:実効性能を理論ピーク性能に近づける!

– 如何に「性能阻害要因を排除」するか?

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

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

• などなど

EES2009チュートリアル 3

(4)

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

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

10 000 000 1,000,000 10,000,000 Blue‐Gene/L Roadrunner /s) 10,000 100,000 G ig a‐ Flop / Earth Simulator 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) Pe rf o r 1 10 100 1,000 10,000 100,000 Total Number of Processor Chips

(5)

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

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

• 80コア+NOC

• 80コア+NOC

• 1.81TFlop/s@

FP

1.5mm x 2.0mm

5.7GHz

• 1 01TFlop/s@

MEM FP MAC

80 tiles

FP

1.01TFlop/s@

3.16GHz

Single tile

router FP  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

(6)

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

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

メニ コアの利点は?

• メニーコアの利点は?

– コア数(PE数)に比例して理論ピーク性能が向上!

設計が比較的容易!

– 設計が比較的容易!

• メニーコアの欠点は?

コア数(PE数)に比例してピ ク消費電力が増加!

– コア数(PE数)に比例してピーク消費電力が増加!

– 実効性能を理論ピーク性能に近づけることがより困

難に!

難に!

• ポイントは?

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

どのような ア(とメ リ)を搭載するのか?

– どのようにコアを接続するのか?

– どのようにコアを活用するのか?

(7)

本チュートリアルで対象とする

オンチップ並列処理モデル

プ上 複数

を搭載

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

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

並列処理

マルチプログラミング

並列 プログラム 複数のスレッド に分割 プログラム 1 プログラム 2 プログラム 3 プログラム 4

Core  Core  Core  Core 

に分割

Core  Core  Core  Core 

0 1 2 3

0 1 2 3

(8)

チュートリアル内容

チュートリアル内容

なぜ

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

ニー」の世界へ~

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

プロセ サ/メモリ ア キテクチャ

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

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

– 自動並列化コンパイラ

• 今後の展望

今後の展望

(9)

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

(10)

アムダールの法則(を思い出そう)

アムダールの法則(を思い出そう)

1

全実行時間に対する並列実行時間の割合

Amdahl’s Speedup =

+

F

N

1ーF

1

N

Parallel Execution

1

Sequential Execution コア数

• 高性能化を実現するには?

1. F(並列実行可能部分)を大きくする!

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

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

(11)

Symmetric

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

Symmetric

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

• 1BCE(Base Core Equivalent)は最小コア「c」の実装に

要するHW量

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

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

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

SP

P

P

P

P

P

P

c c c c c c c c c c c c c c c c c c c c c c c c c c c c 4BCE

SP

P

P

P

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

(12)

Symmetric

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

Symmetric

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

250

1

c c c c c c c c c c c c c c c c c c c c c c c c c c c c 200 F=0.999

Speedup =

+

Perf(R)×N

F

1

1ーF

Perf(R)

c c c c c c c c c c c c c c c c c c c c c F=0.999 150 p eedup

( )

Perf(R)

P P P P P P 50 100 Sp F=0.99 F=0.975 P P P F=0.975 SP F=0 5 0 1 2 4 8 16 32 64 128 256 F=0.9 F=0.5 F=0. 5 1 2 4 8 16 32 64 128 256 R BCEs SP •Perf(R)=16 •Perf(R)=2 •Perf(R)=1 PP P P P P c c c c c c c c c c c c c c c c c c c c c c c c c c c c •N=1 •N=64 •N=256

(13)

Asymmetric

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

Asymmetric

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

• 1BCE(Base Core Equivalent)は最小コア「c」の実装に

要するHW量

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

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

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

256 BCE 256 BCE 256 BCE 256 BCE c c c c c c c c c c c c c c c c c c c c c c c c

P

cc c c c c c c c c c c c c c c c c c c

P

SP

c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c

P

SP

c c c c c c c c c c c c c c c c c c c c c EES2009チュートリアル 13 1BCE/コア×252個+ 4BCE/コア×1個 1BCE/コア×224個+ 32BCE/コア×1個 4BCE/コア×64個256BCE/コア×1個 1BCE/コア×256個

(14)

Asymmetric

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

Asymmetric

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

Speedup =

1

250

Speedup =

+

Perf(R)+(N‐R)

F

1ーF

Perf(R)

200 F=0.999 150 p eedup F=0.99 50 100 Sp 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 BCEs c c c c c c c c c c c c c c c c c c c c P c c c c c c c c c c c c c c c c c c c c c c c c P •Perf(R)=2 c c c c c c c c c c c c c c c c c c c c c c c c c c c c •N‐R=0 •N‐R=224 •N=256 •N‐R=252

(15)

Dynamic

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

Dynamic

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

• 動的なコア活用法の切替え(ができたとしたら・・・)

部 全

を最

– 並列部:全てのHW資源を最小コア「c」で活用

– 逐次部:「P」もしくは「SP」で実行

高い並列実行性能 高い逐次実行性能 高い並列実行性能 高い逐次実行性能 c c c c c 256 BCE

P

256 BCE c c c c c c c c c c c c c c c c c c c c c c c c

P

c c c c c c c c c c c c c c c 256 BCE 256 BCE c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c

P

SP

c c c c c c c c c c c c c c c c c c c c c c c c c c c c 1BCE/コア×252個+ 4BCE/コア×1個 1BCE/コア×224個+ 32BCE/コア×1個 c c c c c c c c c c

SP

c c c c c c c c c c c c c c c c c c c c c 動的な切替え EES2009チュートリアル 15 32BCE/コア×1個 4BCE/コア×64個256BCE/コア×1個 1BCE/コア×256個 動的な切替え 動的な切替え 動的な切替え

(16)

Dynamic

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

Dynamic

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

250 F=0 999

Speedup =

1

200 F 0.999

Speedup =

+

F

N

1ーF

Perf(R)

150 p eedup F=0.99 50 100 Sp F=0.975 F=0 9 0 1 2 4 8 16 32 64 128 256 F=0.9 F=0.5 R BCEs c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c •Perf(R)=5.7 SP •Perf(R)=16 •Perf(R)=1 c c c c c c c c c c c c c c c c c c c c P c c c c c c c c c c c c c c c c c c c c c c c c P •Perf(R)=2 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c •N=256 •N=256 •N=256 •N=256

(17)

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

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

• 単純なメニーコア構成であれば,並列実行可

能部分を「極めて高く(F>0.95)」する必要があ

る!

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

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

出するか?

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

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

るか?

• 「並列処理の最適化」+「逐次処理の最適

化」を同時に考慮する必要あり!

EES2009チュートリアル 17

(18)

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 ,

どのようなコアを搭載するか?

性能/電力/ ネルギ の観点から

~性能/電力/エネルギーの観点から~

(19)

メニーコア・プロセッサの電力/エネル

ギー効率を探る!!

• メニーコアは低消費電力/消費エネルギーの観

• メニーコアは低消費電力/消費エネルギーの観

点から得策なのか?

ポイント

• ポイント

– 逐次実行時に多くのプロセッサがアイドル状態

どのような

を如何に活用すべきか

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

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スカラ・プロセッサなど) 照下さい!

P

P

P

P

P

P

P

P

P

P

P

P

c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c

P

EES2009チュートリアル 19

P

P

P

P

P

P

P

P

c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c

(20)

性能/消費電力/消費エネルギー

~ 「p*」タイプ・メニーコアの場合~

P

1

1

(

n

1

)

k

(

1

f

)

1コア実行での実行時間=1 1コア実行での総消費E=1 1コア実行での 総消費エネルギー コア稼働時に対する アイドル時電力比(0≤k≤1) 逐次実行時の アイドルコア数

f

f

Perf

)

1

(

1

f

f

f

k

n

W

)

1

(

)

1

(

)

1

(

1

並列実行時

n

(

f )

n

1

Perf

のコア数

)

1

(

)

1

(

1

n

k

f

W

f

)

1

(

)

1

(

1

1

)

1

(

1

f

k

n

f

f

J

Perf

)

(

)

(

)

1

(

f

f

(21)

性能/消費電力/消費エネルギー

~ 「c*」タイプ・メニーコアの場合~

逐次実行時の

P

1コア実行での実行時間=1 1コア実行での総消費E=1 の稼働時に対する アイドル時電力比(0≤kC≤1) アイドルコア数 に対する の・・・・

P

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

f

S

Perf

C

f

f

k

w

n

w

W

C

(

1

)

C C

(

1

)

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

n

f

f

f

 )

1

(

n

f

f

W

 )

1

(

並列実行時 のコア数

)

1

(

)

1

(

n

w

k

f

w

S

W

Perf

C C C C

C C C

)

1

(

)

1

(

k

f

S

f

S

J

Perf

C C

EES2009チュートリアル 21

)

1

(

)

1

(

)

1

(

w

n

w

k

f

n

f

f

J

C

C C

(22)

「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/4 30%

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

稼働時消費電力 1 WC:0.25(Power #Tran.) アイドル時消費電力 0.3 (稼働時消費電力比) KC:0.25(稼働時消費電力比) 1/4 % 25%

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

• メモリアクセスやオンチップ/オフチップ通信な

/

どの影響は無視(理想状態)

(23)

「p*メニーコア」 vs 「c*メニーコア」

~ 性能を比較する!~

F>=0.999であれば「c*」は大きなアドバンテージ!! 120 140 f=0.3 f=0.5 f=0.7 f=0.9 f=0.95 f=0.99 f=0.999 f=1.0 140 120 60 70 f=0.3 f=0.5 f=0.7 f=0.9 f=0.95 f=0.99 f=0.99 f=1 0 70 60 P P P P P P P P P P P P P P P P p*(64コア) c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c*(256コア) 60 80 100 tive performance f 1.0 100 80 60 fo rm an ce F=1.0 F=0.999 30 40 50 tive perf ormance f=1.0 50 40 30 formance F=1.0 F=0.999 P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c 20 40 60 Rel at 60 40 20 Pe r F=0.99 F=0 95 F=0.9 10 20 30 Rela t 30 20 10 Pe rf F=0.99 F=0.95 F=0.9 0 256 128 64 32 16 8 4 2 1 Number of processors 1 1 16  32       64      128      256 #of Cores F=0.95 0 64 32 16 8 4 2 1 Number of processors 1 1   4    8        16      32      64 #of Cores 同じHW量 EES2009チュートリアル 23

P

1コアに対する相対性能 同じHW量

(24)

「p*メニーコア」 vs 「c*メニーコア」

~ 電力当りの性能を比較する!~

p*(64コア) c*(256コア) P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P p (64 ア) c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c (256 ア) F<=0.95の場合は電力 当り性能が低下! 常に電力当り性 能が低下! 高々2倍 0 8 1 f=0.3 f=0.5 f=0.7 f=0.9 f=0.95 f=0.99 2 f=0.3 f=0.5 f=0.7 f=0.9 f=0.95 f=0.99 2 F=1.0 F=0.999 1 P P P P P P P P P P P P P P P P c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c F=1.0 F=0.999 0.6 0.8 rmanc e per watt f 0.99 f=0.99 f=1.0 1 1.5

rmance per watt

f 0.99 f=0.999 f=1.0 1.5 1 m ance  /  W F=0.99 0.8 0.6 m ance  /  W F=0.99 F=0.95 0.2 0.4 Relativ e perfo r 0.5 Relative perfo 0.5 Pe rf o rm F=0.95 F=0.9 0.4 0 2 Pe rf o rm 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

(25)

「p*メニーコア」 vs 「c*メニーコア」

~ エネルギー当りの性能を比較する!~

p*(64コア) c*(256コア) P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P p (64 ア) c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c (256 ア) 最大256倍の 性能向上! 250 300 f=0.3 f=0.5 f=0.7 f=0.9 f=0.95 f=0.99 60 70 f=0.3 f=0.5 f=0.7 f=0.9 f=0.95 300 250 70 60 P P P P P P P P P P P P P P P P c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c*の性能限界 150 200 m

ance per joule

f 0.99 f=0.999 f=1.0 40 50 m anc e per joule f=0.99 f=0.99 f=1.0 F=1.0 F=0 999 200 150 n ce  /  Joule 50 40 ce  /  Joule F=1.0 F=0 999 C*のポテンシャル (vs. p*) 100 150 Relative perfor m 20 30 Re la tive p er fo rm F=0.999 150 100 50 Pe rf o rm an 30 20 Pe rf o rm an F=0.999 F=0.99 p*の性能限界 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 processors 1 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コアに対する相対性能

(26)

「p*メニーコア」 vs 「c*メニーコア」

~ 結局のところ・・・~

「 * の本質は?

• 「c*」の本質は?

– 超並列実行の実現

– 「性能/電力の向上(つまり,消費エネルギー削

減)」ではなく,「性能/エネルギー(つまり,エネル

ギ 遅延積

削減)

大きな ドバ

ギー遅延積の削減)」に大きなアドバンテージ!

• 「c*」のアプリケーション・ターゲットは?

– 高い性能と省エネルギーが求められる場合

• 「p*」が優位な場合は?

「p 」が優位な場合は?

– 十分な並列性が抽出できない場合

(27)

チュートリアル内容

チュートリアル内容

なぜ

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

ニー」の世界へ~

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

プロセ サ/メモリ ア キテクチャ

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

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

– 自動並列化コンパイラ

• 今後の展望

今後の展望

EES2009チュートリアル 27

(28)

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

256

ClearSpeed CSX700 picoChip PC102 picoChip PC205

ed)

128

ClearSpeed CSX700

includ

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

64

ClearSpeed CSX600 TILERA TILE64Intel 80‐core

are

 no

t

16

32

MIT RAW UT TRIPS (OPN)

caches

 a

8

16

STI Cell BE

PEs

 (

c

高性能 CPU を複数接続

4

Sun T1 Sun T2 Intel Core, IBM PowerX

m

ber

 o

, AMD Opteron

m

(29)

NOCの内部構造を探る!

素技術

解説

~要素技術の解説~

(30)

コアの接続方式:

バス vs. ネットワーク

• オンチップバス

• Network‐on‐Chip (NoC)

– 全コアがリンクを共有

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

– ネットワーク状に接続

– パケットスイッチング

Router Core

パケットの構造

Core Core Core Core Router

パケットの構造

On‐chip bus 占有 Dst

シンプル, 面積が小さい

×

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

Body flits Header flit

×

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

(31)

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

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 Tree FIFO M h (G id) Crossbar FIFO

Deadlock free routing

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

ルーティング,フロー制御 Deadlock‐free routing

(32)

要素技術: ネットワークトポロジ

• 2‐D Mesh

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

• 2‐D Torus

端と端をつなぐリンクを追加

各ノ ドは東西南北の隣接

ノードと接続

– 端と端をつなぐリンクを追加

– メッシュの2倍の帯域

(33)

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

• 固定型ルーティング

S

d

i

i

間の

– Source‐destination 間の

経路は1つに固定

X

方向

• ランダム型ルーティング

– Source‐destination 間に

複数の経路

– ランダムに1つを選択

Y

方向

• 適応型ルーティング

Source destination 間に

– Source‐destination 間に

複数の経路

– 混雑に応じて1つを選択

例) 次元順ル テ ング 例) 次元順ルーティング EES2009チュートリアル 33

(34)

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

• 固定型ルーティング

S

d

i

i

間の

– Source‐destination 間の

経路は1つに固定

• ランダム型ルーティング

– Source‐destination 間に

複数の経路

– ランダムに1つを選択

• 適応型ルーティング

Source destination 間に

– Source‐destination 間に

複数の経路

(35)

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

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

ARBITER

入力チャネル) 選択する を 使う 出力チャネル

FIFO

X+

X

X+

X

GRANT

FIFO

FIFO

X‐

Y+

X‐

Y+

FIFO

FIFO

Y+

Y‐

Y+

Y‐

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

5x5 

CROSSBAR

FIFO

FIFO

CORE

CORE

ルへ転送 EES2009チュートリアル 35

(36)

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

のか?

(37)

実システムの例: 

Intel 80‐core chip

256

ClearSpeed CSX700 picoChip PC102 picoChip PC205

ed)

128

ClearSpeed CSX700

includ

高性能計算

64

ClearSpeed CSX600 TILERA TILE64Intel 80‐core

are

 no

t

16

32

MIT RAW UT TRIPS (OPN)

caches

 a

8

16

STI Cell BE

PEs

 (

c

4

Sun T1 Sun T2 Intel Core, IBM PowerX

m

ber

 o

2002

2004

2006

2008

2010?

, AMD Opteron

Nu

m

2

(38)

実システムの例: 

Intel 80‐core chip

• タイルの構成

– 浮動小数点演算

ユニット (FPMAC) 2個

FP

1.5mm x 2.0mm

– メモリ

– オンチップルータ

MEM FP MAC

80 tiles

FP

• ネットワークの特徴

Single tile

router FP  MAC

– 8x10 mesh

– リンクデータ幅 32‐bit

Single tile

65nm CMOS process

リ クデ タ幅

– 次元順ルーティング

– Wormhole スイッチング

Intel 80‐core chip [Vangal,ISSCC’07]

Wormhole スイッチング

(39)

実システムの例: 

UT Austin TRIPS chip

256

ClearSpeed CSX700 picoChip PC102 picoChip PC205

ed)

128

ClearSpeed CSX700

includ

64

ClearSpeed CSX600 TILERA TILE64Intel 80‐core

are

 no

t

16

32

MIT RAW UT TRIPS (OPN)

caches

 a

タイルプロセッサ

8

16

STI Cell BE

PEs

 (

c

4

Sun T1 Sun T2 Intel Core, IBM PowerX

m

ber

 o

2002

2004

2006

2008

2010?

, AMD Opteron

Nu

m

2

(40)

実システムの例: 

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 D I I

TRIPS processor

0

TRIPS プ セッサ内

– タイル 25個

M M M M E E E E D I E E E E D I

• OCN と OPN の特徴

2次元メッシュ

M M M M E E E E E E E E D D I I

TRIPS processor

– 2次元メッシュ

– YX ルーティング

M M E E E E R R R R D G I I

1

– Wormhole スイッチング

(41)

実システムの例: 

Sony,Toshiba,IBM Cell BE

256

ClearSpeed CSX700 picoChip PC102 picoChip PC205

ed)

128

ClearSpeed CSX700

includ

64

ClearSpeed CSX600 TILERA TILE64Intel 80‐core

are

 no

t

16

32

MIT RAW UT TRIPS (OPN)

caches

 a

8

16

STI Cell BE

PEs

 (

c

ゲーム機, 高性能計算

4

Sun T1 Sun T2 Intel Core, IBM PowerX

m

ber

 o

2002

2004

2006

2008

2010?

, AMD Opteron

Nu

m

2

(42)

実システムの例: 

Sony,Toshiba,IBM Cell BE

• Cell BE の構成

– PPE (PowerPC) 1個

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

– メモリ, I/O 

– リングバス EIB で接続

SPE

SPE

SPE

SPE

L2$

• Element Interconnect Bus

EIB

Element Interconnect Bus

– 単方向リング 4本

– 中央にアービタ

PPE

SPE

SPE

SPE

SPE

中央にア ビタ

– リンクデータ幅 128‐bit

(43)

実システムの例: 

OpenSPARC T2

256

ClearSpeed CSX700 picoChip PC102 picoChip PC205

ed)

128

ClearSpeed CSX700

includ

64

ClearSpeed CSX600 TILERA TILE64Intel 80‐core

are

 no

t

16

32

MIT RAW UT TRIPS (OPN)

caches

 a

8

16

STI Cell BE

PEs

 (

c

サーバ (Web) 用途

4

Sun T1 Sun T2 Intel Core, IBM PowerX

m

ber

 o

2002

2004

2006

2008

2010?

, AMD Opteron

Nu

m

2

(44)

実システムの例: 

OpenSPARC T2

• Sun UltraSPARC T2 のオー

プンソース版

SPARC

L2$

SPARC SPARC SPARC L2$

• OpenSPARC T2 の構成

– SPARC プロセッサ (最大8ス

SPARC

core

L2$

SPARC

core

SPARC

core

SPARC

core

L2 tag L2 tag L2 tag L2 tag

L2$

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‐bit

http://www opensparc net/

core

core

core

core

L2$

L2$

リンクデ タ幅 128 bit

(45)

実システムの例: 

TILERA TILE64

256

ClearSpeed CSX700 picoChip PC102 picoChip PC205

ed)

128

ClearSpeed CSX700

includ

64

ClearSpeed CSX600 TILERA TILE64Intel 80‐core

are

 no

t

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

16

32

MIT RAW UT TRIPS (OPN)

caches

 a

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

8

16

STI Cell BE

PEs

 (

c

4

Sun T1 Sun T2 Intel Core, IBM PowerX

m

ber

 o

2002

2004

2006

2008

2010?

, AMD Opteron

Nu

m

2

(46)

実システムの例: 

TILERA TILE64

• タイルの構成

– VLIW プロセッサ

– L1 / L2 キャッシュ

– オンチップルータ

• ネットワークの特徴

– 8x8 mesh

8x8 mesh

– 5系統のネットワーク

– リンクデータ幅 32‐bit

リンクデ タ幅 32 bit

– 次元順ルーティング

– Wormhole スイッチング

5種類の静的&動的ネットワーク:

– Wormhole スイッチング

5種類の静的&動的ネットワ ク: 

(47)

如何にして「低消費電力NOC」を実

現するのか?

(48)

低消費電力化に向けて

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

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

電力供給

(

g

g)

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

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

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

中継ルータのスキップ

– 中継ルータのスキップ

次元化 複数

プを積み重ねる

• 3次元化 (複数のチップを積み重ねる)

– パケット移動距離の短縮

(49)

低消費電力化: 

Runtime Power Gating

低消費電力化

g

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

ARBITER

FIFO

X+

X

X+

X

FIFO

FIFO

X‐

Y+

X‐

Y+

FIFO

FIFO

Y+

Y‐

Y+

Y‐

5x5 

CROSSBAR

FIFO

FIFO

CORE

CORE

EES2009チュートリアル 49

(50)

低消費電力化: 

Runtime Power Gating

低消費電力化

g

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

ARBITER

X+

X

X‐

Y+

FIFO

Y+

VDD

Y+

Y‐

FIFO

Y+

5x5 

CROSSBAR

CORE

GND

(51)

低消費電力化: 

Runtime Power Gating

低消費電力化

g

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

ARBITER

X+

X

X‐

Y+

FIFO

Y+

VDD

Sleep

Y+

Y‐

FIFO

Y+

VGND

Sleep 

5x5 

CROSSBAR

CORE

GND

ACTIVE

Power Switch

EES2009チュートリアル 51

(52)

低消費電力化: 

Runtime Power Gating

動作再開

低消費電力化

g

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

ARBITER

ウェイクアップ&

X+

X

初期化中

X‐

Y+

FIFO

Y+

VDD

Sleep

Y+

Y‐

FIFO

Y+

VGND

Sleep 

5x5 

CROSSBAR

CORE

GND

ACTIVE

Power Switch

電源ON

(53)

低消費電力化に向けて: 

他にも課題は多い

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

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

電力供給

(

g

g)

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

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

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

中継ルータのスキップ

– 中継ルータのスキップ

次元化 複数

プを積み重ねる

• 3次元化 (複数のチップを積み重ねる)

– パケット移動距離の短縮

EES2009チュートリアル 53

(54)

チュートリアル内容

チュートリアル内容

なぜ

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

ニー」の世界へ~

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

プロセ サ/メモリ ア キテクチャ

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

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

– 自動並列化コンパイラ

• 今後の展望

今後の展望

(55)

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

(56)

メニーコア時代における

自動並列化コンパイラの可能性

音が

きます

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

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

アあれば性能を

倍 し ほし

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

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

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

– とりあえず並列化プログラムを記述しやすくする

プログラミング言語とかあるらしい

• Erlangとか

– なんとかなりそう

ほんと?

ほんと?

(57)

プログラムの並列化とは

プログラムの並列化とは

• 並列化可能な箇所の特定

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

タスクのコアへの割り当て(スケジ

リング)

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

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

CORE0 CORE1 CORE0 CORE1

(58)

負荷分散

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

計算回数が 少ない領域 スレッド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 速 達するまでの計算回数 • 複素平面上の各点に C Z Znn12  0 2 4 6 8 10 複 各

(59)

遠くなるメモリ

遠くなるメモリ

• メモリはどんどん遠くなる – 近接メモリ(キャッシュ、スクラッチパッドメモリ等)の近接メモリ(キャッシュ、スクラッチパッドメモリ等)の 効率的な利用が重要 • チップ内外を問わずバンド幅は限られる – コア間共有データ コア固有データをどのように保持するべきか? – コア間共有デ タ、コア固有デ タをどのように保持するべきか? – データ転送はどうする? ストライドを変えたメモリアクセスにより re ad ( ns ) キャッシュ周りのパラメータを測定した 結果(参考:ヘネパタ第4版) 定 境 測定環境:

Intel xeon x5365@3GHz (4x2 core) L1Dcache 32KB

L2 h 4MB/2 stride

(60)

アムダールの法則

アムダールの法則

• 最適化の効果は最適化可能な箇所の割合に制限される

最適化の効果は最適化可能な箇所の割合に制限される

p

n

speedup

1

1

1

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

p

n

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

(61)

並列化コンパイラ

並列化コンパイラ

• 入力プログラムを並列化する

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

• 一般的にループを並列化のターゲットとする

般的にル プを並列化のタ ゲットとする

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);

(62)

並列化可能とは?

並列化可能とは?

複数の処理が同時に実行できる

• 複数の処理が同時に実行できる

– 複数の処理を任意の順番で実行しても結果が

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

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

• 処理が依存するとは?

a = b + c;

真依存、依存(True dependence)

c = a - d;

a = e * f;

逆依存(Antidependence)

a = e * f;

a = g / h;

出力依存(Output dependence)

a g / h;

(63)

ループの並列化

ループの並列化

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]; // S3 a[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

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

(64)
(65)

OSCARコンパイラ

OSCARコンパイラ

早稲田大学 笠原 木村研で開発している自動並

• 早稲田大学 笠原・木村研で開発している自動並

列化コンパイラ

• マルチグレイン並列化

• マルチグレイン並列化

– プログラム全域にわたる並列化

• メモリ最適化

• メモリ最適化

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

• デ タ転送最適化

• データ転送最適化

– データ転送隠蔽技術

• 低消費電力化

• 低消費電力化

• ヘテロジニアス・スケジューリング

(66)

マルチグレイン並列処理

マルチグレイン並列処理

• プログラム全域にわたる最適化

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

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

– 粗粒度タスク並列化

– 近細粒度並列化

ループイタレーションレベル 並列処理 並列化可能 ループ 粗粒度・近細 粒度並列化 ル プ 逐次 ル プ 粒度並列化 もとの逐次プログラム 通常の並列化コンパイラによる並列処理 OSCARコンパイラによるマルチグレイン並列処理 ループ

(67)

データローカリティ最適化

データローカリティ最適化

1 1 PE0 PE1 12 1 Analyzing 2 3 4 5 6 2 3 5 4 6 12 7 10 11 9 8 3 4 2 6 7 8 14 18 data affinity among loops 3 4 5 6 7 6 12 7 10 11 9 8 13 14 15 16 5 8 9 11 15 18 19 25 Decomposes loops 8 9 10 18 17 19 21 22 20 23 24 25 26 10 13 16 17 20 22 26 29 loops considering cache or local memory size Executing same colored l 11 12 13 14 23 24 25 26 27 28 29 31 32 30 dlg0 dlg3 dlg1 dlg2 21 22 23 24 26 27 28 30 memory size (Loop Aligned Decomposition) loops successively MTG MTG decomposed i f h k Scheduling onto 15 33

Data Localization Group

27 28

31 32

into four chunks Scheduling onto two processors

(68)

OSCAR API

OSCAR 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 offchip CSM DTC (Data Transfer Controller) FVR(Frequency and Voltage Control Register) (Processor Core n) PC1 (Processor Core1) PC n TIMER (Timer Unit) 同期 onchip CSM ( Memory) (Centralized Shared Memory) FVR GROUPBAR (Group Barrier Synchronization)

(69)

32コアサーバでの性能

32コアサーバでの性能

IBM Power6 (2core) x 16

7.3 time speedup on average

(70)

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

技術

(71)

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

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

る低消費電

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

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

ア数

増え も消費電力は抑えた

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

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

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

• Parallelizable C

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

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

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

(72)

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

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

 Power saving control in the fastest execution mode

FV control Power off control

k h d li l FV control Power off control

Task scheduling result

Power saving control in realtime execution mode

(73)

Solar Powered RP2 Multicore Chip

Solar Powered RP2 Multicore Chip

(74)

ヘテロジニアスマルチコア用

コンパイラ技術

多種類の計算エンジン(プロセッサ)を1チップに集積した

多種類の計算エンジン(プロセッサ)を1チップに集積した

SoCアーキテクチャ

プログラムの並列性を抽出し、各プロセッサの特徴に適し

プ グラムの並列性を抽出し、各プ セッサの特徴に適し

たタスクの分割と配置を行う並列化コンパイラ

汎用タ ク 汎用タスク汎用タスク DSPタスク 汎用タスク CPU CPU DSP プログラム 汎用タスク DSPタスクS タスク DRPタスク DRP BMP フ ロク ラム DRPタスク BMPタスク ヘテロジニアス・チップマルチプロセッサ BMPタスク CPU:汎用プロセッサ 並列化コンパイラ 並列化コンパイラ

(75)

Parallelizable C

Parallelizable C

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

• Cで記述されたプログラムは解析が困難

– ポインタの柔軟性に起因

ポインタの柔軟性に起因

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

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

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

4 96 7.05 5.24 6.06 5.30 6.16 6.00 7.00 8.00 io 2.41 2.03 1.94 1.97 1.90 1.91 3.72 4.10 3.63 3.67 3.09 3.55 4.96 2.00 3.00 4.00 5.00 Sp ee d -u p r at i 1core 2core 4core IBM Power5+ 8コアWSでの性能 0.00 1.00 8core

(76)

チュートリアル内容

チュートリアル内容

なぜ

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

ニー」の世界へ~

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

プロセ サ/メモリ ア キテクチャ

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

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

– 自動並列化コンパイラ

• 今後の展望

今後の展望

(77)

実装からプログラミングレベルまでの

統合的な技術開発が必要!!

1 プ グラミング技術 応用技術 (On‐Line画像処理など) 2 3 5 4 6 12 7 10 11 9 8 13 14 15 16 コンパイラ/OS技術 プログラミング技術 (API標準化, Tuningなど) Program Program 17 18 19 21 22 20 23 24 25 26 27 28 29 31 32 30 dlg0 dlg3 dlg1 dlg2 アーキテクチャ技術 コンパイラ/OS技術 (自動並列化, VMなど) Program Program c c c c c c c c c c c c c c c c c c c c c c c c c c c 33

Data Localization Group

回路設計技術 ア キテクチャ技術 (CPU/メモリ構成, NOCなど) Stacked Main Memory c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c P 半導体製造/実装技術 ( 次元積層など)

(Sub‐Threshold回路など) AcceleratorMany‐Core

c c c c c c c c c c c c c c ARBITER FIFO FIFO X+ X‐ X+ X‐ 入力チャネル 出力チャネル GRANT EES2009チュートリアル 77 (3次元積層など) 5x5  CROSSBAR FIFO FIFO FIFO Y+ Y‐ CORE Y+ Y‐ CORE 3) パケットを出力チャネ ルへ転送

参照

Outline

関連したドキュメント

demonstrate that the error of our power estimation technique is on an average 6% compared to the measured power results.. Once the model has been developed,

Lang, The generalized Hardy operators with kernel and variable integral limits in Banach function spaces, J.. Sinnamon, Mapping properties of integral averaging operators,

Algebraic curvature tensor satisfying the condition of type (1.2) If ∇J ̸= 0, the anti-K¨ ahler condition (1.2) does not hold.. Yet, for any almost anti-Hermitian manifold there

In this paper, for each real number k greater than or equal to 3 we will construct a family of k-sum-free subsets (0, 1], each of which is the union of finitely many intervals

Some of the known oscillation criteria are established by making use of a technique introduced by Kartsatos [5] where it is assumed that there exists a second derivative function

Using the previous results as well as the general interpolation theorem to be given below, in this section we are able to obtain a solution of the problem, to give a full description

① 要求仕様固め 1)入出力:入力電圧範囲、出力電圧/精度 2)負荷:電流、過渡有無(スリープ/ウェイクアップ含む)

『国民経済計算年報』から「国内家計最終消費支出」と「家計国民可処分 所得」の 1970 年〜 1996 年の年次データ (