CPU の高速化テクニックから スーパーコンピュータまで

58
CPU ののののののののののの のののののののののののの のの

description

CPU の高速化テクニックから スーパーコンピュータまで. 天野. SoC 設計論. 大学院. SoC 設計演習. マイクロプロセッサアーキテクチャ特論. コンピュータアーキテクチャ特論. VLSI 設計論 ( MIPS の設計、レイアウト). 4 年春. 情報工学実験第 2  ( I/O を含んだマイクロプロセッサ). 3 年秋. コンピュータアーキテクチャ. 3 年春. 高速化の流れ. スレッドレベルの 高速化. Simultaneous Multithreading. マルチコア化. 複数命令の同時発行 (スーパースカラ). 命令レベルの - PowerPoint PPT Presentation

Transcript of CPU の高速化テクニックから スーパーコンピュータまで

Page 1: CPU の高速化テクニックから スーパーコンピュータまで

CPUの高速化テクニックからスーパーコンピュータまで

天野

Page 2: CPU の高速化テクニックから スーパーコンピュータまで

コンピュータアーキテクチャ

情報工学実験第 2 ( I/Oを含んだマイクロプロセッサ)

VLSI設計論 (MIPSの設計、レイアウト)

マイクロプロセッサアーキテクチャ特論 コンピュータアーキテクチャ特論

SoC 設計論 SoC 設計演習

3年春

3年秋

4年春

大学院

Page 3: CPU の高速化テクニックから スーパーコンピュータまで

高速化の流れ

1980 1990 2000

RISCの登場パイプライン化

パイプラインを細かく(スーパーパイプライン)周波数の向上

命令の動的スケジュール

複数命令の同時発行(スーパースカラ)

マルチコア化

マルチコア革命2003-2004

命令レベルの高速化

スレッドレベルの高速化 Simultaneous

Multithreading

Page 4: CPU の高速化テクニックから スーパーコンピュータまで

MIPSの命令セット• 32ビットレジスタが32個ある• 3オペランド方式• LD,STはディスプレースメント付き

–ADD R 3,R1,R2–ADDI R 3,R1,#1–LD R 3, 10(R1)–ST R1, 20(R2)–BEQ R1,R2, loop

Page 5: CPU の高速化テクニックから スーパーコンピュータまで

命令フォーマット• 3種類の基本フォーマットを持つ

R-type

I-type

J-type

opcode

opcode

opcode

rs

rs

rt

rt

rdshift

amountfunction

immediate

target

31 26 25 21 20 16 15 11 10 6 5 0

31 26 25 21 20 16 15 0

31 26 25 0

Page 6: CPU の高速化テクニックから スーパーコンピュータまで

パイプラインの概観

InstructionMemory

RegisterFile

MU

X

DataMemory

MU

XM

UX

MU

X MU

X

IF ID EX MEM WB

pcset hazard4

ddataout daddriaddr ddatainidata

pc

rsrt

imm

rd

ir

exfdata

memfdata

badr

aluout

rwadr

dout0

dout1

ifpc

+

ALU

ALU

Decoder

control signals

Page 7: CPU の高速化テクニックから スーパーコンピュータまで

パイプライン処理の問題点とその解決法

• うまく動けば 1クロックに 1命令終わる – CPI=1でクリティカルパスは1 /(ステージ数)– ステージ数分高速化、周波数向上のためにもステージ数を増やす

• スーパーパイプライン• 命令間に依存性があると継続する命令が実行できずストール(失速)する– データハザード– できる命令から実行する

• 命令の動的スケジューリング:アウトオブオーダ実行• 飛び先と飛ぶかどうかが分からないとストールする

– コントロールハザード– 分岐予測– 投機的実行:実行してしまって後で取り消す

Page 8: CPU の高速化テクニックから スーパーコンピュータまで

Hennessy &PattersonComputer Architectureより

命令のアウトオブオーダ実行トーマスローのアルゴリズム

Page 9: CPU の高速化テクニックから スーパーコンピュータまで

スーパスカラ方式

IF

RF

EX

WB

IF

RF

EX

WB

メモリシステム

キャッシュ

浮動小数点演算命令通常の命令

浮動小数点演算パイプライン

通常の命令パイプライン

2命令同時発行の例(3,4命令同時発行も実現されている)

命令コードの互換性がある命令実行制御がたいへん

Page 10: CPU の高速化テクニックから スーパーコンピュータまで

VLIW( Very  Long Instruction Word)方式

IF

RF

WB

EX EX EX EX

4つの命令分の長い命令

実行の制御はコンパイラがあらかじめ行うので制御は簡単コードの互換性がない

Page 11: CPU の高速化テクニックから スーパーコンピュータまで

マルチスレッドとSMT(Simultaneous Multi-Threading)

Issue Slots Issue Slots Issue Slots

Clo

ck C

ycle

s

superscalar fine-grainedmultithreaded superscalar

SMT

Page 12: CPU の高速化テクニックから スーパーコンピュータまで

マルチコア、メニーコア• 動作周波数の向上が限界に達する

– 消費電力の増大、発熱の限界– 半導体プロセスの速度向上が配線遅延により限界に達する

• 命令レベル並列処理が限界に達する• メモリのスピードとのギャップが埋まらない→ マルチコア、メニーコアの急速な発達マルチコア革命  2003-2004年

• プログラマが並列化しないと単一プログラムの性能が上がらない

Page 13: CPU の高速化テクニックから スーパーコンピュータまで

クロック周波数の向上

100MHz

1GHz

1992 2000 2008

Pentium43.2GHz

Nehalem3.3GHz

Alpha21064150MHz

プロセッサの動作周波数は2003年で限界に達した消費電力、発熱が限界に

年間 40%

高速プロセッサのクロック周波数

周波数

Page 14: CPU の高速化テクニックから スーパーコンピュータまで

Flynnの分類• 命令流 (Instruction   Stream) の数:  M

(Multiple)/S(Single)

• データ流( Data   Strea m)の数: M/S– SISD

• ユニプロセッサ(スーパスカラ、 VLIW も入る)

– MISD :存在しない( Analog   Computer )– SIMD– MIMD

Page 15: CPU の高速化テクニックから スーパーコンピュータまで

一人の命令で皆同じことをするSIMD

命令

命令メモリ

演算装置

Data memory

半導体チップ内でたくさんの演算装置を動かすには良い方法

アクセラレータ(普通の CPUにくっつけて計算能力を加速する加速装置)の多くはこの方式

安くて高いピーク性能が得られる→パソコン、ゲーム機と  共用

Page 16: CPU の高速化テクニックから スーパーコンピュータまで

– TSUBAME2.0(Xeon+Tesla,Top500 2010/11 4th )– 天河一号 (Xeon+FireStream,2009/11 5th )

GPGPU : PC 用グラフィックプロセッサ

※()内は開発環境

Page 17: CPU の高速化テクニックから スーパーコンピュータまで

PBSM PBSM

Thread Processors

PBSM PBSM

Thread Processors

PBSM PBSM

Thread Processors

PBSM PBSM

Thread Processors

PBSM PBSM

Thread Processors

Thread Execution Manager

Input Assembler

Host

Load/Store

Global Memory

GeForceGTX280240 cores

Page 18: CPU の高速化テクニックから スーパーコンピュータまで

GPU  (NVIDIA’s GTX580)

512 GPU cores ( 128 X 4 )768 KB L2 cache40nm CMOS 550 mm^2

128 Cores128 Cores 128 Cores128 Cores

128 Cores128 Cores 128 Cores128 Cores

L2 CacheL2 Cache

128個のコアはSIMD動作をする

4つのグループは独立動作をする

もちろん、このチップをたくさん使う

Page 19: CPU の高速化テクニックから スーパーコンピュータまで

MIMD ( Multipe-Instruction Streams/

Multiple-Data Streams)

Node 1

Node  2

Node 3

Node 0

Interconnect ionNetwork

メモリ空間

独立して動けるプロセッサを複数使う

Page 20: CPU の高速化テクニックから スーパーコンピュータまで

• 自分のプログラムで動けるプロセッサ(コア)を多数使う–同期:足並みを揃える–データ交信:共通に使うメモリを持つなど

• 最近の PC用のプロセッサは全部この形を取っている

• 最近はスマートフォン用の CPUもマルチコア化

MIMD ( Multipe-Instruction Streams/

Multiple-Data Streams) の特徴

Page 21: CPU の高速化テクニックから スーパーコンピュータまで

Multi-Core (Intel’s Nehalem-EX)

8 CPU cores24MB L3 cache45nm CMOS 600 mm^2

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPU

CPUCPUL3 CacheL3 Cache

L3 CacheL3 Cache

Page 22: CPU の高速化テクニックから スーパーコンピュータまで

Intel 80-Core Chip

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

Page 23: CPU の高速化テクニックから スーパーコンピュータまで

まとめ• 汎用プロセッサのマルチコア化は現在絶好

調進行中– 世代が進む毎に2ずつ増えている– しかし、コア数をこれ以上増やしても良いこと

がないかも、、、• メニーコア

– GPU などのアクセラレータの性能向上は進む– メニーコアによるクラウドコンピューティング

Page 24: CPU の高速化テクニックから スーパーコンピュータまで

スーパーコンピュータ• 特に科学技術計算が非常に速い計算機

–医療、物理、天体、気象などの研究用の膨大な計算をする

–非常に高価なため主として国の研究機関に設置–開発、運用のためには総合的な技術が必要–世界一高速なスーパーコンピュータはアメリカ、日本、中国で争ってきた

–巨額の国家予算がつぎ込まれるため、政治的な関心が高い→ 2009年 12月 事業仕分けの対象になる 「一番じゃなきゃいけないんですか?」昨年、「京」が世界一を奪取、 10PFLOPSを達成今、最もマスコミが取り上げてくれるコンピュータ

Page 25: CPU の高速化テクニックから スーパーコンピュータまで

FLOPSって何?• Floating Point Operation Per Second:一秒間に実行できる浮動小数点演算の数

• 浮動小数とは?– (仮数 )  × 2 (指数乗) で表す数–倍精度 (64ビット )、単精度 (32ビット)があり世界標準( IEEE標準)が決まっている

23ビット8ビット

52ビット11ビット

単精度

倍精度

符号 指数 仮数

Page 26: CPU の高速化テクニックから スーパーコンピュータまで

ペタフロップスって何?

10の 6乗

100万

M(メガ)

10の 9乗

10億

G(ギガ)

1兆

T(テラ)

10の 12乗

1000兆

P(ペタ)

10の 15乗

100京

E(エクサ)

10の 18乗

10PFLOPS  =  1秒に 1京回浮動小数点演算を行う→ 「京」の名前の由来

iPhone4S140MFLOPS

ハイスペックな PC50-80GFLOPS

アクセラレータ数 TFLOPS

スーパーコンピュータ数 10TFLOPS-10PFLOPS

注意! スーパーコンピュータの性能向上率は 1.9倍 /年

Page 27: CPU の高速化テクニックから スーパーコンピュータまで

世界一はどのように決まる?• Top500/Green500   Linpack という行列計算プログラムを動かした

場合の性能、性能 / 電力をランキング– 演算性能重視

• ゴードンベル賞– もっとも演算性能が高いマシン、値段が安くて性能の高いマシン、特徴の

あるマシンを表彰• HPC Challenge

– Global HPL  行列演算: 演算性能– Global Random Access : メモリのランダムアクセス: 通信性能– EP stream per system:  多重負荷時のメモリアクセス: メモリ性能– Global FFT: 演算性能と通信性能が共に要求されるやっかいな問題

• 11 月  ACM/IEEE Supercomputing Conference– Top500 、ゴードンベル賞、 HPC   Challenge 、 Green500

• 6 月  International Supercomputing Conference– Top500 、 Green500

Page 28: CPU の高速化テクニックから スーパーコンピュータまで

2

3

8

9

10

2011.112011.62010.112010.6

Rmax:Peta FLOPS

KJapan

Tianhe( 天河 )   China

Jaguar USANebulae China

Tsubame JapanRoadrunner USAKraken USA

Jugene Germany

Top 5

SequoiaUSA16PFLOPS

Page 29: CPU の高速化テクニックから スーパーコンピュータまで

SACSIS2012招待講演より

Page 30: CPU の高速化テクニックから スーパーコンピュータまで

名称 開発、設置場所

ハードウェア コア数 性能(ピーク) TFLOPS

電力( KW)

K  (京 )

(Japan)

RIKEN AICS SPARC VIIIfx 2.0GHz Tofu Interconnect

Fujitsu

705024 10510

(11280)

12659.9

Tianhe-1A( 天河 )

(China)

National Supercomputer Center Tenjien

NUDT YH MPPXeon X5670 6C 2.93GHz,NVIDIA 2050 NUDT

186368 2566

(4701)

4040

Jaguar

(USA)

DOE/SC/Oak Ridge

National Lab.

Cray XT5-HE Opteron 6-Core 2.6GHz, Cray Inc.

224162 1759

(2331)

6950

Nebulae(China)

National Supercomputing Centre in Shenzhen

Dawning TC3600 Blade, Xeon X5650 6C 2.66GHz, Infiniband QDR, NVIDIA 2050,Dawing

120640 1271

(2974)

2580

TSUBAME2.0(Japan)

GSIC,Tokyo Inst. of Technology

HP ProLiant SL390s G7 Xeon 6C X5670, NVIDIA GPU,NEC/HP

73238 1192

(2287)

1398.6

Top 500 2011  11月

Page 31: CPU の高速化テクニックから スーパーコンピュータまで

マシン 設置場所 FLOPS/W Total

kW

1 BlueGene/Q, Power BQC 16C 1.60 GHz, Custom

IBM - Rochester 2026.48 85.12

2- 5 BlueGene/Q, Power BQC 16C 1.60 GHz, Custom

BlueGene/Q Prototype

IBM – Thomas J. Watson Research Center /Rochester

1689.86 -2026.48

6 DEGIMA Cluster, Intel i5, ATI Radeon GPU, Infiniband QDR

Nagasaki Univ. 1378.32 47.05

7 Bullx B505, Xeon E5649 6C 2.53GHz, Infiniband QDR, NVIDIA 2090

Barcelona Supercomputing Center

1266.26 81.50

8 Curie Hybrid Nodes - Bullx B505, Nvidia M2090, Xeon E5640 2.67 GHz, Infiniband QDR

TGCC / GENCI 1010.11 108.80

Green 500 2011  11月

10位は Tsubame-2. 0(東工大)

1-5位はIBM BlueGene/Q

Page 32: CPU の高速化テクニックから スーパーコンピュータまで

一番じゃなきゃいけないんですか?• Top500 の一位に固執する必要はない• 差が少しならばこだわっても意味がない  → オリンピックではないので、、

Green500 、ゴードンベル賞コスト対性能部門、 HPC   Challenge の各プログラム

それぞれの上位のマシンはそれぞれの利用価値があるマスコミはあまり取り上げてくれないが、、

• 今までの歴史を見ると、一位は他を圧倒して登場する• Top500 の一位はゴードンベル賞、 HPC   Challenge

も受賞する場合が多い– 京は、 Top500 1 位、ゴードンベル賞性能部門、 HPC Challeng

e 4つすべてで受賞している– 一位の宣伝効果は大きい– 一定の間隔で一位を取れる技術を保持することは重要

Page 33: CPU の高速化テクニックから スーパーコンピュータまで

スーパーコンピュータはなぜ速い

×凄く速いクロック(時間刻み)で動くから

100MHz

1GHz

1992 2000 2008

Pentium43.2GHz

Nehalem3.3GHz

Alpha21064150MHz

京 2GHz

プロセッサの動作周波数は2003年で限界に達した消費電力、発熱が限界に

京の動作周波数はその辺のパソコンの CPUよりも低い→発熱を抑えるため

年間 40%

高速プロセッサのクロック周波数

周波数

Page 34: CPU の高速化テクニックから スーパーコンピュータまで

並列処理の 3つの方法並列処理→ 皆で働けば速くなる:プロセッサコア(処理

装置)をたくさんもつ– 一人の命令で皆が同じことをやる

• SIMD   (Single Instruction Stream Multiple Data Streams) :  シムディー

– 流れ作業• パイプライン処理、ベクトル計算機

– 皆でてんでんばらばらに計算するが、どこかで歩調を合わせる• MIMD(Multiple Instruction Streams Multiple Data Streams):

ミムディー、マルチコア、メニーコア、スカラー計算機– どのマシンも 3 つの方法を色々なレベルで使っている– しかし、使い方によっていくつかの種類に分けることができる– たくさんのプロセッサをちゃんと動かすために

• 巨大、高速なメモリ、ディスク• 高速な結合網

Page 35: CPU の高速化テクニックから スーパーコンピュータまで

2

3

4

5

10

Peta FLOPS11 K

Japan

Tianhe( 天河 )   China

Jaguar USA

Nebulae China

Tsubame Japan

ピーク(最大)性能とLinpack 性能

アクセラレータタイプはピークと Linpack 性能の差が大きい

ホモジーニアス

アクセラレータGPU利用

アクセラレータタイプはエネルギー効率が良い

Page 36: CPU の高速化テクニックから スーパーコンピュータまで

パイプライン処理

1 2 3 4 5 6

ステージ

それぞれのステージは自分の仕事が終わったら結果を次に渡すステージの実行時間が同じならば、 6倍に性能が上がる要するに流れ作業結果が出るまで次の作業ができない場合は、パイプラインに泡が入ってしまう → しかし行列計算など独立に計算ができれば有利!

Page 37: CPU の高速化テクニックから スーパーコンピュータまで

ベクトル処理(ベクトル計算機)

a0a1a2…..

乗算器加算器

X[i]=A[i] * B[i]Y=Y+X[i]

ベクトルレジスタ

行列が長ければ効率が良い古典的なスーパーコンピュータはベクトル型 (地球シミュレータ)最近は減っている

b0b1b2….

Page 38: CPU の高速化テクニックから スーパーコンピュータまで

ベクトル処理(ベクトル計算機)

a1a2…..

乗算器加算器

X[i]=A[i] * B[i]Y=Y+X[i]

ベクトルレジスタ

b1b2….

a0

b0

Page 39: CPU の高速化テクニックから スーパーコンピュータまで

ベクトル処理(ベクトル計算機)

a2…..

乗算器加算器

X[i]=A[i] * B[i]Y=Y+X[i]

ベクトルレジスタ

b2….

a0b0

b1

a1

Page 40: CPU の高速化テクニックから スーパーコンピュータまで

ベクトル処理(ベクトル計算機)

a11…..

乗算器加算器

X[i]=A[i] * B[i]Y=Y+X[i]

ベクトルレジスタ

b11….

a9b9

b10

a10

x1x0

Page 41: CPU の高速化テクニックから スーパーコンピュータまで

MIMD ( Multipe-Instruction Streams/

Multiple-Data Streams)

Node 1

Node  2

Node 3

Node 0

Interconnect ionNetwork

メモリ空間

独立して動けるプロセッサを複数使う

Page 42: CPU の高速化テクニックから スーパーコンピュータまで

日本のスーパーコンピュータ紹介

• 「京」スーパーコンピュータ– 現在の世界一、ホモジーニアスなマルチコア、スカラプロセッ

サ– アクセラレータを用いず久々に一位を奪取、使いやすい

• 地球シミュレータ– ベクトル計算機で世界一を取った最後?のコンピュータ– ピーク性能と実効性能の差が小さい

• 東工大  Tsubame– アクセラレータ( GPU) を多数利用、電力比に優れたスーパーコ

ンピュータ• 長崎大  DEGIMA

– アクセラレータを利用、手作り感のあるスーパーコンピュータ、優れたコストパフォーマンス、エネルギー効率、ゴードンベル賞受賞

• GRAPE プロジェクト– 天体物理学用、専用計算機、 SIMD 、様々なマシンがゴードンベ

ル賞を何度も受賞しているユニークなスーパーコンピュータ

Page 43: CPU の高速化テクニックから スーパーコンピュータまで

SACSIS2012招待講演より

Page 44: CPU の高速化テクニックから スーパーコンピュータまで

スーパーコンピュータ「京」

Core

Core

Core

Core

Core

Core

Core

Core

L2 C

InterConnect

Controller

Tofu Interconnect       6-D Torus/Mesh

SPARC64 VIIIfx Chip

4 nodes/board

24boards/Lack

96nodes/Lack

RDMA mechanismNUMA or UMA+NORMA

Memory

Page 45: CPU の高速化テクニックから スーパーコンピュータまで

SACSIS2012招待講演より

Page 46: CPU の高速化テクニックから スーパーコンピュータまで

SACSIS2012招待講演より

Page 47: CPU の高速化テクニックから スーパーコンピュータまで

水冷式のボード構成

Page 48: CPU の高速化テクニックから スーパーコンピュータまで

京 のラック構成

Page 49: CPU の高速化テクニックから スーパーコンピュータまで

6次元トーラスTofu

Page 50: CPU の高速化テクニックから スーパーコンピュータまで

SACSIS2012招待講演より

Page 51: CPU の高速化テクニックから スーパーコンピュータまで

京はなぜ世界一になれたのか?• アメリカの国家プロジェクトが中止、遅延した

– 財政危機の影響• NEC/日立の撤退により複合システムが単一システムに変更された– 資金の効率的な利用、ノード数の増大

• 事業仕分けされかかったことで注目があつまった– 理研、文科省が賢明な計画、資金集中を行った

• 富士通の技術者の設計が優れていた。– 実装もがんばって短期間で大規模システムを稼動させた

Page 52: CPU の高速化テクニックから スーパーコンピュータまで
Page 53: CPU の高速化テクニックから スーパーコンピュータまで
Page 54: CPU の高速化テクニックから スーパーコンピュータまで
Page 55: CPU の高速化テクニックから スーパーコンピュータまで

エクサスケールコンピュータ• エクサスケールは既に各国の視野に入っている• 「京」は先月 BlueGene Q で作られた Sequoia に首位

を奪回された• 次をどうするか?

– Feasibility   Study (可能性の検討作業)が始まっている– 今までのように独自 LSI チップで首位を取ることができないか

も• スーパーコンピュータは「持ち出し」でやってきたが、もう日本

の半導体企業にはその力がない• 多額の国家予算が Intel 、 NVIDEA に流れることになる

– 単一のコアの性能向上はとっくの昔に終わっている• あとは数を増やすこと、一定の空間にいかに演算能力を詰め込め

るかが勝負• エクサスケール実現には 7000万コアが必要!

– 性能向上の限界は?• 技術的限界よりは資金的な限界が先に来るだろう

Page 56: CPU の高速化テクニックから スーパーコンピュータまで

アムダールの法則並列処理できない割合が1%

並列処理できる割合が 99%

並列に動いてコア数分の 1に

しかし、 100倍以上速くなることはない!

100コアで 50倍、 1000コアで 91倍、 70万コアで 99.9999倍

並列に実行できない部分が少しでもあったら、その割合で速度向上は制限される京は iPhone3Sの 1億倍速い。しかし、 iPhone4Sで 100時間掛かるアプリが1ミリ秒で終わるかというと、終わらない可能性が高い

Page 57: CPU の高速化テクニックから スーパーコンピュータまで

エクサスケールスーパーコンピュータは

役にたつのか?• 解きたい問題のサイズが大きくなれば大きくな

るほど、並列化できない部分は減ってくる。– 並列化できない部分 1日+並列化できる部分 10年→   1日 +1日 で解ければインパクトが大きい

• 京では歯が立たず、エクサスケールならば解ける問題はどの程度あるのか?– コンピュータのコア数が増えれば増えるほど、問題領域は減って

いく可能性が高い– 新しい領域を見つけることができるか?– 今までにできなかったことができる、見えなかったものが見え

ることは間違いない• 性急に成果を求められても多分無理だろう、、、

• 巨大な処理能力が研究用に開放されていることが重要

Page 58: CPU の高速化テクニックから スーパーコンピュータまで

スーパーコンピュータを作り続けたい

• コンピュータのハードウェア技術、ソフトウェア技術、信頼性管理技術、半導体開発技術、アプリケーション技術の結晶だから

• フラグシップであり、象徴だから• 日本のコンピュータには他に何も残っていないから、、• 研究用、平和利用に巨大計算能力が開放されているのは素晴らし

いことだから• それが役に立つかどうかは別として、できないことができ、見え

ないものが見えるから

• では無限に計算能力は必要なのか?• 使われるプロセッサが全て米国製になっても日本で作り続ける意

味があるのか?• Linpack などの数値計算に特化した(いわゆる)スーパーコン

ピュータを作り続けることに意味があるのか?

エクサスケールコンピュータプロジェクトでは、これらの問いに答える必要がある