シングルコアとマルチコア

第7回 シングルコアとマルチコア
長岡技術科学大学
電気電子情報工学専攻
出川智啓
今回の内容

前々回の授業の復習


CPUの進化
半導体集積率の向上→CPUの動作周波数の向上

+ 複雑な処理を実行する回路を構成(前々回の授業)

マルチコアCPUへの進化

均一・不均一なプロセッサ

コプロセッサ,アクセラレータ
219
GPGPU実践基礎工学
2015/10/21
コンピュータの歴史

世界初のデジタルコンピュータ



世界初の汎用コンピュータ




1944年 ハーバードMark I*1
機械式リレーを採用
1946年 ENIAC*2
軍事用に開発(ミサイルの弾道計算など)
300FLOPS
金融や株取引にも利用が拡大

様々な用途に利用できるようコンピュータを設計
*1https://en.wikipedia.org/wiki/Harvard_Mark_I
*2https://en.wikipedia.org/wiki/ENIAC
220
GPGPU実践基礎工学
2015/10/21
スーパーコンピュータ

様々な用途に利用できるようコンピュータを設計



設計が複雑化
1970年代には性能が停滞
科学技術計算に特化して性能を高めたコンピュータ

Cray‐1*


世界初のスーパーコンピュータ
日本製スーパーコンピュータ


日立,富士通,NECが製造
たびたび世界トップの性能を達成
*https://en.wikipedia.org/wiki/Cray‐1
221
GPGPU実践基礎工学
2015/10/21
スーパーコンピュータの性能

TOP500*




スーパーコンピュータの世界ランキング
6月と11月に更新
次の発表は11月16~21日(New Orleans, LA)の
Supercomputing Conferenceで
日本のスーパーコンピュータもたびたび世界一に




数値風洞(航空宇宙技術研究所、現在はJAXAに統合)
SR2201(東大)
CP‐PACS(筑波大)
地球シミュレータ(海洋研究開発機構)



前期トップのコンピュータから5倍の性能向上
2年半にわたって首位
京コンピュータ(理化学研究所計算科学研究機構)
*http://www.top500.org
222
GPGPU実践基礎工学
2015/10/21
TOP500 List(2015, Jun.)

http://www.top500.org/lists/2015/6/
計算機名称(設置国)
アクセラレータ
1
Tianhe‐2 (China)
Intel Xeon Phi
2
Titan (U.S.A.)
NVIDIA K20x
3
Sequoia (U.S.A.)
4
実効性能[PFlop/s]
/ピーク性能[PFlop/s]
33.9/54.9
消費電力[MW]
17.8
17.6/27.1
8.20
−
17.2/20.1
7.90
K computer (Japan)
−
10.5/11.3
12.7
5
Mira (U.S.A.)
−
8.59/10.1
3.95
6
Piz Daint
6.27/7.79
2.33
7
Shaheen II(Saudi Arabia)
5.54/7.24
2.83
8
Stampede (U.S.A.)
Intel Xeon Phi
5.17/8.52
4.51
9
JUQUEEN (Germany)
−
5.01/5.87
2.30
Vulcan (U.S.A.)
−
4.29/5.03
1.97
10
223
(Switzerland)
NVIDIA K20x
GPGPU実践基礎工学
2015/10/21
理論ピーク性能と実効性能

Floating Point Operations Per Second


理論ピーク性能



1秒あたりに浮動小数演算を何回実行できるか
プロセッサの数(プロセッサ上に実装された演算器の数)や動
作周波数から求める理論的な速度
「全ての機能が全て同時に使えれば」という理論的な値
実効性能(実行性能)


224
ある問題に対してプログラムを実行したときに得られた性能
プログラムの中で行っている計算(浮動小数点演算)の回数
を数え,プログラムの実行にかかった時間を測定して割り算
GPGPU実践基礎工学
2015/10/21
理論ピーク性能と実効性能

Floating Point Operations Per Second


1秒あたりに浮動小数演算を何回実行できるか
なぜ浮動小数点演算だけ?

整数の加算はアドレス計算(プログラムカウンタなど)で頻繁に
使うので高速になるよう設計

浮動小数点演算と比較すると整数演算の影響は非常に小さい

225
影響が小さくないシステムは使い物にならない
GPGPU実践基礎工学
2015/10/21
CPUの理論性能

公式


FLOPS = 1コアの演算性能 [?]
× コア数
[core]
× CPUの動作周波数 [Hz=clock/sec]
1コアの演算性能



226
=1度に発行出来る浮動小数点演算命令
単位は[Floating Point Operations/clock/core]
性能の評価には動作周波数だけでなく,1コアが1クロックで
発行できる命令数が重要
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Pentium

1コアあたりの演算性能 1 
コア数
1

動作周波数(最高)
300M

ピーク演算性能
1 Floating Point Operations/clock/core × 1 core × 300M clock/s = 300M flop/s

227
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Pentium II

1コアあたりの演算性能 1 
コア数
1

動作周波数(最高)
450M

ピーク演算性能
1 Floating Point Operations/clock/core × 1 core × 450M clock/s = 450M flop/s

228
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Pentium III
初のSSE命令搭載

1コアあたりの演算性能 1.5 
コア数
1

動作周波数(最高)
1.4G

ピーク演算性能
1.5 Floating Point Operations/clock/core × 1 core × 1.4G clock/s = 2.1G flop/s

229
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Pentium 4

1コアあたりの演算性能 2 
コア数
1

動作周波数(最高)
3.8G

ピーク演算性能
2 Floating Point Operations/clock/core × 1 core × 3.8G clock/s = 7.6G flop/s

230
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Core 2 Duo

1コアあたりの演算性能 4 
コア数
2

動作周波数(最高)
3.33G

ピーク演算性能
4 Floating Point Operations/clock/core × 2 core × 3.33G clock/s = 26.64G flop/s

231
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Core 2 Quad

1コアあたりの演算性能 4 
コア数
4

動作周波数(最高)
3.2G

ピーク演算性能
4 Floating Point Operations/clock/core × 4 core × 3.2G clock/s = 51.2G flop/s

232
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Core i7 (Nehalem)

1コアあたりの演算性能 4 
コア数
4

動作周波数(最高)
3.2G

ピーク演算性能
4 Floating Point Operations/clock/core × 4 core × 3.2G clock/s = 51.2G flop/s

233
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Core i7 (Sandy Bridge)
AVX命令を搭載

1コアあたりの演算性能 8

コア数
6

動作周波数(最高)
3.5G

ピーク演算性能
8 Floating Point Operations/clock/core × 6 core × 3.5G clock/s = 168G flop/s

234
GPGPU実践基礎工学
2015/10/21
代表的なCPUの理論性能

Core i7 (Haswell)
AVX2命令

1コアあたりの演算性能 16

コア数
4

動作周波数(最高)
3.5G


ピーク演算性能
16 Floating Point Operations/clock/core × 4 core × 3.5G clock/s = 224G flop/s
235
GPGPU実践基礎工学
2015/10/21
CPUの性能向上


FLOPS = 1コアの演算性能
× コア数
× CPUの動作周波数
1コアの演算性能の向上


コア数の増加


演算器(トランジスタ)の増加
様々な機能を追加
• パイプライン処理
• スーパースカラ実行
• 分岐予測等
トランジスタの増加
CPUの動作周波数

236
回路の効率化や印可電圧の向上
GPGPU実践基礎工学
動作周波数の向上に注力
(ほぼ全ての処理が速くなる)
2015/10/21
CPUの性能の変化

Intelの予告(Intel Developer Forum 2003)

2007年頃には10GHzに達する
Pentium 4 Processor
Pentium III Processor
Pentium II Processor
Pentium Processor
486 Processor
386 Processor
286
8085
8080
8086
4004
Intelが公開している資料を基に作成
http://pc.watch.impress.co.jp/docs/2003/0227/kaigai01.htmで見ることができる
237
GPGPU実践基礎工学
2015/10/21
CPUの性能の変化

2004年頃からクロックが停滞
Intelが公開している資料を基に作成
ASCII.technologies(Dec‐2009)やhttp://www.gdep.jp/page/view/248で見ることができる
238
GPGPU実践基礎工学
2015/10/21
CPUの性能向上*

(2012)
電子回路の構成部品






*姫野龍太郎,絵でわかるスーパーコンピュータ,講談社
機械式リレー
真空管
トランジスタ
IC (Integrated Circuit)
LSI (Large Scale Integrated Circuit)
集積率が上昇
製造技術の進歩による配線の細線化

250nm→180nm→130nm→90nm→65nm→45nm→32nm→22nm



239
10nmまではなんとかなりそう→3次元構造へ
集積できるトランジスタ数の増加
抵抗の低下による消費電力低減
GPGPU実践基礎工学
2015/10/21
CPUの性能向上*

*姫野龍太郎,絵でわかるスーパーコンピュータ,講談社
(2012)
製造技術の進歩による配線の細線化
1.集積できるトランジスタ数の増加


同じ面積に集積できるトランジスタ数が増加
複雑な回路を構成
2.プロセッサの処理速度の向上


240
抵抗が線幅に比例して減少し,消費電力が低下
減少した電力を周波数向上に利用

1秒あたりに0と1を切り替える回数(動作周波数)を増加

(トランジスタ スイッチング速度,消費電力等のキーワードでGoogling)
GPGPU実践基礎工学
2015/10/21
ムーアの法則*
http://ja.wikipedia.org/wiki/ムーアの法則
http://en.wikipedia.org/wiki/Moore%27s_law
インテルの共同設立者ムーアによる経験則


半導体の集積率は1年で倍になる
後に「18ヶ月で2倍」に修正
1010
姫野龍太郎,絵でわかるスーパーコンピュータ,
講談社 (2012)に掲載されている絵を基に作成
ムーアの法則
(12ヶ月で倍)
109
Number of Transistors

*Moore, G.E., Electronics, Vol.38,No.8(1965).
ムーアの法則
(18ヶ月で倍)
デュアルコアインテルItanium 2プロセッサ
インテルItanium 2プロセッサ
インテルItaniumプロセッサ
108
インテルPentium 4プロセッサ
インテルPentium IIIプロセッサ
107
インテルPentium IIプロセッサ
インテルPentiumプロセッサ
106
Intel486プロセッサ
Intel386プロセッサ
105
286
8086
104
8080
8008
4004
103
1970
241
1975
1980
1985
1990
1995
GPGPU実践基礎工学
2000
2005
2010
2015/10/21
CPUの性能向上の限界

製造技術の進歩による配線の細線化



抵抗が線幅に比例して減少し,消費電力が低下
減少した電力を周波数向上に利用
細線化により絶縁部分も狭小化


漏れ電流が発生し,消費電力が減少しない
駆動する電力を上げると発熱量も増加


空冷の限界に到達
動作周波数が停滞
242
GPGPU実践基礎工学
2015/10/21
ポラックの法則*

2倍のトランジスタを使っても,プロセッサの性能はその
平方根倍(1.4倍)程度にしか伸びない


*http://ja.wikipedia.org/wiki/ポラックの法則
http://en.wikipedia.org/wiki/Pollack%27s_Rule
消費電力は2倍,性能は1.4倍
一つのCPUに複数のプロセッサ(コア)を搭載


243
消費電力を上げずに“理論的な”性能を倍に
プログラムの作り方に工夫が必要
GPGPU実践基礎工学
2015/10/21
CPUの性能向上
ムーアの法則
半導体回路
の細線化
性能向上
動作周波数
向上
消費電力が
低下
低下分の電
力をトランジ
スタのスイッ
チングに利用
244
GPGPU実践基礎工学
2015/10/21
CPUの性能向上
ムーアの法則
半導体回路
の細線化
性能向上
絶縁部が狭くなり
漏れ電流が発生,
電力が低下しない
2倍のトランジスタ
を使っても性能は
1.4 倍 程 度 に し か
伸びない
動作周波数
向上
消費電力の増加に
よって発熱量が増
加,空冷の限界
245
消費電力が
低下
低下分の電
力をトランジ
スタのスイッ
チングに利用
GPGPU実践基礎工学
2015/10/21
CPUの性能向上
ムーアの法則
半導体回路
の細線化
性能向上
絶縁部が狭くなり
漏れ電流が発生,
電力が低下しない
2倍のトランジスタ
を使っても性能は
1.4 倍 程 度 に し か
伸びない
動作周波数
向上
消費電力の増加に
よって発熱量が増
加,空冷の限界
246
コア数の増加
消費電力が
低下
低下分の電
力をトランジ
スタのスイッ
チングに利用
GPGPU実践基礎工学
2015/10/21
CPUの性能向上

FLOPS = 1コアの演算性能
× コア数
× CPUの動作周波数

1コアの演算性能の向上


複数のコアを使うように
プログラムを書かないと
速くならない
コア数の増加


演算器(トランジスタ)の増加
トランジスタ数の増加
CPUの動作周波数

247
コンパイラの最適化を利用
回路の効率化や印可電圧の向上
GPGPU実践基礎工学
劇的な性能向上は期待できない
2015/10/21
マルチコア化による高速化

処理をN個に分割して各コアが処理を分担

実行時間が1/Nに高速化されると期待
シングルコアCPU
資源1
資源2
資源3
資源4
マルチコアCPU
資源1
資源2
資源3
資源4
資源1
資源2
資源3
資源4
248
処理時間
GPGPU実践基礎工学
2015/10/21
疑似的なマルチコア

Hyper Threading Technology



一つの物理CPUを複数のCPUに見せる技術
CPU内のレジスタやパイプラインの空きを利用
10~20%程度の高速化
シングルコアCPU
資源1
資源2
資源3
資源4
Hyper Threading Technology
資源1
資源2
資源3
資源4
249
処理時間
GPGPU実践基礎工学
2015/10/21
マルチコアCPUの種類

均一(ホモジニアス,Homogeneous)なプロセッサ




一つのCPUの中に,同じ構造を持ったコアを複数持つ
全てのコアが同じ性能を持つ
プログラムの並列化が容易
不均一(ヘテロジニアス,Heterogeneous)なプロセッサ



250
一つのCPUの中に,異なる構造を持った数種類のコアを持つ
複雑な処理が得意なコア(少数)と簡単な処理が得意なコア
(多数)を持つ
それぞれのコアを意識したプログラミングが必要
GPGPU実践基礎工学
2015/10/21
マルチコアCPU

均一(Homogeneous)なプロセッサ

Intel Coreシリーズ

AMD Phenomシリーズ

富士通 SPARCシリーズ
251
GPGPU実践基礎工学
2015/10/21
マルチコアCPUの厳密な呼び方*

現在コアと呼んでいるのは,シングルコアCPUそのもの

厳密な定義に沿えば,マルチコアCPUは一つのチップに
複数のCPUを搭載
× マルチコアCPU
○ マルチコアチップ
*小柳義夫, 中村宏, 佐藤三久, 松岡聡, 計算科学別巻 スーパーコンピュータ, 岩波書店, 2012
252
GPGPU実践基礎工学
2015/10/21
マルチコアCPU

不均一(Heterogeneous)なCPU

Cell Broadband Engine


AMD APU (Accelerated Processing Unit)


CPUとGPUを統合
Intel Core iシリーズ(第2世代以降)

253
1個の汎用プロセッサと8個の演算用プロセッサの組合せ
GPUを搭載
GPGPU実践基礎工学
2015/10/21
コプロセッサ,アクセラレータ

コンピュータの特定の機能や処理能力を向上させるハー
ドウェア



CPUで行っていた処理を専用ハードウェアが担当
動画像のエンコード・デコード等
コンピュータシミュレーションではCPUの代わりに計算を
実行するハードウェアを指す


254
画像処理装置(Graphics Processing Unit)
メニーコアプロセッサ(Intel Xeon Phi, PEZY‐SC)
GPGPU実践基礎工学
2015/10/21
メニーコアプロセッサ

Intel Xeon Phi*1
OSを搭載しており,接続しているワークステーションとは独立
して動かすことが可能



61コアCPU(1GHz), メモリ8GBのLinuxサーバ
理論演算性能(単精度) 約1 TFLOPS

CPUからの制御が必要なアクセラレータとは異なる
アーキテクチャがIntel CPUと同じであるため,コンパイルし
直すだけで動作する

新モデルを投入予定*2



72コア,メモリ16GB
理論演算性能3.0 TFLOPS
*1http://www.intel.co.jp/content/www/jp/ja/processors/xeon/xeon‐phi‐detail.html
*2http://news.mynavi.jp/articles/2014/11/17/sc14/
255
GPGPU実践基礎工学
2015/10/21
メニーコアプロセッサ

PEZY‐SC*

株式会社PEZY Computingの1,024コアの低消費電力型メ
ニーコアプロセッサ

1024コア,動作周波数733MHz

理論演算性能



単精度 3.0 TFLOPS
倍精度 1.5 TFLOPS
日本の次世代スーパーコンピュータに搭載
*http://www.pezy.co.jp/products/pezy‐sc.html
256
GPGPU実践基礎工学
2015/10/21
GPU

画像処理を行う専用パーツを数値計算用に利用




グラフィックス処理に特化した演算器(コア)を搭載
一つのコアは低性能
並列処理で全体の処理を高速化
GPGPU (General Purpose computing on GPU)

グラフィックス処理用の専用チップであるGPU(Graphics Processing Unit)を一般的な目的(General Purpose)に
利用

GPUを科学計算に利用することを特にGPU Computingと呼ぶ
257
GPGPU実践基礎工学
2015/10/21
コプロセッサ,アクセラレータ


万能的な能力を求められるCPUとは異なり,専用の役割
だけをこなす
性能あたりのパフォーマンスが高い
best
消費電力,体積,購入額

System
second best
Effective Cost/speed
Speed
[$/Gflops]
[Gflops]
Power/speed
Size/speed
[Watt/Gflops] [liter/Gflops]
Xeon E5430
(Dual Quad‐
Core)
115
21.0
3.7
0.39
PLAYSTATION3
157
2.8
1.3
0.06
GeForce
9800GTX
569
2.6
0.5
0.05
MDGRAPE‐3
355
32.8
0.7
0.07
成見哲,濱田剛,小西史一,アクセラレータによる粒子法シミュレーションの加速,情報処理,50(2),pp.129‐139(2009).
258
GPGPU実践基礎工学
2015/10/21