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