スーパーパイプライン

CPUの高速化テクニックから
スーパーコンピュータまで
天野
SoC設計論
SoC設計演習
マイクロプロセッサアーキテクチャ特論
大学院
コンピュータアーキテクチャ特論
VLSI設計論 (MIPSの設計、レイアウト)
情報工学実験第2 (I/Oを含んだマイクロプロセッサ)
コンピュータアーキテクチャ
4年春
3年秋
3年春
高速化の流れ
スレッドレベルの
高速化
Simultaneous
Multithreading
複数命令の同時発行
(スーパースカラ)
命令レベルの
高速化
RISCの登場
パイプライン化
マルチコア化
パイプラインを細かく
(スーパーパイプライン)
周波数の向上
命令の動的スケジュール
マルチコア
革命
2003-2004
1980
1990
2000
MIPSの命令セット
• 32ビットレジスタが32個ある
• 3オペランド方式
• LD,STはディスプレースメント付き
– ADD R3,R1,R2
– ADDI R3,R1,#1
– LD R3, 10(R1)
– ST R1, 20(R2)
– BEQ R1,R2, loop
命令フォーマット
• 3種類の基本フォーマットを持つ
31
R-type
opcode
31
I-type
21 20
rs
26 25
opcode
31
J-type
26 25
16 15
rt
21 20
rs
11 10
rd
5
rt
0
shift
function
amount
16 15
0
immediate
26 25
opcode
6
0
target
パイプラインの概観
ID
EX
IF
MEM
WB
control
signals
badr
exfdata
ifpc
idata
Instruction
Memory
rd
MUX
ALU
MUX
rs
rt
aluout
imm
ALU
pc
+
MUX
pcset hazard
4
MUX
Register dout0
File
dout1
rwadr
MUX
ir
Decoder
memfdata
iaddr
ddataout
daddr
Data
Memory
ddatain
パイプライン処理の問題点と
その解決法
• うまく動けば1クロックに1命令終わる
– CPI=1でクリティカルパスは1/(ステージ数)
– ステージ数分高速化、周波数向上のためにもステージ数を増やす
• スーパーパイプライン
• 命令間に依存性があると継続する命令が実行できずストー
ル(失速)する
– データハザード
– できる命令から実行する
• 命令の動的スケジューリング:アウトオブオーダ実行
• 飛び先と飛ぶかどうかが分からないとストールする
– コントロールハザード
– 分岐予測
– 投機的実行:実行してしまって後で取り消す
命令のアウトオブオーダ実行
トーマスローのアルゴリズム
Hennessy &
Patterson
Computer
Architecture
より
スーパスカラ方式
WB
WB
EX
EX
通常の命令
パイプライン
RF
RF
IF
IF
2命令同時発行の例
(3,4命令同時発行も実現さ
れている)
命令コードの互換性がある
命令実行制御がたいへん
浮動小数点演算
パイプライン
キャッシュ
通常の命令
浮動小数点演算命令
メモリシステム
VLIW(Very Long Instruction
Word)方式
WB
EX
EX
EX
EX
RF
IF
4つの命令分の長い命令
実行の制御はコンパイラがあらかじめ行うので制御は簡単
コードの互換性がない
マルチスレッドとSMT(Simultaneous
Multi-Threading)
Issue Slots
Issue Slots
superscalar
fine-grained
multithreaded
superscalar
SMT
Clock Cycles
Issue Slots
マルチコア、メニーコア
• 動作周波数の向上が限界に達する
– 消費電力の増大、発熱の限界
– 半導体プロセスの速度向上が配線遅延により限界に達
する
• 命令レベル並列処理が限界に達する
• メモリのスピードとのギャップが埋まらない
→ マルチコア、メニーコアの急速な発達
マルチコア革命 2003-2004年
• プログラマが並列化しないと単一プログラムの性能
が上がらない
クロック周波数の向上
周波数
Pentium4
3.2GHz
高速プロセッサのクロック周波数
Nehalem
3.3GHz
1GHz
年間40%
Alpha21064
150MHz
プロセッサの動作周波数は
2003年で限界に達した
消費電力、発熱が限界に
100MHz
1992
2000
2008
年
Flynnの分類
• 命令流(Instruction Stream)の数:
M(Multiple)/S(Single)
• データ流(Data Stream)の数:M/S
– SISD
• ユニプロセッサ(スーパスカラ、VLIWも入る)
– MISD:存在しない(Analog Computer)
– SIMD
– MIMD
一人の命令で皆同じことをする
SIMD
命令メモリ
命令
演算装置
Data memory
半導体チップ内でたくさんの
演算装置を動かすには良い
方法
アクセラレータ(普通のCPU
にくっつけて計算能力を加速
する加速装置)の多くは
この方式
安くて高いピーク性能が
得られる
→パソコン、ゲーム機と
共用
GPGPU:PC用
グラフィックプロセッサ
– TSUBAME2.0(Xeon+Tesla,Top500 2010/11 4th )
– 天河一号(Xeon+FireStream,2009/11 5th )
※()内は開発環境
GeForce
GTX280
240 cores
Host
Input Assembler
Thread Execution Manager
Thread Processors
Thread Processors
Thread Processors
Thread Processors
Thread Processors
…
PBSM
PBSM
PBSM
PBSM
PBSM
PBSM
Load/Store
Global Memory
PBSM
PBSM
PBSM
PBSM
GPU (NVIDIA’s GTX580)
128 Cores
128 Cores
L2 Cache
128 Cores
128個のコアは
SIMD動作をする
4つのグループは
独立動作をする
128 Cores
もちろん、このチップを
たくさん使う
512 GPU cores ( 128 X 4 )
768 KB L2 cache
40nm CMOS 550 mm^2
MIMD(Multipe-Instruction Streams/
Multiple-Data Streams)
Node 0
0
Node 1
1
2
Interconnection
Network
Node 2
3
Node 3
メモリ空間
独立して動けるプロセッサ
を複数使う
MIMD(Multipe-Instruction Streams/
Multiple-Data Streams)の特徴
• 自分のプログラムで動けるプロセッサ(コア)
を多数使う
– 同期:足並みを揃える
– データ交信:共通に使うメモリを持つなど
• 最近のPC用のプロセッサは全部この形を
取っている
• 最近はスマートフォン用のCPUもマルチコア
化
Multi-Core (Intel’s Nehalem-EX)
CPU
CPU
L3 Cache
CPU
CPU
CPU
CPU
L3 Cache
CPU
CPU
8 CPU cores
24MB L3 cache
45nm CMOS 600 mm^2
Intel 80-Core Chip
Intel 80-core chip [Vangal,ISSCC’07]
まとめ
• 汎用プロセッサのマルチコア化は現在絶好調
進行中
– 世代が進む毎に2ずつ増えている
– しかし、コア数をこれ以上増やしても良いことがな
いかも、、、
• メニーコア
– GPUなどのアクセラレータの性能向上は進む
– メニーコアによるクラウドコンピューティング
スーパーコンピュータ
• 特に科学技術計算が非常に速い計算機
– 医療、物理、天体、気象などの研究用の膨大な
計算をする
– 非常に高価なため主として国の研究機関に設置
– 開発、運用のためには総合的な技術が必要
– 世界一高速なスーパーコンピュータはアメリカ、
日本、中国で争ってきた
– 巨額の国家予算がつぎ込まれるため、政治的な
関心が高い→2009年12月 事業仕分けの対象
になる 「一番じゃなきゃいけないんですか?」
昨年、「京」が世界一を奪取、10PFLOPSを達成
今、最もマスコミが取り上げてくれるコンピュータ
FLOPSって何?
• Floating Point Operation Per Second:一秒
間に実行できる浮動小数点演算の数
• 浮動小数とは?
– (仮数) × 2 (指数乗) で表す数
– 倍精度(64ビット)、単精度(32ビット)があり世界
標準(IEEE標準)が決まっている
符号
単精度
倍精度
指数
8ビット
11ビット
仮数
23ビット
52ビット
ペタフロップスって何?
10の6乗
10の9乗
10の12乗
10の15乗
10の18乗
100万
10億
1兆
1000兆
100京
M(メガ)
G(ギガ)
T(テラ)
P(ペタ)
E(エクサ)
iPhone4S
140MFLOPS
スーパーコンピュータ
数10TFLOPS-10PFLOPS
ハイスペックなPC アクセラレータ
注意! スーパーコンピュータの
50-80GFLOPS 数TFLOPS
性能向上率は1.9倍/年
10PFLOPS = 1秒に1京回浮動小数点演算を行う
→ 「京」の名前の由来
世界一はどのように決まる?
• 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
10
Rmax:
Peta FLOPS
Top 5
K
Japan
Sequoia
USA
16PFLOPS
9
8
3
Tianhe(天河) China
2
Jaguar USA
Nebulae
China
1
Kraken USA
Roadrunner USA
Tsubame Japan
Jugene Germany
2010.6
2010.11
2011.6
2011.11
SACSIS2012招待講演より
Top 500 2011 11月
名称
開発、設置場
所
ハードウェア
コア数
性能(ピー
ク)TFLOPS
電力(KW)
K (京)
(Japan)
RIKEN AICS
SPARC VIIIfx
2.0GHz Tofu
Interconnect
Fujitsu
705024
10510
(11280)
12659.9
Tianhe1A( 天河)
(China)
National
Supercompute
r 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
Supercomputi
ng Centre in
Shenzhen
Dawning TC3600
Blade, Xeon X5650
6C 2.66GHz,
Infiniband QDR,
NVIDIA 2050,Dawing
120640
1271
(2974)
2580
TSUBAM
E2.0(Jap
an)
GSIC,Tokyo
Inst. of
Technology
HP ProLiant
73238
SL390s G7 Xeon
6C X5670, NVIDIA
GPU,NEC/HP
1192
(2287)
1398.6
Green 500 2011 11月
1
マシン
設置場所
FLOPS/W
Total
kW
BlueGene/Q, Power BQC 16C
1.60 GHz, Custom
IBM - Rochester
2026.48
85.12
1-5位は
IBM Blue
Gene/Q
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, TGCC / GENCI
Nvidia M2090, Xeon E5640 2.67
GHz, Infiniband QDR
1010.11
108.80
10位はTsubame-2.0(東工大)
一番じゃなきゃいけないんですか?
• Top500の一位に固執する必要はない
• 差が少しならばこだわっても意味がない
→ オリンピックではないので、、
Green500、ゴードンベル賞コスト対性能部門、HPC Challengeの各プ
ログラム
それぞれの上位のマシンはそれぞれの利用価値がある
マスコミはあまり取り上げてくれないが、、
• 今までの歴史を見ると、一位は他を圧倒して登場する
• Top500の一位はゴードンベル賞、HPC Challengeも受賞
する場合が多い
– 京は、Top500 1位、ゴードンベル賞性能部門、HPC Challenge4つ
すべてで受賞している
– 一位の宣伝効果は大きい
– 一定の間隔で一位を取れる技術を保持することは重要
スーパーコンピュータはなぜ速い
×凄く速いクロック(時間刻み)で動くから
周波数
Pentium4
3.2GHz
高速プロセッサのクロック周波数
Nehalem
3.3GHz
京2GHz
1GHz
年間40%
Alpha21064
150MHz
100MHz
1992
プロセッサの動作周波数は
2003年で限界に達した
消費電力、発熱が限界に
京の動作周波数はその辺のパ
ソコンのCPUよりも低い
→発熱を抑えるため
2000
2008
年
並列処理の3つの方法
並列処理→ 皆で働けば速くなる:プロセッサコア(処理装置)を
たくさんもつ
– 一人の命令で皆が同じことをやる
• SIMD (Single Instruction Stream Multiple Data Streams):
シムディー
– 流れ作業
• パイプライン処理、ベクトル計算機
– 皆でてんでんばらばらに計算するが、どこかで歩調を合わせる
• MIMD(Multiple Instruction Streams Multiple Data Streams):
ミムディー、マルチコア、メニーコア、スカラー計算機
– どのマシンも3つの方法を色々なレベルで使っている
– しかし、使い方によっていくつかの種類に分けることができる
– たくさんのプロセッサをちゃんと動かすために
• 巨大、高速なメモリ、ディスク
• 高速な結合網
Peta FLOPS
11
K
Japan
ピーク(最大)性能と
Linpack性能
10
アクセラレータタイプは
ピークとLinpack性能の
差が大きい
5
4
Tianhe(天河) China
3
Nebulae
China
ホモジーニアス
アクセラレータ
GPU利用
2
Jaguar USA
Tsubame Japan
1
アクセラレータタイプは
エネルギー効率が良い
パイプライン処理
1
2
3
4
5
6
ステージ
それぞれのステージは自分の仕事が終わったら結果を次に渡す
ステージの実行時間が同じならば、6倍に性能が上がる
要するに流れ作業
結果が出るまで次の作業ができない場合は、パイプラインに泡が
入ってしまう → しかし行列計算など独立に計算ができれば有
利!
ベクトル処理
(ベクトル計算機)
ベクトルレジスタ
a0a1a2…..
加算器
Y=Y+X[i]
乗算器
X[i]=A[i]*B[i]
b0b1b2….
行列が長ければ効率が良い
古典的なスーパーコンピュータはベクトル型 (地球シミュレータ)
最近は減っている
ベクトル処理
(ベクトル計算機)
ベクトルレジスタ
a1a2…..
加算器
乗算器
a0
b0
Y=Y+X[i]
X[i]=A[i]*B[i]
b1b2….
ベクトル処理
(ベクトル計算機)
ベクトルレジスタ
a2…..
加算器
乗算器
a1
a0
b0
b1
Y=Y+X[i]
X[i]=A[i]*B[i]
b2….
ベクトル処理
(ベクトル計算機)
ベクトルレジスタ
a11…..
乗算器
加算器
x1
x0
a10
a9
b9
b10
Y=Y+X[i]
X[i]=A[i]*B[i]
b11….
MIMD(Multipe-Instruction Streams/
Multiple-Data Streams)
Node 0
0
Node 1
1
2
Interconnection
Network
Node 2
3
Node 3
メモリ空間
独立して動けるプロセッサ
を複数使う
日本のスーパーコンピュータ紹介
• 「京」スーパーコンピュータ
– 現在の世界一、ホモジーニアスなマルチコア、スカラプロセッサ
– アクセラレータを用いず久々に一位を奪取、使いやすい
• 地球シミュレータ
– ベクトル計算機で世界一を取った最後?のコンピュータ
– ピーク性能と実効性能の差が小さい
• 東工大 Tsubame
– アクセラレータ(GPU)を多数利用、電力比に優れたスーパーコン
ピュータ
• 長崎大 DEGIMA
– アクセラレータを利用、手作り感のあるスーパーコンピュータ、優れた
コストパフォーマンス、エネルギー効率、ゴードンベル賞受賞
• GRAPEプロジェクト
– 天体物理学用、専用計算機、SIMD、様々なマシンがゴードンベル賞
を何度も受賞しているユニークなスーパーコンピュータ
SACSIS2012招待講演より
スーパーコンピュータ「京」
L2 C
Memory
Core
Core
Core
Core
Core
Core
Core
Core
Tofu Interconnect
6-D Torus/Mesh
Inter
Connect
Controller
SPARC64 VIIIfx Chip
4 nodes/board
96nodes/Lack
24boards/Lack
RDMA mechanism
NUMA or UMA+NORMA
SACSIS2012招待講演より
SACSIS2012招待講演より
水冷式のボード構成
京 のラック構成
6次元トーラス
Tofu
SACSIS2012招待講演より
京はなぜ世界一になれたのか?
• アメリカの国家プロジェクトが中止、遅延した
– 財政危機の影響
• NEC/日立の撤退により複合システムが単一システ
ムに変更された
– 資金の効率的な利用、ノード数の増大
• 事業仕分けされかかったことで注目があつまった
– 理研、文科省が賢明な計画、資金集中を行った
• 富士通の技術者の設計が優れていた。
– 実装もがんばって短期間で大規模システムを稼動させた
エクサスケールコンピュータ
• エクサスケールは既に各国の視野に入っている
• 「京」は先月BlueGene Qで作られたSequoiaに首位を奪回
された
• 次をどうするか?
– Feasibility Study(可能性の検討作業)が始まっている
– 今までのように独自LSIチップで首位を取ることができないかも
• スーパーコンピュータは「持ち出し」でやってきたが、もう日本の半導体企
業にはその力がない
• 多額の国家予算がIntel、NVIDEAに流れることになる
– 単一のコアの性能向上はとっくの昔に終わっている
• あとは数を増やすこと、一定の空間にいかに演算能力を詰め込めるか
が勝負
• エクサスケール実現には7000万コアが必要!
– 性能向上の限界は?
• 技術的限界よりは資金的な限界が先に来るだろう
アムダールの法則
並列処理できない割合が
1%
並列処理できる割合が99%
並列に動いてコア数分の1に
しかし、100倍以上速くなることはない!
100コアで50倍、1000コアで91倍、70万コアで99.9999倍
並列に実行できない部分が少しでもあったら、その割合で速度向上は制限される
京はiPhone3Sの1億倍速い。しかし、iPhone4Sで100時間掛かるアプリが
1ミリ秒で終わるかというと、終わらない可能性が高い
エクサスケールスーパーコンピュータは
役にたつのか?
• 解きたい問題のサイズが大きくなれば大きくなるほど、
並列化できない部分は減ってくる。
– 並列化できない部分1日+並列化できる部分10年
→ 1日+1日 で解ければインパクトが大きい
• 京では歯が立たず、エクサスケールならば解ける問題はどの
程度あるのか?
– コンピュータのコア数が増えれば増えるほど、問題領域は減っていく可
能性が高い
– 新しい領域を見つけることができるか?
– 今までにできなかったことができる、見えなかったものが見えることは
間違いない
• 性急に成果を求められても多分無理だろう、、、
• 巨大な処理能力が研究用に開放されていることが重要
スーパーコンピュータを
作り続けたい
• コンピュータのハードウェア技術、ソフトウェア技術、信頼性管理技術、半
導体開発技術、アプリケーション技術の結晶だから
• フラグシップであり、象徴だから
• 日本のコンピュータには他に何も残っていないから、、
• 研究用、平和利用に巨大計算能力が開放されているのは素晴らしいこと
だから
• それが役に立つかどうかは別として、できないことができ、見えないもの
が見えるから
• では無限に計算能力は必要なのか?
• 使われるプロセッサが全て米国製になっても日本で作り続ける意味があ
るのか?
• Linpackなどの数値計算に特化した(いわゆる)スーパーコンピュータを
作り続けることに意味があるのか?
エクサスケールコンピュータプロジェクトでは、これらの問いに答える必要が
ある