cpu の高速化テクニックから スーパーコンピュータまで
DESCRIPTION
CPU の高速化テクニックから スーパーコンピュータまで. 天野. SoC 設計論. 大学院. SoC 設計演習. マイクロプロセッサアーキテクチャ特論. コンピュータアーキテクチャ特論. VLSI 設計論 ( MIPS の設計、レイアウト). 4 年春. 情報工学実験第 2 ( I/O を含んだマイクロプロセッサ). 3 年秋. コンピュータアーキテクチャ. 3 年春. 高速化の流れ. スレッドレベルの 高速化. Simultaneous Multithreading. マルチコア化. 複数命令の同時発行 (スーパースカラ). 命令レベルの - PowerPoint PPT PresentationTRANSCRIPT
CPUの高速化テクニックからスーパーコンピュータまで
天野
コンピュータアーキテクチャ
情報工学実験第 2 ( I/Oを含んだマイクロプロセッサ)
VLSI設計論 (MIPSの設計、レイアウト)
マイクロプロセッサアーキテクチャ特論 コンピュータアーキテクチャ特論
SoC 設計論 SoC 設計演習
3年春
3年秋
4年春
大学院
高速化の流れ
1980 1990 2000
RISCの登場パイプライン化
パイプラインを細かく(スーパーパイプライン)周波数の向上
命令の動的スケジュール
複数命令の同時発行(スーパースカラ)
マルチコア化
マルチコア革命2003-2004
命令レベルの高速化
スレッドレベルの高速化 Simultaneous
Multithreading
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
命令フォーマット• 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
パイプラインの概観
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
パイプライン処理の問題点とその解決法
• うまく動けば 1クロックに 1命令終わる – CPI=1でクリティカルパスは1 /(ステージ数)– ステージ数分高速化、周波数向上のためにもステージ数を増やす
• スーパーパイプライン• 命令間に依存性があると継続する命令が実行できずストール(失速)する– データハザード– できる命令から実行する
• 命令の動的スケジューリング:アウトオブオーダ実行• 飛び先と飛ぶかどうかが分からないとストールする
– コントロールハザード– 分岐予測– 投機的実行:実行してしまって後で取り消す
Hennessy &PattersonComputer Architectureより
命令のアウトオブオーダ実行トーマスローのアルゴリズム
スーパスカラ方式
IF
RF
EX
WB
IF
RF
EX
WB
メモリシステム
キャッシュ
浮動小数点演算命令通常の命令
浮動小数点演算パイプライン
通常の命令パイプライン
2命令同時発行の例(3,4命令同時発行も実現されている)
命令コードの互換性がある命令実行制御がたいへん
VLIW( Very Long Instruction Word)方式
IF
RF
WB
EX EX EX EX
4つの命令分の長い命令
実行の制御はコンパイラがあらかじめ行うので制御は簡単コードの互換性がない
マルチスレッドとSMT(Simultaneous Multi-Threading)
Issue Slots Issue Slots Issue Slots
Clo
ck C
ycle
s
superscalar fine-grainedmultithreaded superscalar
SMT
マルチコア、メニーコア• 動作周波数の向上が限界に達する
– 消費電力の増大、発熱の限界– 半導体プロセスの速度向上が配線遅延により限界に達する
• 命令レベル並列処理が限界に達する• メモリのスピードとのギャップが埋まらない→ マルチコア、メニーコアの急速な発達マルチコア革命 2003-2004年
• プログラマが並列化しないと単一プログラムの性能が上がらない
クロック周波数の向上
100MHz
1GHz
1992 2000 2008
Pentium43.2GHz
Nehalem3.3GHz
Alpha21064150MHz
プロセッサの動作周波数は2003年で限界に達した消費電力、発熱が限界に
年間 40%
高速プロセッサのクロック周波数
年
周波数
Flynnの分類• 命令流 (Instruction Stream) の数: M
(Multiple)/S(Single)
• データ流( Data Strea m)の数: M/S– SISD
• ユニプロセッサ(スーパスカラ、 VLIW も入る)
– MISD :存在しない( Analog Computer )– SIMD– MIMD
一人の命令で皆同じことをするSIMD
命令
命令メモリ
演算装置
Data memory
半導体チップ内でたくさんの演算装置を動かすには良い方法
アクセラレータ(普通の CPUにくっつけて計算能力を加速する加速装置)の多くはこの方式
安くて高いピーク性能が得られる→パソコン、ゲーム機と 共用
– TSUBAME2.0(Xeon+Tesla,Top500 2010/11 4th )– 天河一号 (Xeon+FireStream,2009/11 5th )
GPGPU : PC 用グラフィックプロセッサ
※()内は開発環境
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
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つのグループは独立動作をする
もちろん、このチップをたくさん使う
MIMD ( Multipe-Instruction Streams/
Multiple-Data Streams)
Node 1
Node 2
Node 3
Node 0
0
1
2
3
Interconnect ionNetwork
メモリ空間
独立して動けるプロセッサを複数使う
• 自分のプログラムで動けるプロセッサ(コア)を多数使う–同期:足並みを揃える–データ交信:共通に使うメモリを持つなど
• 最近の PC用のプロセッサは全部この形を取っている
• 最近はスマートフォン用の CPUもマルチコア化
MIMD ( Multipe-Instruction Streams/
Multiple-Data Streams) の特徴
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
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標準)が決まっている
23ビット8ビット
52ビット11ビット
単精度
倍精度
符号 指数 仮数
ペタフロップスって何?
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倍 /年
世界一はどのように決まる?• 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
1
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
SACSIS2012招待講演より
名称 開発、設置場所
ハードウェア コア数 性能(ピーク) 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月
マシン 設置場所 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
一番じゃなきゃいけないんですか?• Top500 の一位に固執する必要はない• 差が少しならばこだわっても意味がない → オリンピックではないので、、
Green500 、ゴードンベル賞コスト対性能部門、 HPC Challenge の各プログラム
それぞれの上位のマシンはそれぞれの利用価値があるマスコミはあまり取り上げてくれないが、、
• 今までの歴史を見ると、一位は他を圧倒して登場する• Top500 の一位はゴードンベル賞、 HPC Challenge
も受賞する場合が多い– 京は、 Top500 1 位、ゴードンベル賞性能部門、 HPC Challeng
e 4つすべてで受賞している– 一位の宣伝効果は大きい– 一定の間隔で一位を取れる技術を保持することは重要
スーパーコンピュータはなぜ速い
×凄く速いクロック(時間刻み)で動くから
100MHz
1GHz
1992 2000 2008
Pentium43.2GHz
Nehalem3.3GHz
Alpha21064150MHz
京 2GHz
プロセッサの動作周波数は2003年で限界に達した消費電力、発熱が限界に
京の動作周波数はその辺のパソコンの CPUよりも低い→発熱を抑えるため
年間 40%
高速プロセッサのクロック周波数
年
周波数
並列処理の 3つの方法並列処理→ 皆で働けば速くなる:プロセッサコア(処理
装置)をたくさんもつ– 一人の命令で皆が同じことをやる
• SIMD (Single Instruction Stream Multiple Data Streams) : シムディー
– 流れ作業• パイプライン処理、ベクトル計算機
– 皆でてんでんばらばらに計算するが、どこかで歩調を合わせる• MIMD(Multiple Instruction Streams Multiple Data Streams):
ミムディー、マルチコア、メニーコア、スカラー計算機– どのマシンも 3 つの方法を色々なレベルで使っている– しかし、使い方によっていくつかの種類に分けることができる– たくさんのプロセッサをちゃんと動かすために
• 巨大、高速なメモリ、ディスク• 高速な結合網
1
2
3
4
5
10
Peta FLOPS11 K
Japan
Tianhe( 天河 ) China
Jaguar USA
Nebulae China
Tsubame Japan
ピーク(最大)性能とLinpack 性能
アクセラレータタイプはピークと Linpack 性能の差が大きい
ホモジーニアス
アクセラレータGPU利用
アクセラレータタイプはエネルギー効率が良い
パイプライン処理
1 2 3 4 5 6
ステージ
それぞれのステージは自分の仕事が終わったら結果を次に渡すステージの実行時間が同じならば、 6倍に性能が上がる要するに流れ作業結果が出るまで次の作業ができない場合は、パイプラインに泡が入ってしまう → しかし行列計算など独立に計算ができれば有利!
ベクトル処理(ベクトル計算機)
a0a1a2…..
乗算器加算器
X[i]=A[i] * B[i]Y=Y+X[i]
ベクトルレジスタ
行列が長ければ効率が良い古典的なスーパーコンピュータはベクトル型 (地球シミュレータ)最近は減っている
b0b1b2….
ベクトル処理(ベクトル計算機)
a1a2…..
乗算器加算器
X[i]=A[i] * B[i]Y=Y+X[i]
ベクトルレジスタ
b1b2….
a0
b0
ベクトル処理(ベクトル計算機)
a2…..
乗算器加算器
X[i]=A[i] * B[i]Y=Y+X[i]
ベクトルレジスタ
b2….
a0b0
b1
a1
ベクトル処理(ベクトル計算機)
a11…..
乗算器加算器
X[i]=A[i] * B[i]Y=Y+X[i]
ベクトルレジスタ
b11….
a9b9
b10
a10
x1x0
MIMD ( Multipe-Instruction Streams/
Multiple-Data Streams)
Node 1
Node 2
Node 3
Node 0
0
1
2
3
Interconnect ionNetwork
メモリ空間
独立して動けるプロセッサを複数使う
日本のスーパーコンピュータ紹介
• 「京」スーパーコンピュータ– 現在の世界一、ホモジーニアスなマルチコア、スカラプロセッ
サ– アクセラレータを用いず久々に一位を奪取、使いやすい
• 地球シミュレータ– ベクトル計算機で世界一を取った最後?のコンピュータ– ピーク性能と実効性能の差が小さい
• 東工大 Tsubame– アクセラレータ( GPU) を多数利用、電力比に優れたスーパーコ
ンピュータ• 長崎大 DEGIMA
– アクセラレータを利用、手作り感のあるスーパーコンピュータ、優れたコストパフォーマンス、エネルギー効率、ゴードンベル賞受賞
• GRAPE プロジェクト– 天体物理学用、専用計算機、 SIMD 、様々なマシンがゴードンベ
ル賞を何度も受賞しているユニークなスーパーコンピュータ
SACSIS2012招待講演より
スーパーコンピュータ「京」
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
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 などの数値計算に特化した(いわゆる)スーパーコン
ピュータを作り続けることに意味があるのか?
エクサスケールコンピュータプロジェクトでは、これらの問いに答える必要がある