パナソニック2009年度アーキテクト塾

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