スライド 1

Advanced
Computer
Architecture
10. ベクトル処理
五島 正裕
Advanced Computer Architecture
内容
1. ベクトル型並列計算機
2. 並列計算機の分類
3. SIMD 型並列計算機
4. MIMD 型並列計算機
5. SIMD 命令
Advanced
Computer
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
(処理時間)
=
スループット
1
S +(投入間隔 = 1)× (ベクトル長)
(スループット)
=
(ベクトル長) ÷ (処理時間)
=
(S ÷(ベクトル長)+ 1)−1
1/2
O
 半性能長:
 スループットが 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/
Advanced
Computer
Architecture
並列計算機の分類
Advanced Computer Architecture
計算の2つのストリーム
命令流
 計算の2つのストリーム:
 Instruction Stream (命令流)
 Data Stream (データ流)
演算器
データ流
Advanced Computer Architecture
Flynn の並列計算機の分類 (1966)
Data Stream
Multiple
SISD (スカラ)
SIMD
MISD (?)
MIMD(普通の MP)
Single
Single
Multiple
Instruction Stream
Advanced
Computer
Architecture
SIMD 型並列計算機
Advanced Computer Architecture
SIMD 型並列計算機
Control Unit
PC
PE
PE
Memory
PE
Memory
Memory
Interconnection Network
PE : Processing Element
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 に取って代わられた
Advanced Computer Architecture
SIMD 型並列計算機
MIMD
型並列計算機
Control Unit
PC
PE
PE
Memory
PE
Memory
Memory
Interconnection Network
PE : Processing Element
Advanced Computer Architecture
SIMD 型並列計算機の最期
 Thinking Machine 社:最後の SIMD ベンダ
 Connection Machine シリーズ
 CM-4 (SIMD)
 CM-5 (MIMD)

SPMD (Single Program/Multiple Data Stream, spim-dee)
 ユーザは MIMD が嫌いだった!
Advanced
Computer
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 クラスタに押されて消えた
 マルチコアとして復活?
Advanced
Computer
Architecture
SIMD 命令
Advanced Computer Architecture
SIMD 命令
 SIMD 命令
 (スーパ)スカラ・プロセッサの(拡張)命令セット
 1本のレジスタに2~8個のデータをパック
 1命令で同種の演算を2~8個程度 同時に実行
Advanced Computer Architecture
SIMD 命令の変遷 (Sun)
 VIS (Visual Instruction Set) for SPARC
 既存の 64b 浮動小数点レジスタ
 既存の 64b 浮動小数点演算器を 4 x 16b にスライスして使用

追加 HW コストはごくわずか
 CG における座標変換,同次座標の行列―ベクトル積を CPU で
Advanced Computer Architecture
SIMD 命令の変遷 (Intel)
 MMX (Multi-Media eXtension?) for Pentium
 8 x 64b 専用レジスタ MM0~MM7
 64b 専用演算器
 汎用マルチメディア処理
 飽和演算
 (x87 浮動小数点命令が非効率すぎる)
 SSE (Streaming SIMD Extensions) for Pentium III
 8 x 128b 専用レジスタ XMM0~XMM7
 128b 専用演算器
 暗号,ストリーミング処理
 シャフル命令
 キャッシュ制御命令
 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命令
Advanced
Computer
Architecture
データ並列性
Advanced Computer Architecture
データ並列性
 データ並列性 (data parallelism):
 異なるデータに対して(ほぼ)同型の処理を行うときに生じる
 制御並列性? (control parallelism ?):
 データ並列性がない(少ない)
 ベクトル,SIMD によるベクトル処理:
 データ並列性を利用
Advanced Computer Architecture
RISC スーパスカラとの違い
 RISC スーパスカラ
 複数のパイプライン化された FPU を持つ
 FPU を追加すれば,能力的にはほぼ同等
 だが…
 RISC スーパスカラ
 データ流量 = 命令流量
 ベクトル,SIMD
 データ流量 > 命令流量
Advanced
Computer
Architecture
今日のまとめ
Advanced Computer Architecture
Flynn の並列計算機の分類 (1966)
Data Stream
Multiple
SISD (スカラ)
SIMD
MISD (?)
MIMD(普通の MP)
Single
Single
Multiple
Instruction Stream
Advanced Computer Architecture
ベクトル型並列計算機
ベクトル
ロード
ユニット
ベクトル
加算器
ベクトル
乗算器
ベクトル
レジスタ
主記憶
ベクトル
除算器
ベクトル
○○器
ベクトル
ストア
ユニット
キャッシュ
スカラ
レジスタ
スカラ
ユニット
Advanced Computer Architecture
SIMD 型並列計算機
MIMD
型並列計算機
Control Unit
PC
PE
PE
Memory
PE
Memory
Memory
Interconnection Network
PE : Processing Element
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: [email protected]
 Subject: 「ACA」,「レポート」を含めること
 様式,フォーマット,分量
 自由
 期限
 8/16(火)