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などの数値計算に特化した(いわゆる)スーパーコンピュータを 作り続けることに意味があるのか? エクサスケールコンピュータプロジェクトでは、これらの問いに答える必要が ある
© Copyright 2024 ExpyDoc