メニーコア・プロセッサとそれを支える...
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
コアの接続方式: バス 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
実システムの例: 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
低消費電力化に向けて
• 電圧と周波数の制御 (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
メニーコア時代における自動並列化コンパイラの可能性
音が きます• メニーコアの足音が聞こえてきます
– 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コンパイラ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
これからのコンパイラ技術これからのコンパイラ技術
パ る低消費電• コンパイラによる低消費電力化
– コア数が増えても消費電力は抑えたいア数 増え も消費電力は抑えた
• ヘテロジニアスマルチコア用コンパイル技術
いろいろな アが混載される状況に対応– いろいろなコアが混載される状況に対応
• 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
ヘテロジニアスマルチコア用コンパイラ技術
多種類の計算エンジン(プロセッサ)を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) パケットを出力チャネルへ転送