11. マルチスレッド・プロセッサ 五島 正裕.

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

プログラミング言語ADP 大藤雄久.
2006/10/26 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
VLIW(Very Long Instruction Word)& マルチスレッドプロセッサ (Multi-Thread Processor) Super Scalarのような命令レベル並列処理 Parallel processing with Instruction level like Super.
計算機システムⅡ 命令レベル並列処理とアウトオブオーダ処理
第3回 並列計算機のアーキテクチャと 並列処理の実際
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
07. 値予測 五島 正裕.
07. 値予測 五島 正裕.
ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発
Ibaraki Univ. Dept of Electrical & Electronic Eng.
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
計算機システムⅡ 主記憶装置とALU,レジスタの制御
高性能コンピューティング学講座 三輪 忍 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍
高性能コンピューティング論2 第12回 アクセラレータ
報告 (2006/9/6) 高橋 慧.
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
Explorations in Symbiosis on two Multithreaded Architectures
App. A アセンブラ、リンカ、 SPIMシミュレータ
コンピュータ工学基礎 パイプラインハザード テキスト9章 115~124
2007/1/18 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
高性能コンピューティング論2 第1回 ガイダンス
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
高性能コンピューティング論2 第5回 Out-of-Order実行機構
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
CONCURRENT PROGRAMMING
1章 並列OS概論.
型付きアセンブリ言語を用いた安全なカーネル拡張
これからが面白いプロセッサアーキテクチャ
アドバンスト コンピュータ アーキテクチャ 五島.
Advanced Computer Architecture
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
プロジェクト実習 LSIの設計と実現 パイプライン実行とハザード.
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
非レイテンシ指向 レジスタ・キャッシュ・システム
勉強会その5    2016/6/15 マルチコア/マルチプロセッサ キャッシュコヒーレンス 10 8分35秒.
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
独立大学法人・電気通信大学 大学院情報システム学研究科 情報ネットワーク学専攻・並列処理学講座
関心事ごとに視点を切り替えて プログラムを編集できる 統合開発環境の提案と実装
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
10. マルチスレッド・プロセッサ 五島 正裕.
Advanced Computer Architecture
レジスタ間接分岐ターゲット・フォワーディング
Advanced Computer Architecture
Advanced Computer Architecture
オペレーティングシステムJ/K (仮想記憶管理)
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
「コアの数なんて どうでもいい」 五島 正裕(東大).
3. 論理ゲート の 実現 五島 正裕.
メモリ投機を支援する CMPキャッシュコヒーレンスプロトコルの検討
08. メモリ非曖昧化 五島 正裕.
アプリケーション依存の先読みが可能なO/Rマッピングツール
バイトコードを単位とするJavaスライスシステムの試作
Ibaraki Univ. Dept of Electrical & Electronic Eng.
09. メモリ・ディスアンビギュエーション 五島 正裕.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
オペレーティングシステム (プロセススケジューリング)
コンピュータアーキテクチャ 第 10 回.
全体ミーティング (5/23) 村田雅之.
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 11 回.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
Ibaraki Univ. Dept of Electrical & Electronic Eng.
アーキテクチャパラメータを利用した並列GCの性能予測
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

11. マルチスレッド・プロセッサ 五島 正裕

内容 スレッド と マルチスレッド・プロセッサ スループット指向 MTP TLP 指向 MTP

スレッド と マルチスレッド・プロセッサ

スレッドとは スレッド (thread): 「プロセッサの実行状態」 「1つの PC で指定される命令流」 いろいろなスレッド: OS のスレッド/スレッド・ライブラリ pthread,Solaris thread,NT thread 言語のスレッド Java thread

スレッドの実体 OS のタスク―スレッド・モデル 1つのプロセス = 1つのタスク + 1つ,または,複数のスレッド 1つのプロセス = 1つのタスク + 1つ,または,複数のスレッド タスクの実体: メモリ・イメージ,ページの集合 スレッドの実体: プロセッサ・コンテクスト スレッド タスク タスク シングル・スレッド・プロセス マルチスレッド・プロセス

マルチスレッド・プロセッサ (MTP) プロセッサ・コンテクスト (processor context) 「プロセッサの動作状態を一意に定義するデータの集合」 コンテクスト・スイッチのとき,退避/復帰されるもの PC,レジスタ,etc. マルチスレッド・プロセッサ (MTP): 複数のプロセッサ・コンテクストを保持する それらのスイッチを HW が行う

複数のスレッドの元 複数のスレッドの元 (source): 複数のプログラムから1本ずつ 1本のプログラムから複数のスレッド それらの組み合わせ 抽出の方法: スレッド・ライブラリや言語機能を用いてプログラマが 自動マルチスレッド化コンパイラが HW が

マルチスレッド・プロセッサ マルチスレッド・プロセッサ 複数スレッドを「同時に」実行できる1つのプロセッサ マルチ・コア (multi-core) 複数のプロセッサ(コア)が1つに集積されているもの マルチスレッドのマルチ・コアもあり マルチプロセッサ (multiprocessor) 複数のプロセッサを持つ1つのシステム マルチスレッドのマルチプロセッサもあり

マルチスレッド・プロセッサの英訳? Google “Multithreaded Processor” (10,200件) “Multithreading Processor” ( 5,120件) “Multi-Threading Processor” ( 157件) “Multithread Processor” ( 195件) “Multi-Thread Processor” ( 203件)

マルチスレッド・プロセッサ (和訳) Google “マルチ スレッド プロセッサ” (226件) “マルチ スレッド プロセッサ” (226件) “マルチ スレッディング プロセッサ” (18件) “スレディッド”,“スレディド”,“スレッディッド”…(数件)

MTP の分類 TLP (Thread-Level Parallelism) 指向 粗粒度の並列性がない単一のプログラム ⇒ TLP の抽出 スループット指向 粗粒度の並列性がある単一のプログラム(⇒ 複数のプログラム) データ並列性 「粗粒度のスレッド」 スレッド・ライブラリ 言語のスレッド機能 複数のプログラム 「単一のプログラムは速くならないが,  複数のプログラムを実行しても遅くならない」

(Thread-Level Parallelism) MTP の分類 プログラム 粗粒度の並列性 指向 単一 なし TLP 指向 (Thread-Level Parallelism) データ並列性 粗粒度のスレッド スループット指向 複数 ―

スループット指向 MTP

スループット指向 MTP の対象 スループット指向 MTP の対象: 粗粒度の並列性がある単一のプログラム データ並列性 「粗粒度のスレッド」 スレッド・ライブラリ 言語のスレッド機能 複数のプログラム: 「単一のプログラムは速くならないが,  複数のプログラムを実行しても遅くならない」

スループット指向 MTP の戦略 スループット指向 MTP の戦略: 計算資源の利用効率の向上 シングル・スレッドでは使いきれない計算資源の活用 使い切れない原因:レイテンシ 依存関係:レイテンシ分の空きスロット,バブル 予測ミス:ペナルティ分の空きスロット,バブル 実際的な主要因: データ依存 分岐予測ミス キャッシュ・ミス

スループット指向 MTP の分類 古典的(90's ~): 細粒度 (fine-grain) MTP クロック単位で切り替え 粗粒度 (coarse-grain) MTP 長レイテンシ(キャッシュ・ミス)発生時に切り替え 最近 SMT (Simultaneous Multi-Threading) プロセッサ 命令単位で切り替え Intel Hyper-Threading (HT) Technology (2threads) Sun Niagara (4threads) SONY Cell PPE (2threads)

細粒度 MTP の効果 cycle cycle

粗粒度 MTP の効果 cycle キャッシュ ミス キャッシュ ミス

SMT の効果 演算器 演算器 演算器 cycle cycle

SMT PC PC RF RF 命令 ウィンドウ フロントエンド front-end バックエンド back-end RF 命令 キャッシュ リネーム 演算器 ロジック フェッチ Fetch リネーム Rename ディスパッチ Dispatch スケジュール Schedule 発行 Issue 読出 OR 実行 Exec 書戻 WB フロントエンド front-end バックエンド back-end

SMT の構成 Out-of-Order スーパスカラがベース 拡張: 命令フェッチ: 細粒度で(クロックごとに)スレッド切り替え それ以外: 論理レジスタ番号をスレッドの ID で拡張 「スレッド 0 は r0~r31,スレッド 1 は r32~r63」

SMT の利点/欠点 利点: OoO スーパスカラから,わずかな追加 HW で,MT化できる 他の MTP に比べ, 分岐予測ミス・ペナルティを含む,すべてのレイテンシを隠蔽可能 欠点: マルチコアに比べると,性能向上幅が小さい 「貧乏人のマルチコア」 スケーラブルでない 大容量のレジスタ・ファイルが必要になる

TLP 指向 MTP

TLP と ILP ILP : Instruction-Level Parallelism (1本のスレッドの中の)命令レベルの並列性 TLP : Thread-Level Parallelism  複数のスレッドの中の 命令レベルの並列性 データ並列性や「粗粒度のスレッド」によるスレッドの並列性は,TLP とは言わない(たぶん)

スレッドの抽出法 スレッドの抽出法: 静的: コンパイラ バイナリ互換性なし 動的: プロセッサ バイナリ互換性維持

SpMT SpMT(Speculative Multi-Threading,投機的MT) 分岐予測の拡張 親スレッドが,複数の子スレッドを投機的に fork,データ予測 あたったスレッドが生き残る 分岐予測 SpMT PC PC PC PC PC

Pseudo Multi-Threading Intel Hyper-Threading (HT) Technology メイン・スレッド × 1 + ヘルパ・スレッド × 1 ヘルパ・スレッド 簡約化されたコードを実行し,キャッシュ・プリフェッチを行う メイン・スレッド キャッシュ・アクセスがヒットする

Slipstream Processors メイン・スレッド × 1 + サブ・スレッド × 複数 メイン・スレッド 静的予測に基づいて簡約化されたコードを実行 サブ・スレッド メイン・スレッドの後を追って, 簡約化されていないコードを実行し,予測を検証

今日のまとめ

今後の予定 7/12 休講 7/19 マルチスレッド・プロセッサ 7/26

レポート課題 課題:1は任意,2は必須 遅延分岐では,compare & branch に完全に対処することは困難であると思われる.実際のパイプライン・マシン (ex. MIPS R2000/3000) ではどうなっているのか調べよ. コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ. 提出方法: e-mail To: goshima@mtl.t.u-tokyo.ac.jp Subject: 「ACA」,「レポート」を含めること 様式,フォーマット,分量 自由 期限 8/16(火) http://www.mtl.t.u-tokyo.ac.jp/~goshima/

レポート課題 コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ. 「種々の投機技術」