2010年度 大学院システム情報科学府 コンピュータアーキテクチャ特論 村上和彰 井上弘士 大学院システム情報科学研究院情報知能工学部門 [email protected] 1 講義の目的 • コンピュータアーキテクチャとは何かを理解する – 学部講義「コンピュータアーキテクチャⅠ&Ⅱ」 • 与えられた制約条件および設計空間の中で最適なコン ピュータアーキテクチャを求めることが出来るようになる – 本講義の演習 • コンピュータアーキテクチャ決定上の設計軸を定義し、 その設計選択肢を挙げてその中の1つを選択すると同 時に、他人にその選択理由を納得させられる • 将来動向(技術、ライフスタイル、ビジネス、等)を予測し、 将来有望なコンピュータアーキテクチャを提案出来る 「アーキテクトシップ」を身につける! 2 歴史上の主要なアーキテクチャ論争 • • • • • • • • • CISC vs. RISC ベクトルマシン vs. スカラマシン 共有メモリ vs. 分散メモリ 間接網(FatTree、等) vs. 直接網(メッシュ、等) シングルコア vs. マルチコア iPhone vs. Android 2次元実装 vs. 3次元実装 次世代スパコン必要 vs. 不要 … 3 ベクトル・プロセッサ vs. スカラ・プロセッサ • スカラ・プロセッサ • ベクトル・プロセッサ VFU FPU ORN : : : FR LSU VR ... : : VLSU IMBM : DC : : : : : : : : : LM IMBM: Interleaved Multi-Bank Memory ORN: Operand Routing Network VFU: Vector Functional Unit VLSU: Vector Load/Store Unit VR: Vector Register CRC CR: Cache Refill Controller DC: Data Cache FR: Floating-point Register FPU: Floating-point Processing Unit LM: Linear Memory LSU: Load/Store Unit 4 そもそもHPCアーキテクチャ に対する要件は何なのか? 対Non-HPC プロセッサ 演算 • 整数論理演算中心 対HPC • 浮動小数点演算中心 – (単精度はもちろん)倍精度, 4倍精度 – (実数に加えて)複素数 – 四則演算に加えて初等関数 などの特殊演算 制御 メモリ 通信 • IF文 • ループ構造 • Pointer chasing • Garbage collection • 大規模配列アクセス • 同期 • 排他制御 • p-to-p通信(大量データ転送) • Collective通信 – 連続アクセス – ストライド・アクセス – 間接参照(リスト・アクセス) – バリア同期 – リダクション 黄金律 1op : 1B/s : 1bps 1Flop : 4B/s : 4bps 5 これらの要件に関して 従来のHPCマシンはどう応えたか? 要件 プロセッサ 演算 • 浮動小数点演算中心 – (単精度はもちろん)倍精度, 4倍精度 – (実数に加えて)複素数 – 四則演算に加えて初等関数 などの特殊演算 制御 メモリ • ループ構造 • 大規模配列アクセス – 連続アクセス – ストライド・アクセス – 間接参照(リスト・アクセス) 通信 • p-to-p通信(大量データ転送) • Collective通信 – バリア同期 – リダクション 黄金律 1Flop : 4B/s : 4bps ベクトル・マシン • ベクトル演算命令 –倍精度浮動小数点データを 主対象とした四則演算 –さらに,平方根などの特殊 演算もサポート –副作用として,命令供給ボト ルネックを解消 • ベクトル・レジスタ+ベクト ル・ロード/ストア命令 – リスト・ベクトル・サポート PCクラスタ • 高性能汎用マイクロプロ セッサ – 浮動小数点四則演算ユ ニット(倍精度サポート) – SIMD演算命令を追加して 短ベクトル演算をサポート • 分岐予測,OOO実行による 制御依存ペナルティの隠蔽 • 大容量キャッシュ・メモリ – ノンブロッキング – 多階層(L1~L3) • マルチバンク&インターリー ブ・メモリ • HW/SWプリフェッチ機能 • クロスバー・ネットワーク等 の非(低)閉塞網による低レ イテンシ&高スループット通 信 • バリア同期,collective通信 専用の別ネットワーク装備 • Myrinet等の高スループット &低レイテンシ網(ただし, 閉塞網)による階層バス構 造 • ES) 1Flop:4B/s:3bps • P4) 1Flop:2.4B/s:? 6 ベクトル・プロセッサ vs. スカラ・プロセッサ ベクトル・プロセッサ スカラ・プロセッサ 性能の決定要因 •メモリ・バンド幅(主記憶からベクトル 演算器へのデータ供給能力)の大きさ •キャッシュ・メモリのヒット率(必要な データがキャッシュ・メモリに存在する 割合) 性能向上策 •とにかくメモリ・バンド幅を大きくする! •ヒット率を向上するようにキャッシュ構 成を工夫する •プログラムのデータ参照の際の局所 性を高める 方式上の問題点, および,今後の課 題 •メモリ・バンド幅の向上がプロセッサ (演算器)の速度向上に追いつかな い! •キャッシュにミスした際のペナルティ (左記のメモリ・レイテンシ)が大きい! – 如何にしてペナルティを隠蔽するか? – 高いメモリ・バンド幅を実現するのが 困難(あるいは,コスト高)! •「局所性の向上」と「並列度の向上」と は相反する要求 •さらに,メモリ・レイテンシ(データの読 み書きに要する時間)が相対的に遅く なっている! – 両者のトレードオフをどう取って性能 向上に結びつけるか? – メモリ・レイテンシの隠蔽が困難! 7 ベクトル・プロセッサの処理形態 • 性能(ポンプの消火能力)は何で決まるか? – 主記憶からベクトル演算器へのデータ供給能力,つまり,メモリ・バンド幅 (=ホースの水汲み能力)を如何に大きく出来るか? ベクトル・レジスタ (ホースの一部) ベクトル演算器 (ポンプ) 主記憶 (大きな池) 巨大なメモリ・バンド幅が必要! 8 スカラ・プロセッサの処理形態 • 性能(消防士の消火能力)は何で決まるか? – 主記憶-キャッシュ-レジスタというメモリ階層において,如何にして上位層 のキャッシュ(=小さな溜池)やレジスタ(消火槽)のデータ(=水)を絶やさな いようにするか? キャッシュ・メモリ (小さな溜池) スカラ演算器 (消防士) 巨大なメモリ・バ ンド幅は不要! 主記憶 (大きな池) スカラ・レジスタ (消火槽) 如何にしてデー タ(=水)を絶や さないかが鍵!9 次回&次々回講義 ~スカラ vs. ベクトル~ • 次回講義までに、各自、文献等でスカラプロセッ サとベクトルプロセッサについて調査すること • 宿題:下記の要領でレポート(PPT)作成 – 学籍番号が偶数の学生:スカラ派としてベクトル派を 論破する論陣を構築 – 学籍番号が奇数の学生:ベクトル派としてスカラ派を 論破する論陣を構築 • スカラ派とベクトル派に分かれて、「スカラ vs. ベ クトル」を議論 – 時代設定は現在 • その後、社長視点で「スカラ vs. ベクトル」に各自 結論を出す 10
© Copyright 2024 ExpyDoc