430 likes | 692 Views
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 命令で 構成:
E N D
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命令で • 構成: • パイプライン化された演算器 + • 制御レジスタ • 制御レジスタ: • カウンタ • ベクトル長 • 開始アドレス,ストライド(ロード/ストアの場合)
ベクトル型並列計算機 64本 x 256語 x 64b ベクトル ロード ユニット 主記憶 ベクトル レジスタ ベクトル 加算器 ベクトル 乗算器 x8 セット ベクトル 除算器 ベクトル ○○器 ベクトル ストア ユニット キャッシュ スカラ レジスタ スカラ ユニット
半性能長 • スタートアップ・タイム:S (処理時間) • S+(投入間隔 = 1)× (ベクトル長) (スループット) • (ベクトル長) ÷ (処理時間) • (S ÷(ベクトル長)+ 1)−1 • 半性能長: • スループットが 1/2になるベクトル長 スループット 1 1/2 O ベクトル長 半性能長
ベクトル処理とスパコン • 昔,マルチメディアとか なかったころ, • ベクトル処理といえば, • 大規模数値処理 • ベクトル・マシンといえば, • スパコンの代名詞 • PVP (Parallel Vector Processor)
ベクトル処理とスパコン • 日本のベクトル・スパコン • Cray を打ち負かした • 貿易摩擦 • 「公的機関でちょっと速い計算機を買うときは国際競争入札に」 • 地球シミュレータ (NEC) • Sputnik にちなんで“Computnik”と呼ばれた • 最後のベクトル・スパコン? • PC クラスタに押されて消える?
地球シミュレータ http://www.es.jamstec.go.jp/
計算の2つのストリーム • 計算の2つのストリーム: • Instruction Stream (命令流) • Data Stream (データ流) 命令流 演算器 データ流
SIMD 型並列計算機 Control Unit PC PE PE PE Memory Memory Memory Interconnection Network PE : Processing Element
SIMD 型並列計算機 • Single Instruction/Multiple Data Stream • すべての PE で同じ命令を実行 • if-then-else • PE ごとに,実行フラグ • 条件 ⇒ フラグ・セット • フラグがたっている/いない PE だけ実行
SIMD 型並列計算機の利点/欠点 (当時) • 利点: • コントロール・ユニットが1つですむので,安い • すべての PE で同じことをするので,プログラミングが容易 • 欠点: • スケーラブル (scalable) でない • 多数の PE に命令を放送するのは困難 • if-then-else の実行効率が低い
SIMD 型並列計算機の利点/欠点 (近代) SIMD 型並列計算機の利点/欠点 (当時) • 利点: • コントロール・ユニットが1つですむので,安い • ウソ.汎用のプロセッサを買ってくるほうが安い • すべての PE で同じことをするので,プログラミングが容易 • ウソ.すべての PE で同じことしかできない • 欠点: • スケーラブル (scalable) でない • 多数の PE に命令を放送するのは困難 • if-then-else の実行効率が低い • MIMD に取って代わられた
PC PC PC SIMD 型並列計算機 MIMD 型並列計算機 Control Unit PE PE PE Memory Memory Memory Interconnection Network PE : Processing Element
SIMD 型並列計算機の最期 • Thinking Machine 社:最後の SIMD ベンダ • Connection Machine シリーズ • CM-4 (SIMD) • CM-5 (MIMD) • SPMD (Single Program/Multiple Data Stream, spim-dee) • ユーザは MIMD が嫌いだった!
MIMD • MIMD (Multiple Instruction/Multiple Data Stream) • 要はマルチプロセッサ • (非学術的)分類: • SMP (Symmetric Multi-Processor) • メモリ・バスを共有 • 2~128 プロセッサ • MPP (Massively Parallel Processor) • 一般のネットワーク • ~数K プロセッサ
MPP の最期 • 90年代: • RISC スーパスカラの普及期に,たくさん並べてみたくなった • 「高速で安価な RISC プロセッサの普及により,数千個のプロセッサを持つ超並列計算機が,次世代のスーパコンピュータとして注目を集めいている.」 • 2000年代 • PC クラスタに押されて消えた • マルチコアとして復活?
SIMD 命令 • SIMD 命令 • (スーパ)スカラ・プロセッサの(拡張)命令セット • 1本のレジスタに2~8個のデータをパック • 1命令で同種の演算を2~8個程度 同時に実行
SIMD 命令の変遷 (Sun) • VIS (Visual Instruction Set) for SPARC • 既存の 64b 浮動小数点レジスタ • 既存の 64b 浮動小数点演算器を 4 x 16b にスライスして使用 • 追加 HW コストはごくわずか • CG における座標変換,同次座標の行列―ベクトル積を CPU で
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 • 水平型命令
SIMD 命令の変遷 (Others) • 3DNow! for Athlon • MMX,SSE と互換 • AltiVec for PowerPC • Photoshop • Digital Media Extension for MIPS
SIMD 命令の変遷 (GPU) • GPU (Graphics Processing Unit) • Programmable Shader (DirectX 8 以降) • SIMD 命令 • 同次座標 (x, y, z, w) • 色と透明度 (r, g, b, a)
SIMD 命令の変遷 (Cell) • Cell = • PPE (Power Processing Element = PowerPC) + • SPE (Synergistic Processing Element) x 7 • SPE • 128 x 128b SIMD レジスタ • SIMD 命令を1サイクルに2命令
データ並列性 • データ並列性 (data parallelism): • 異なるデータに対して(ほぼ)同型の処理を行うときに生じる • 制御並列性? (control parallelism ?): • データ並列性がない(少ない) • ベクトル,SIMD によるベクトル処理: • データ並列性を利用
RISC スーパスカラとの違い • RISC スーパスカラ • 複数のパイプライン化された FPU を持つ • FPU を追加すれば,能力的にはほぼ同等 • だが… • RISC スーパスカラ • データ流量 = 命令流量 • ベクトル,SIMD • データ流量 > 命令流量
ベクトル型並列計算機 ベクトル ロード ユニット 主記憶 ベクトル レジスタ ベクトル 加算器 ベクトル 乗算器 ベクトル 除算器 ベクトル ○○器 ベクトル ストア ユニット キャッシュ スカラ レジスタ スカラ ユニット
PC PC PC SIMD 型並列計算機 MIMD 型並列計算機 Control Unit PE PE PE Memory Memory Memory Interconnection Network PE : Processing Element
SIMD 命令 • SIMD 命令 • (スーパ)スカラ・プロセッサの(拡張)命令セット • 1本のレジスタに2~8個のデータをパック • 1命令で同種の演算を2~8個程度 同時に実行
データ並列性 • データ並列性 (data parallelism): • 異なるデータに対して(ほぼ)同型の処理を行うときに生じる • ベクトル,SIMD によるベクトル処理: • データ並列性を利用
RISC スーパスカラとの違い • RISC スーパスカラ • 複数のパイプライン化された FPU を持つ • FPU を追加すれば,能力的にはほぼ同等 • だが… • RISC スーパスカラ • データ流量 = 命令流量 • ベクトル,SIMD • データ流量 > 命令流量
レポート課題 • 課題:1は任意,2は必須 • 遅延分岐では,compare & branch に完全に対処することは困難であると思われる.実際のパイプライン・マシン (ex. MIPS R2000/3000) ではどうなっているのか調べよ. • コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ. • 提出方法: • e-mail • To: goshima@mtl.t.u-tokyo.ac.jp • Subject: 「ACA」,「レポート」を含めること • 様式,フォーマット,分量 • 自由 • 期限 • 8/16(火)