10. ベクトル処理

Preview:

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

AdvancedComputer

Architecture

10. ベクトル処理

五島 正裕

Advanced Computer Architecture

内容

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

AdvancedComputer

Architecture

ベクトル型並列計算機

Advanced Computer Architecture

ベクトル処理

ベクトル: 1 次元配列データ

ベクトル演算: ベクトル和 z = x + y

内積    z = x ∙ y

for (i = 0; i < N; ++i)

z[i] = x[i] op y[i];

Advanced Computer Architecture

ベクトル演算器

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

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

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

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

Advanced Computer Architecture

ベクトル型並列計算機

主記憶

ベクトルロード

ユニット

ベクトルストア

ユニット

ベクトル加算器

ベクトル乗算器

ベクトル除算器

ベクトル○○ 器

ベクトルレジスタ

スカラレジスタ

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

64 本 x 256 語 x 64b

x8 セット

Advanced Computer Architecture

半性能長

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

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

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

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

ベクトル長

スループット

O半性能長

1

1/2

Advanced Computer Architecture

ベクトル処理とスパコン

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

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

スパコンの代名詞

PVP (Parallel Vector Processor)

Advanced Computer Architecture

ベクトル処理とスパコン

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

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

地球シミュレータ (NEC)

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

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

Advanced Computer Architecture

地球シミュレータ

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

AdvancedComputer

Architecture

並列計算機の分類

Advanced Computer Architecture

計算の 2 つのストリーム

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

演算器

命令流

データ流

Advanced Computer Architecture

Flynn の並列計算機の分類 (1966)

Data Stream

Single Multiple

Instru

ctio

n S

tream

Sin

gle

SISD (スカラ) SIMD

Mu

ltiple

MISD (?) MIMD (普通の MP )

AdvancedComputer

Architecture

SIMD 型並列計算機

Advanced Computer Architecture

SIMD 型並列計算機

PC

Control Unit

Interconnection Network

PE : Processing Element

PE

Memory Memory Memory

PE PE

Advanced Computer Architecture

SIMD 型並列計算機

Single Instruction/Multiple Data Stream

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

if-then-else

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

Advanced Computer Architecture

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

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

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

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

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

Advanced Computer Architecture

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

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

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

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

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

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

MIMD に取って代わられた

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

Advanced Computer Architecture

SIMD 型並列計算機

PC

Control Unit

Interconnection Network

PE : Processing Element

PE

Memory Memory Memory

PE PE

PCPC

MIMD 型並列計算機

Advanced Computer Architecture

SIMD 型並列計算機の最期

Thinking Machine 社:最後の SIMD ベンダ Connection Machine シリーズ

CM-4 (SIMD)

CM-5 (MIMD)

SPMD (Single Program/Multiple Data Stream, spim-dee)

ユーザは MIMD が嫌いだった!

AdvancedComputer

Architecture

MIMD 型並列計算機

Advanced Computer Architecture

MIMD

MIMD (Multiple Instruction/Multiple Data Stream)

要はマルチプロセッサ

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

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

MPP (Massively Parallel Processor)

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

Advanced Computer Architecture

MPP の最期

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

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

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

AdvancedComputer

Architecture

SIMD 命令

Advanced Computer Architecture

SIMD 命令

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

Advanced Computer Architecture

SIMD 命令の変遷 (Sun)

VIS (Visual Instruction Set) for SPARC

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

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

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 水平型命令

Advanced Computer Architecture

SIMD 命令の変遷 (Others)

3DNow! for Athlon

MMX , SSE と互換

AltiVec for PowerPC

Photoshop

Digital Media Extension for MIPS

Advanced Computer Architecture

SIMD 命令の変遷 (GPU)

GPU (Graphics Processing Unit)

Programmable Shader ( DirectX 8 以降) SIMD 命令

– 同次座標  (x, y, z, w)

– 色と透明度 (r, g, b, a)

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 命令

AdvancedComputer

Architecture

データ並列性

Advanced Computer Architecture

データ並列性

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

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

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

Advanced Computer Architecture

RISC スーパスカラとの違い

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

だが…

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

ベクトル, SIMD

データ流量 > 命令流量

AdvancedComputer

Architecture

今日のまとめ

Advanced Computer Architecture

Flynn の並列計算機の分類 (1966)

Data Stream

Single Multiple

Instru

ctio

n S

tream

Sin

gle

SISD (スカラ) SIMD

Mu

ltiple

MISD (?) MIMD (普通の MP )

Advanced Computer Architecture

ベクトル型並列計算機

主記憶

ベクトルロード

ユニット

ベクトルストア

ユニット

ベクトル加算器

ベクトル乗算器

ベクトル除算器

ベクトル○○ 器

ベクトルレジスタ

スカラレジスタ

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

Advanced Computer Architecture

SIMD 型並列計算機

PC

Control Unit

Interconnection Network

PE : Processing Element

PE

Memory Memory Memory

PE PE

PCPC

MIMD 型並列計算機

Advanced Computer Architecture

SIMD 命令

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

Advanced Computer Architecture

データ並列性

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

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

Advanced Computer Architecture

RISC スーパスカラとの違い

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

だが…

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

ベクトル, SIMD

データ流量 > 命令流量

Advanced Computer Architecture

今後の予定

7/12 休講

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

7/26

Advanced Computer Architecture

レポート課題

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

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

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

提出方法: e-mail

To: goshima@mtl.t.u-tokyo.ac.jp Subject: 「 ACA 」,「レポート」を含めること

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

期限 8/16 (火)

Recommended