加藤真平計算機アーキテクチャ特論 計算機アーキテクチャ特論後半第 1 回最先端アーキテクチャのトレンド 本資料は授業用です 無断で転載することを禁じます 講師加藤真平
前半の趣旨 : 並列化プログラミング for (i = 0; i < N; i++) { x[i] = a[i] + b[i]; } シングルプロセッサ マルチプロセッサ x[0]=a[0]+b[0]; x[1]=a[1]+b[1]; x[2]=a[2]+b[2]; x[n-1]=a[n-1]+b[n-1]; シングルプロセッサ func1(); func2(); funcn(); マルチプロセッサ func1(); func2(); func3(); funcn();
後半の趣旨 : 並列アーキテクチャ Network NIC NIC NIC NIC Flash Memory Memory Memory Memory CPU Many Cores Many Cores GPU CPU
講師の紹介 加藤真平講師 IB 電子情報館南棟 491 号室 shinpei@is.nagoya-u.ac.jp 専門分野 サイバーフィジカルシステム スーパーコンピュータ クラウドコンピューティング 組込みシステム オペレーティングシステム 計算機アーキテクチャ
講義内容と成績評価 講義内容 Very Long Instruction Word (VLIW) Simultaneous Multithreading (SMT) Chip Multiprocessing (CMP) Graphics Processing Unit (GPU) Many Integrated Core (MIC) 成績評価 各講義の理解度クイズ ( 出席点含む ) レポートは未定 ( 出席率による )
今日の講義 並列アーキテクチャの使用事例 並列アーキテクチャの概要 VLIW SMT CMP GPU MIC 理解度クイズ
iphone 5 (Mobile Device) ARM Cortex-A15 (CMP) NVIDIA Tegra 3 (GPU)
MacBook Air (Laptop) Intel Nehalem (CMP&SMT)
DELL PowerEdge (Workstation) Intel Nehalem-EX (CMP&SMT) CPU CPU L3 Cache CPU CPU CPU CPU L3 Cache CPU CPU
Titan (Supercomputer) AMD Interlagos (CMP) NVIDIA Kepler GK110 (GPU)
Stampede (Supercomputer) Intel Nehalem-EX (CMP) Intel MIC (GPU)
Sequoia (Supercomputer) IBM BlueGene/Q (CMP)
津波シミュレーション ( ロスアラモス国立研究所 & ワシントン大学 )
並列アーキテクチャのトレンド VLIW SMT CMP GPU MIC ざっと見ていきましょう! ( 詳細は来週以降に説明します )
その前に なぜ並列アーキテクチャが生まれたのか? ちょっと歴史を振り返りましょう!
九州大学井上弘士先生の講義のスライドより インテル マイクロプロセッサの歴史 1971 年 世界最初のマイクロプロセッサ 4004 データ語長は4ビット 約 2,300トランジスタを使用 ( プロセス テクノロジ10μm) 動作周波数は108KHz 46 種類の命令 開発のきっかけは電卓計算用 LSI ( ビジコン社 ) 4004 1972 年 世界最初の8ビット マイクロプロセッサ 8008 約 3,500トランジスタを使用 ( プロセス テクノロジ10μm) 動作周波数は200KHz 基本的には4004とほぼ同じ 開発のきっかけは科学技術計算用 LSI ( 日本の精工舎 ) 1974 年 マイクロプロセッサ 8080 約 6,000トランジスタを使用 ( プロセス テクノロジ6μm) 8008 動作周波数は2MHz 世界最初のパーソナル コンピュータとして知られるAltair(MITS) に搭載 1978 年 16ビット マイクロプロセッサ 8016 約 29,000トランジスタを使用 ( プロセス テクノロジ3μm) 動作周波数は5MHz( 後に8MHz 10MHz 版が登場 ) 1MBのメモリ空間を扱えるようになる ( これまでは64KB)
九州大学井上弘士先生の講義のスライドより インテル マイクロプロセッサの歴史 19?? 年 8016 のデータパスを 8 ビットに縮めた 8088 開発の理由 複雑な内部構造のため処理性能が急激に低下 16 ビット対応の周辺機器やソフトが殆ど存在しない 81 年に IBM 最初のパソコン IBM PC に搭載される マイクロソフトが開発した発の OS (PC-DOS) IBM インテル マイクロソフトが終結した IBM PC が大ヒット 1982 年 マイクロプロセッサ 80286 約 134,000 トランジスタを使用 ( プロセス テクノロジ 1.5μm) 動作周波数は 6MHz( 後に 8/10/12/16MHz が登場 ) PGA パッケージを採用 現在の DOS/V パソコンの原型である IBM PC/AT に採用される 1985 年 32 ビット マイクロプロセッサ 80386 約 275,000 トランジスタを使用 ( プロセス テクノロジ?μm) 動作周波数は 12/16/20MHz 80386 80286
九州大学井上弘士先生の講義のスライドより インテル マイクロプロセッサの歴史 1989 年 キャッシュ メモリを搭載したマイクロプロセッサ 80486 約 275,000 トランジスタを使用 ( プロセス テクノロジ 1.0μm) 動作周波数は 25MHz( 当時 i386 は 33MHz) 1990 年 5 月には 33MHz 命令キャッシュ (8KB) と浮動小数点演算を内臓 5 段の命令パイプライン 1991 年 50MHz のマイクロプロセッサ i486dx i486dx2 にて 内部 (50MHz) と外部 (25MHz) で異なる周波数 1993 年 マイクロプロセッサ Pentium I586 ではなく ギリシャ語で 5 を意味する Pent に ラテン語系名詞語尾の ium を付けて Pentium の名称を作り出す 並列度 2 のスーパスカラー アーキテクチャ 16KB の L1 キャッシュ 動作周波数は 60/66MHz i486 Pentium
九州大学井上弘士先生の講義のスライドより インテル マイクロプロセッサの歴史 199? 年 L2 キャッシュを搭載したマイクロプロセッサ PentiumPro 256KB の L2 キャッシュを内臓 プロセス テクノロジ 0.8μm~0.35μm 動作周波数は 150/166/180/200MHz 1997 年 マルチメディア命令をサポート MMX Pentium 1 命令で複数データを同時に処理 57 個の新しい命令を追加 プロセス テクノロジ 0.35μm 動作周波数は 166/233MHz 1997 年 マイクロプロセッサ PentiumII (PentiumPro を改良 ) 512KB の L2 キャッシュを基板上 ( 別チップ ) に実装し 同一パッケージに搭載 動作周波数向上と低コスト化のため MMX 命令 プロセス テクノロジ 0.35μm 動作周波数は 233~450MHz PentiumPro Pentium2
九州大学井上弘士先生の講義のスライドより インテル マイクロプロセッサの歴史 1998 年 ローエンド向けマイクロプロセッサ Celeron プロセス テクノロジ0.25μm 動作周波数は300~553MHz 1999 年 マイクロプロセッサ PentiumIII MMXに更に70 個のSIMD 命令を追加 プロセス テクノロジ0.25μm 動作周波数は450~600MHz その後 0.18μmプロセスで1.1GHz 2000 年 マイクロプロセッサPentium4 プロセス テクノロジ0.18μm 4000 万個のトランジスタ 動作周波数は1.5GHz PentiumIII Pentium4
M Tran. 九州大学井上弘士先生の講義のスライドより プロセッサの回路規模はどの程度? ( トランジスタ数の観点から ) 半導体集積度は 3 年で約 4 倍に!( ムーアの法則 ) 1000 インテル プロセッサの場合 100 Pentium 4 Itanium Pentium II 10 Pentium III 1 80486 Pentium 0.1 80386 1984 1986 1988 1990 1992 1994 1996 1998 http://www-vlsi.stanford.edu/group/chips_micropro.html 2000 2002 2004
Frequency (MHz) 九州大学井上弘士先生の講義のスライドより 動作周波数の観点から ( プロセッサはどの程度高速動作する?) プロセッサの動作周波数は 3 年で約 2 倍に! 10000 インテル プロセッサの場合 Pentium 4 1000 100 Pentium III Pentium II 80486 Pentium 10 80386 1 1984 1986 1988 1990 1992 1994 1996 1998 2000 http://www-vlsi.stanford.edu/group/chips_micropro.html 22 2002 2004
SPEC INT 九州大学井上弘士先生の講義のスライドより 性能の観点から ( プロセッサはどの程度高性能なのか?) プロセッサの性能は 3 年で約 3~4 倍に! 10000 インテル プロセッサの場合 Pentium 4 1000 100 Pentium III Pentium II 10 80386 804386 Pentium 1 1984 1986 1988 1990 1992 1994 1996 1998 http://www-vlsi.stanford.edu/group/chips_micropro.html 2000 2002 23 2004
九州大学井上弘士先生の講義のスライドより プロセッサ チップはこの 34 年間で 1971 年 4 ビットの 1 チップ マイクロプロセッサ 4004 プロセス テクノロジ :10μm トランジスタ数 : 約 2,300 動作周波数 :108KHz トランジスタ数は 10 万倍以上! 動作周波数は 4 万倍以上! 2005 年 9 個のコアを搭載したチップ マルチプロセッサ Cell 人間の脳のニューロン数 >1,000 億 トランジスタ集積度は 3 年で 4 倍 2020 年にはトランジスタ数 >2,000 億 プロセス テクノロジ :90nm トランジスタ数 : 約 2 臆 3400 万 動作周波数 : 最大 4.6GHz 出展 :http://www.intel.com/museum/online/hist_micro/hof/index.htm, Sony
Power (W) 九州大学井上弘士先生の講義のスライドより おいしい話ばかりではない! ~ 消費電力の観点から ~ プロセッサの消費電力は 3 年で約 3 倍に! 1000 インテル プロセッサの場合 Pentium 4 100 Pentium III Pentium II Pentium 10 80386 80486 1 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 http://www-vlsi.stanford.edu/group/chips_micropro.html
九州大学井上弘士先生の講義のスライドより 26 プロセッサの消費電力はどのくらい? F. Pollack: New Microarchitecture Challenges in the Coming Generations of CMOS Process Technologies (MICRO99)
九州大学井上弘士先生の講義のスライドより 27 その結果, どうなる? *Image http://www.semiconfareast.com Next Generation Burn-in & Test System for Athlon Microprocessors : Hybrid Burn-in, Mark Miller, Burn-in & Test Socket Workshop, 2001
プロセッサの動作周波数
並列アーキテクチャの時代に突入 ~ マルチスレッド マルチコア メニーコア ~
基礎知識 パイプライン処理 命令 A 命令 B 命令 C 命令 D IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB スーパースカラ方式 命令 A 命令 B 命令 C 命令 D 命令 E 命令 F IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB 時間
VLIW: Very Long Instruction Word 命令 A 命令 B 命令 C 命令 D IF ID EX MEM WB EX EX IF ID EX MEM WB EX EX IF ID EX MEM WB EX EX IF ID EX MEM WB EX EX 1 つの命令に複数の命令 ( 固定長 ) を詰め込む方式 よって命令のワード長がとても長くなる (Very Long)
スーパースカラと VLIW の限界 命令レベル並列性 Instruction Level Parallelism (ILP) プログラムの中で複数同時に実行できる命令の数には限界がある ( ハザードなど )
クロックサイクル SMT: Simultaneous Multithreading 複数のプログラムから並列性を抽出 命令発行スロット命令発行スロット命令発行スロット スーパースカラ 細粒度マルチスレッディング + スーパースカラ SMT
SMT の限界 スレッドレベル並列性 Thread Level Parallelism (ILP) 複数のプログラムがハードウェア資源を共有し パイプライン上で競合する
SMT の限界 スレッド間の競合が発生 Thread Thread Intel ではハイパースレッディングとも呼ぶ Processor Cache Interconnect (PCIバスなど) Main Memory I/O
CMP: Chip Multiprocessing コアごとに資源分割 Processor Core Processor Core Cache Cache Processor Cache 一般的にはマルチコアと呼ばれている Interconnect (PCIバスなど) Main Memory I/O
マルチコアの登場により速くて大きい 1 つプロセッサではなく遅くて小さい複数のプロセッサが好まれる時代へ
GPU: Graphics Processing Unit NVIDIA Kepler GeForce GTX 680 1536 small cores L1 L1 L1 L1 L1 L1 L1 L2 Cache Video Memory CPU Main Memory
MIC: Many Integrated Core Intel MIC Knights Corner 64 big cores X86 Vec L1 Cache X86 Vec L1 Cache X86 Vec L1 Cache L2 Cache L2 Cache L2 Cache Interprocessor Network Memory & I/O Interface CPU Main Memory
GFLOPS GFLOPS / Watt 42 CPU と GPU の性能比較 3200 2800 2400 単精度浮動小数点性能 GTX 680 2000 NVIDIA GPU 1600 Intel CPU GTX 580 GTX 480 1200 GTX 285 GTX 280 800 9800 GTX 8800 GTX 400 7900 GTX E4300 E6850 Q9650 E7-8870 X7460 980 XE 0 2006/3/4 2007/9/15 2009/3/28 2010/10/9 2012/4/21 18.00 16.00 14.00 12.00 10.00 8.00 NVIDIA GPU Intel CPU 電力性能 GTX 680 6.00 GTX 580 9800 GT GTX 285 GTX 480 4.00 GTX 280 8800 GTX E7-8870 2.00 7900 GTX Q9650 E4300 E6850 X7460 980XE 0.00 2006/3/4 2007/9/15 2009/3/28 2010/10/9 2012/4/21
2012 年 11 月のスパコンランキング CMP GPU CMP CMP (SMT) CMP CMP CMP CMP MIC CMP GPU CMP CMP
システムとプロセッサの市場シェア プロセッサ システム
GPU と MIC の台頭
電力と性能 電力電力 ( 予想 ) 性能 / 電力
この講義の方針 1. 目的ごとに異なる計算機システムおよびアプリケーションに適したアーキテクチャを選定できる知識を育む 2. 計算機アーキテクチャの研究室を有する大学院のような講義内容にはしない
参考文献 VLIW Software pipelining: An effective scheduling technique for VLIW machines Lam et. al., PLDI 1988 SMT Simultaneous multithreading: maximizing on-chip parallelism Tullsen et. al., ISCA 1995 CMP The case for a single-chip multiprocessor Olukotun et. al., ASPLOS 1996 GPU NVIDIA Tesla: A Unified Graphics and Computing Architecture Lindholm et. al., IEEE Micro 2008 MIC Larrabee: A Many-Core x86 Architecture for Visual Computing Seiler et. al., SIGGRAPH 2008
理解度クイズ 当日配布