10. ベクトル処理
description
Transcript of 10. ベクトル処理
![Page 1: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/1.jpg)
AdvancedComputer
Architecture
10. ベクトル処理
五島 正裕
![Page 2: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/2.jpg)
Advanced Computer Architecture
内容
1. ベクトル型並列計算機2. 並列計算機の分類3. SIMD 型並列計算機4. MIMD 型並列計算機5. SIMD 命令
![Page 3: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/3.jpg)
AdvancedComputer
Architecture
ベクトル型並列計算機
![Page 4: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/4.jpg)
Advanced Computer Architecture
ベクトル処理
ベクトル: 1 次元配列データ
ベクトル演算: ベクトル和 z = x + y
内積 z = x ∙ y
…
for (i = 0; i < N; ++i)
z[i] = x[i] op y[i];
![Page 5: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/5.jpg)
Advanced Computer Architecture
ベクトル演算器
ベクトル演算器 ベクトル単位の演算
n 要素のベクトル○○算を 1 命令で
構成: パイプライン化された演算器 + 制御レジスタ
制御レジスタ: カウンタ ベクトル長 開始アドレス,ストライド(ロード / ストアの場合)
![Page 6: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/6.jpg)
Advanced Computer Architecture
ベクトル型並列計算機
主記憶
ベクトルロード
ユニット
ベクトルストア
ユニット
ベクトル加算器
ベクトル乗算器
ベクトル除算器
ベクトル○○ 器
ベクトルレジスタ
スカラレジスタ
スカラユニットキャッシュ
64 本 x 256 語 x 64b
x8 セット
![Page 7: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/7.jpg)
Advanced Computer Architecture
半性能長
スタートアップ・タイム: S
(処理時間)= S +(投入間隔 = 1 ) × (ベクトル長)
(スループット)= (ベクトル長) ÷ (処理時間)= ( S ÷ (ベクトル長)+ 1 )− 1
半性能長: スループットが 1/2 になるベクトル長
ベクトル長
スループット
O半性能長
1
1/2
![Page 8: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/8.jpg)
Advanced Computer Architecture
ベクトル処理とスパコン
昔,マルチメディアとか なかったころ, ベクトル処理といえば,
大規模数値処理 ベクトル・マシンといえば,
スパコンの代名詞
PVP (Parallel Vector Processor)
![Page 9: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/9.jpg)
Advanced Computer Architecture
ベクトル処理とスパコン
日本のベクトル・スパコン Cray を打ち負かした
貿易摩擦 「公的機関でちょっと速い計算機を買うときは国際競争入札に」
地球シミュレータ (NEC)
Sputnik にちなんで“ Computnik” と呼ばれた 最後のベクトル・スパコン?
PC クラスタに押されて消える?
![Page 10: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/10.jpg)
Advanced Computer Architecture
地球シミュレータ
http://www.es.jamstec.go.jp/
![Page 11: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/11.jpg)
AdvancedComputer
Architecture
並列計算機の分類
![Page 12: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/12.jpg)
Advanced Computer Architecture
計算の 2 つのストリーム
計算の 2 つのストリーム: Instruction Stream (命令流) Data Stream (データ流)
演算器
命令流
データ流
![Page 13: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/13.jpg)
Advanced Computer Architecture
Flynn の並列計算機の分類 (1966)
Data Stream
Single Multiple
Instru
ctio
n S
tream
Sin
gle
SISD (スカラ) SIMD
Mu
ltiple
MISD (?) MIMD (普通の MP )
![Page 14: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/14.jpg)
AdvancedComputer
Architecture
SIMD 型並列計算機
![Page 15: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/15.jpg)
Advanced Computer Architecture
SIMD 型並列計算機
PC
Control Unit
Interconnection Network
PE : Processing Element
PE
Memory Memory Memory
PE PE
![Page 16: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/16.jpg)
Advanced Computer Architecture
SIMD 型並列計算機
Single Instruction/Multiple Data Stream
すべての PE で同じ命令を実行
if-then-else
PE ごとに,実行フラグ 条件 ⇒ フラグ・セット フラグがたっている / いない PE だけ実行
![Page 17: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/17.jpg)
Advanced Computer Architecture
SIMD 型並列計算機の利点 / 欠点 (当時)
利点: コントロール・ユニットが 1 つですむので,安い
すべての PE で同じことをするので,プログラミングが容易
欠点: スケーラブル (scalable) でない
多数の PE に命令を放送するのは困難 if-then-else の実行効率が低い
![Page 18: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/18.jpg)
Advanced Computer Architecture
SIMD 型並列計算機の利点 / 欠点 (近代)
利点: コントロール・ユニットが 1 つですむので,安い
ウソ.汎用のプロセッサを買ってくるほうが安い すべての PE で同じことをするので,プログラミングが容易
ウソ.すべての PE で同じことしかできない 欠点:
スケーラブル (scalable) でない 多数の PE に命令を放送するのは困難
if-then-else の実行効率が低い
MIMD に取って代わられた
SIMD 型並列計算機の利点 / 欠点 (当時)
![Page 19: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/19.jpg)
Advanced Computer Architecture
SIMD 型並列計算機
PC
Control Unit
Interconnection Network
PE : Processing Element
PE
Memory Memory Memory
PE PE
PCPC
MIMD 型並列計算機
![Page 20: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/20.jpg)
Advanced Computer Architecture
SIMD 型並列計算機の最期
Thinking Machine 社:最後の SIMD ベンダ Connection Machine シリーズ
CM-4 (SIMD)
CM-5 (MIMD)
SPMD (Single Program/Multiple Data Stream, spim-dee)
ユーザは MIMD が嫌いだった!
![Page 21: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/21.jpg)
AdvancedComputer
Architecture
MIMD 型並列計算機
![Page 22: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/22.jpg)
Advanced Computer Architecture
MIMD
MIMD (Multiple Instruction/Multiple Data Stream)
要はマルチプロセッサ
(非学術的)分類: SMP (Symmetric Multi-Processor)
メモリ・バスを共有 2 ~ 128 プロセッサ
MPP (Massively Parallel Processor)
一般のネットワーク ~数 K プロセッサ
![Page 23: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/23.jpg)
Advanced Computer Architecture
MPP の最期
90 年代: RISC スーパスカラの普及期に,たくさん並べてみたくなった 「高速で安価な RISC プロセッサの普及により,数千個のプロセッ
サを持つ超並列計算機が,次世代のスーパコンピュータとして注目を集めいている.」
2000 年代 PC クラスタに押されて消えた マルチコアとして復活?
![Page 24: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/24.jpg)
AdvancedComputer
Architecture
SIMD 命令
![Page 25: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/25.jpg)
Advanced Computer Architecture
SIMD 命令
SIMD 命令 (スーパ)スカラ・プロセッサの(拡張)命令セット 1 本のレジスタに 2 ~ 8 個のデータをパック 1 命令で同種の演算を 2 ~ 8 個程度 同時に実行
![Page 26: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/26.jpg)
Advanced Computer Architecture
SIMD 命令の変遷 (Sun)
VIS (Visual Instruction Set) for SPARC
既存の 64 b 浮動小数点レジスタ 既存の 64 b 浮動小数点演算器を 4 x 16b にスライスして使用
追加 HW コストはごくわずか CG における座標変換,同次座標の行列―ベクトル積を CPU で
![Page 27: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/27.jpg)
Advanced Computer Architecture
SIMD 命令の変遷 (Intel)
MMX (Multi-Media eXtension?) for Pentium 8 x 64 b 専用レジスタ MM0 ~ MM7 64 b 専用演算器 汎用マルチメディア処理
飽和演算 (x 87 浮動小数点命令が非効率すぎる)
SSE (Streaming SIMD Extensions) for Pentium III 8 x 128 b 専用レジスタ XMM0 ~ XMM7 128 b 専用演算器 暗号,ストリーミング処理
シャフル命令 キャッシュ制御命令
SSE2 for Pentium 4 レジスタの増量
SSE3 水平型命令
![Page 28: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/28.jpg)
Advanced Computer Architecture
SIMD 命令の変遷 (Others)
3DNow! for Athlon
MMX , SSE と互換
AltiVec for PowerPC
Photoshop
Digital Media Extension for MIPS
![Page 29: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/29.jpg)
Advanced Computer Architecture
SIMD 命令の変遷 (GPU)
GPU (Graphics Processing Unit)
Programmable Shader ( DirectX 8 以降) SIMD 命令
– 同次座標 (x, y, z, w)
– 色と透明度 (r, g, b, a)
![Page 30: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/30.jpg)
Advanced Computer Architecture
SIMD 命令の変遷 (Cell)
Cell = PPE (Power Processing Element = PowerPC) + SPE (Synergistic Processing Element) x 7
SPE 128 x 128b SIMD レジスタ SIMD 命令を 1 サイクルに 2 命令
![Page 31: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/31.jpg)
AdvancedComputer
Architecture
データ並列性
![Page 32: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/32.jpg)
Advanced Computer Architecture
データ並列性
データ並列性 (data parallelism) :異なるデータに対して(ほぼ)同型の処理を行うときに生じる
制御並列性? (control parallelism ?) : データ並列性がない(少ない)
ベクトル, SIMD によるベクトル処理: データ並列性を利用
![Page 33: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/33.jpg)
Advanced Computer Architecture
RISC スーパスカラとの違い
RISC スーパスカラ複数のパイプライン化された FPU を持つ FPU を追加すれば,能力的にはほぼ同等
だが…
RISC スーパスカラ データ流量 = 命令流量
ベクトル, SIMD
データ流量 > 命令流量
![Page 34: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/34.jpg)
AdvancedComputer
Architecture
今日のまとめ
![Page 35: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/35.jpg)
Advanced Computer Architecture
Flynn の並列計算機の分類 (1966)
Data Stream
Single Multiple
Instru
ctio
n S
tream
Sin
gle
SISD (スカラ) SIMD
Mu
ltiple
MISD (?) MIMD (普通の MP )
![Page 36: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/36.jpg)
Advanced Computer Architecture
ベクトル型並列計算機
主記憶
ベクトルロード
ユニット
ベクトルストア
ユニット
ベクトル加算器
ベクトル乗算器
ベクトル除算器
ベクトル○○ 器
ベクトルレジスタ
スカラレジスタ
スカラユニットキャッシュ
![Page 37: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/37.jpg)
Advanced Computer Architecture
SIMD 型並列計算機
PC
Control Unit
Interconnection Network
PE : Processing Element
PE
Memory Memory Memory
PE PE
PCPC
MIMD 型並列計算機
![Page 38: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/38.jpg)
Advanced Computer Architecture
SIMD 命令
SIMD 命令 (スーパ)スカラ・プロセッサの(拡張)命令セット 1 本のレジスタに 2 ~ 8 個のデータをパック 1 命令で同種の演算を 2 ~ 8 個程度 同時に実行
![Page 39: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/39.jpg)
Advanced Computer Architecture
データ並列性
データ並列性 (data parallelism) :異なるデータに対して(ほぼ)同型の処理を行うときに生じる
ベクトル, SIMD によるベクトル処理: データ並列性を利用
![Page 40: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/40.jpg)
Advanced Computer Architecture
RISC スーパスカラとの違い
RISC スーパスカラ複数のパイプライン化された FPU を持つ FPU を追加すれば,能力的にはほぼ同等
だが…
RISC スーパスカラ データ流量 = 命令流量
ベクトル, SIMD
データ流量 > 命令流量
![Page 41: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/41.jpg)
Advanced Computer Architecture
今後の予定
7/12 休講
7/19 マルチスレッド・プロセッサ
7/26
![Page 42: 10. ベクトル処理](https://reader036.fdocument.pub/reader036/viewer/2022062517/5681369b550346895d9e3631/html5/thumbnails/42.jpg)
Advanced Computer Architecture
レポート課題
課題: 1 は任意, 2 は必須
1. 遅延分岐では, compare & branch に完全に対処することは困難であると思われる.実際のパイプライン・マシン (ex. MIPS R2000/3000) ではどうなっているのか調べよ.
2. コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ.
提出方法: e-mail
To: [email protected] Subject: 「 ACA 」,「レポート」を含めること
様式,フォーマット,分量 自由
期限 8/16 (火)