42
Advanced Computer Architecture 10. ベベベベベベ 五五 五五

10. ベクトル処理

Embed Size (px)

DESCRIPTION

10. ベクトル処理. 五島 正裕. 内容. ベクトル型並列計算機 並列計算機の分類 SIMD 型並列計算機 MIMD 型並列計算機 SIMD 命令. ベクトル型並列計算機. ベクトル処理. ベクトル: 1 次元配列データ ベクトル演算: ベクトル和 z = x + y 内積    z = x ∙ y … for (i = 0; i < N; ++i) z[i] = x[i] op y[i];. ベクトル演算器. ベクトル演算器 ベクトル単位の演算 n 要素のベクトル○○算を 1 命令で 構成: - PowerPoint PPT Presentation

Citation preview

Page 1: 10.  ベクトル処理

AdvancedComputer

Architecture

10. ベクトル処理

五島 正裕

Page 2: 10.  ベクトル処理

Advanced Computer Architecture

内容

1. ベクトル型並列計算機2. 並列計算機の分類3. SIMD 型並列計算機4. MIMD 型並列計算機5. SIMD 命令

Page 3: 10.  ベクトル処理

AdvancedComputer

Architecture

ベクトル型並列計算機

Page 4: 10.  ベクトル処理

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.  ベクトル処理

Advanced Computer Architecture

ベクトル演算器

ベクトル演算器 ベクトル単位の演算

n 要素のベクトル○○算を 1 命令で

構成: パイプライン化された演算器 + 制御レジスタ

制御レジスタ: カウンタ ベクトル長 開始アドレス,ストライド(ロード / ストアの場合)

Page 6: 10.  ベクトル処理

Advanced Computer Architecture

ベクトル型並列計算機

主記憶

ベクトルロード

ユニット

ベクトルストア

ユニット

ベクトル加算器

ベクトル乗算器

ベクトル除算器

ベクトル○○ 器

ベクトルレジスタ

スカラレジスタ

スカラユニットキャッシュ

64 本 x 256 語 x 64b

x8 セット

Page 7: 10.  ベクトル処理

Advanced Computer Architecture

半性能長

スタートアップ・タイム: S

(処理時間)= S +(投入間隔 = 1 ) × (ベクトル長)

(スループット)= (ベクトル長) ÷ (処理時間)= ( S ÷ (ベクトル長)+ 1 )− 1

半性能長: スループットが 1/2 になるベクトル長

ベクトル長

スループット

O半性能長

1

1/2

Page 8: 10.  ベクトル処理

Advanced Computer Architecture

ベクトル処理とスパコン

昔,マルチメディアとか なかったころ, ベクトル処理といえば,

大規模数値処理 ベクトル・マシンといえば,

スパコンの代名詞

PVP (Parallel Vector Processor)

Page 9: 10.  ベクトル処理

Advanced Computer Architecture

ベクトル処理とスパコン

日本のベクトル・スパコン Cray を打ち負かした

貿易摩擦 「公的機関でちょっと速い計算機を買うときは国際競争入札に」

地球シミュレータ (NEC)

Sputnik にちなんで“ Computnik” と呼ばれた 最後のベクトル・スパコン?

PC クラスタに押されて消える?

Page 10: 10.  ベクトル処理

Advanced Computer Architecture

地球シミュレータ

http://www.es.jamstec.go.jp/

Page 11: 10.  ベクトル処理

AdvancedComputer

Architecture

並列計算機の分類

Page 12: 10.  ベクトル処理

Advanced Computer Architecture

計算の 2 つのストリーム

計算の 2 つのストリーム: Instruction Stream (命令流) Data Stream (データ流)

演算器

命令流

データ流

Page 13: 10.  ベクトル処理

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.  ベクトル処理

AdvancedComputer

Architecture

SIMD 型並列計算機

Page 15: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 型並列計算機

PC

Control Unit

Interconnection Network

PE : Processing Element

PE

Memory Memory Memory

PE PE

Page 16: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 型並列計算機

Single Instruction/Multiple Data Stream

すべての PE で同じ命令を実行

if-then-else

PE ごとに,実行フラグ 条件 ⇒ フラグ・セット フラグがたっている / いない PE だけ実行

Page 17: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 型並列計算機の利点 / 欠点 (当時)

利点: コントロール・ユニットが 1 つですむので,安い

すべての PE で同じことをするので,プログラミングが容易

欠点: スケーラブル (scalable) でない

多数の PE に命令を放送するのは困難 if-then-else の実行効率が低い

Page 18: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 型並列計算機の利点 / 欠点 (近代)

利点: コントロール・ユニットが 1 つですむので,安い

ウソ.汎用のプロセッサを買ってくるほうが安い すべての PE で同じことをするので,プログラミングが容易

ウソ.すべての PE で同じことしかできない 欠点:

スケーラブル (scalable) でない 多数の PE に命令を放送するのは困難

if-then-else の実行効率が低い

MIMD に取って代わられた

SIMD 型並列計算機の利点 / 欠点 (当時)

Page 19: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 型並列計算機

PC

Control Unit

Interconnection Network

PE : Processing Element

PE

Memory Memory Memory

PE PE

PCPC

MIMD 型並列計算機

Page 20: 10.  ベクトル処理

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.  ベクトル処理

AdvancedComputer

Architecture

MIMD 型並列計算機

Page 22: 10.  ベクトル処理

Advanced Computer Architecture

MIMD

MIMD (Multiple Instruction/Multiple Data Stream)

要はマルチプロセッサ

(非学術的)分類: SMP (Symmetric Multi-Processor)

メモリ・バスを共有 2 ~ 128 プロセッサ

MPP (Massively Parallel Processor)

一般のネットワーク ~数 K プロセッサ

Page 23: 10.  ベクトル処理

Advanced Computer Architecture

MPP の最期

90 年代: RISC スーパスカラの普及期に,たくさん並べてみたくなった 「高速で安価な RISC プロセッサの普及により,数千個のプロセッ

サを持つ超並列計算機が,次世代のスーパコンピュータとして注目を集めいている.」

2000 年代 PC クラスタに押されて消えた マルチコアとして復活?

Page 24: 10.  ベクトル処理

AdvancedComputer

Architecture

SIMD 命令

Page 25: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 命令

SIMD 命令 (スーパ)スカラ・プロセッサの(拡張)命令セット 1 本のレジスタに 2 ~ 8 個のデータをパック 1 命令で同種の演算を 2 ~ 8 個程度 同時に実行

Page 26: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 命令の変遷 (Sun)

VIS (Visual Instruction Set) for SPARC

既存の 64 b 浮動小数点レジスタ 既存の 64 b 浮動小数点演算器を 4 x 16b にスライスして使用

追加 HW コストはごくわずか CG における座標変換,同次座標の行列―ベクトル積を CPU で

Page 27: 10.  ベクトル処理

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.  ベクトル処理

Advanced Computer Architecture

SIMD 命令の変遷 (Others)

3DNow! for Athlon

MMX , SSE と互換

AltiVec for PowerPC

Photoshop

Digital Media Extension for MIPS

Page 29: 10.  ベクトル処理

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.  ベクトル処理

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.  ベクトル処理

AdvancedComputer

Architecture

データ並列性

Page 32: 10.  ベクトル処理

Advanced Computer Architecture

データ並列性

データ並列性 (data parallelism) :異なるデータに対して(ほぼ)同型の処理を行うときに生じる

制御並列性? (control parallelism ?) : データ並列性がない(少ない)

ベクトル, SIMD によるベクトル処理: データ並列性を利用

Page 33: 10.  ベクトル処理

Advanced Computer Architecture

RISC スーパスカラとの違い

RISC スーパスカラ複数のパイプライン化された FPU を持つ FPU を追加すれば,能力的にはほぼ同等

だが…

RISC スーパスカラ データ流量 = 命令流量

ベクトル, SIMD

データ流量 > 命令流量

Page 34: 10.  ベクトル処理

AdvancedComputer

Architecture

今日のまとめ

Page 35: 10.  ベクトル処理

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.  ベクトル処理

Advanced Computer Architecture

ベクトル型並列計算機

主記憶

ベクトルロード

ユニット

ベクトルストア

ユニット

ベクトル加算器

ベクトル乗算器

ベクトル除算器

ベクトル○○ 器

ベクトルレジスタ

スカラレジスタ

スカラユニットキャッシュ

Page 37: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 型並列計算機

PC

Control Unit

Interconnection Network

PE : Processing Element

PE

Memory Memory Memory

PE PE

PCPC

MIMD 型並列計算機

Page 38: 10.  ベクトル処理

Advanced Computer Architecture

SIMD 命令

SIMD 命令 (スーパ)スカラ・プロセッサの(拡張)命令セット 1 本のレジスタに 2 ~ 8 個のデータをパック 1 命令で同種の演算を 2 ~ 8 個程度 同時に実行

Page 39: 10.  ベクトル処理

Advanced Computer Architecture

データ並列性

データ並列性 (data parallelism) :異なるデータに対して(ほぼ)同型の処理を行うときに生じる

ベクトル, SIMD によるベクトル処理: データ並列性を利用

Page 40: 10.  ベクトル処理

Advanced Computer Architecture

RISC スーパスカラとの違い

RISC スーパスカラ複数のパイプライン化された FPU を持つ FPU を追加すれば,能力的にはほぼ同等

だが…

RISC スーパスカラ データ流量 = 命令流量

ベクトル, SIMD

データ流量 > 命令流量

Page 41: 10.  ベクトル処理

Advanced Computer Architecture

今後の予定

7/12 休講

7/19 マルチスレッド・プロセッサ

7/26

Page 42: 10.  ベクトル処理

Advanced Computer Architecture

レポート課題

課題: 1 は任意, 2 は必須

1. 遅延分岐では, compare & branch に完全に対処することは困難であると思われる.実際のパイプライン・マシン (ex. MIPS R2000/3000) ではどうなっているのか調べよ.

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

提出方法: e-mail

To: [email protected] Subject: 「 ACA 」,「レポート」を含めること

様式,フォーマット,分量 自由

期限 8/16 (火)