1 / 42

10. ベクトル処理

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 命令で 構成:

joy-short
Download Presentation

10. ベクトル処理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 10. ベクトル処理 五島 正裕

  2. 内容 • ベクトル型並列計算機 • 並列計算機の分類 • SIMD 型並列計算機 • MIMD 型並列計算機 • SIMD 命令

  3. ベクトル型並列計算機

  4. ベクトル処理 • ベクトル: • 1次元配列データ • ベクトル演算: • ベクトル和 z = x + y • 内積   z = x∙y • … for (i = 0; i < N; ++i) z[i] = x[i] op y[i];

  5. ベクトル演算器 • ベクトル演算器 • ベクトル単位の演算 • n 要素のベクトル○○算を1命令で • 構成: • パイプライン化された演算器 + • 制御レジスタ • 制御レジスタ: • カウンタ • ベクトル長 • 開始アドレス,ストライド(ロード/ストアの場合)

  6. ベクトル型並列計算機 64本 x 256語 x 64b ベクトル ロード ユニット 主記憶 ベクトル レジスタ ベクトル 加算器 ベクトル 乗算器 x8 セット ベクトル 除算器 ベクトル ○○器 ベクトル ストア ユニット キャッシュ スカラ レジスタ スカラ ユニット

  7. 半性能長 • スタートアップ・タイム:S (処理時間) • S+(投入間隔 = 1)× (ベクトル長) (スループット) • (ベクトル長) ÷ (処理時間) • (S ÷(ベクトル長)+ 1)−1 • 半性能長: • スループットが 1/2になるベクトル長 スループット 1 1/2 O ベクトル長 半性能長

  8. ベクトル処理とスパコン • 昔,マルチメディアとか なかったころ, • ベクトル処理といえば, • 大規模数値処理 • ベクトル・マシンといえば, • スパコンの代名詞 • PVP (Parallel Vector Processor)

  9. ベクトル処理とスパコン • 日本のベクトル・スパコン • Cray を打ち負かした • 貿易摩擦 • 「公的機関でちょっと速い計算機を買うときは国際競争入札に」 • 地球シミュレータ (NEC) • Sputnik にちなんで“Computnik”と呼ばれた • 最後のベクトル・スパコン? • PC クラスタに押されて消える?

  10. 地球シミュレータ http://www.es.jamstec.go.jp/

  11. 並列計算機の分類

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

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

  14. SIMD 型並列計算機

  15. SIMD 型並列計算機 Control Unit PC PE PE PE Memory Memory Memory Interconnection Network PE : Processing Element

  16. SIMD 型並列計算機 • Single Instruction/Multiple Data Stream • すべての PE で同じ命令を実行 • if-then-else • PE ごとに,実行フラグ • 条件 ⇒ フラグ・セット • フラグがたっている/いない PE だけ実行

  17. SIMD 型並列計算機の利点/欠点 (当時) • 利点: • コントロール・ユニットが1つですむので,安い • すべての PE で同じことをするので,プログラミングが容易 • 欠点: • スケーラブル (scalable) でない • 多数の PE に命令を放送するのは困難 • if-then-else の実行効率が低い

  18. SIMD 型並列計算機の利点/欠点 (近代) SIMD 型並列計算機の利点/欠点 (当時) • 利点: • コントロール・ユニットが1つですむので,安い • ウソ.汎用のプロセッサを買ってくるほうが安い • すべての PE で同じことをするので,プログラミングが容易 • ウソ.すべての PE で同じことしかできない • 欠点: • スケーラブル (scalable) でない • 多数の PE に命令を放送するのは困難 • if-then-else の実行効率が低い • MIMD に取って代わられた

  19. PC PC PC SIMD 型並列計算機 MIMD 型並列計算機 Control Unit PE PE PE Memory Memory Memory Interconnection Network PE : Processing Element

  20. SIMD 型並列計算機の最期 • Thinking Machine 社:最後の SIMD ベンダ • Connection Machine シリーズ • CM-4 (SIMD) • CM-5 (MIMD) • SPMD (Single Program/Multiple Data Stream, spim-dee) • ユーザは MIMD が嫌いだった!

  21. MIMD 型並列計算機

  22. MIMD • MIMD (Multiple Instruction/Multiple Data Stream) • 要はマルチプロセッサ • (非学術的)分類: • SMP (Symmetric Multi-Processor) • メモリ・バスを共有 • 2~128 プロセッサ • MPP (Massively Parallel Processor) • 一般のネットワーク • ~数K プロセッサ

  23. MPP の最期 • 90年代: • RISC スーパスカラの普及期に,たくさん並べてみたくなった • 「高速で安価な RISC プロセッサの普及により,数千個のプロセッサを持つ超並列計算機が,次世代のスーパコンピュータとして注目を集めいている.」 • 2000年代 • PC クラスタに押されて消えた • マルチコアとして復活?

  24. SIMD 命令

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

  26. SIMD 命令の変遷 (Sun) • VIS (Visual Instruction Set) for SPARC • 既存の 64b 浮動小数点レジスタ • 既存の 64b 浮動小数点演算器を 4 x 16b にスライスして使用 • 追加 HW コストはごくわずか • CG における座標変換,同次座標の行列―ベクトル積を CPU で

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

  28. SIMD 命令の変遷 (Others) • 3DNow! for Athlon • MMX,SSE と互換 • AltiVec for PowerPC • Photoshop • Digital Media Extension for MIPS

  29. SIMD 命令の変遷 (GPU) • GPU (Graphics Processing Unit) • Programmable Shader (DirectX 8 以降) • SIMD 命令 • 同次座標  (x, y, z, w) • 色と透明度 (r, g, b, a)

  30. SIMD 命令の変遷 (Cell) • Cell = • PPE (Power Processing Element = PowerPC) + • SPE (Synergistic Processing Element) x 7 • SPE • 128 x 128b SIMD レジスタ • SIMD 命令を1サイクルに2命令

  31. データ並列性

  32. データ並列性 • データ並列性 (data parallelism): • 異なるデータに対して(ほぼ)同型の処理を行うときに生じる • 制御並列性? (control parallelism ?): • データ並列性がない(少ない) • ベクトル,SIMD によるベクトル処理: • データ並列性を利用

  33. RISC スーパスカラとの違い • RISC スーパスカラ • 複数のパイプライン化された FPU を持つ • FPU を追加すれば,能力的にはほぼ同等 • だが… • RISC スーパスカラ • データ流量 = 命令流量 • ベクトル,SIMD • データ流量 > 命令流量

  34. 今日のまとめ

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

  36. ベクトル型並列計算機 ベクトル ロード ユニット 主記憶 ベクトル レジスタ ベクトル 加算器 ベクトル 乗算器 ベクトル 除算器 ベクトル ○○器 ベクトル ストア ユニット キャッシュ スカラ レジスタ スカラ ユニット

  37. PC PC PC SIMD 型並列計算機 MIMD 型並列計算機 Control Unit PE PE PE Memory Memory Memory Interconnection Network PE : Processing Element

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

  39. データ並列性 • データ並列性 (data parallelism): • 異なるデータに対して(ほぼ)同型の処理を行うときに生じる • ベクトル,SIMD によるベクトル処理: • データ並列性を利用

  40. RISC スーパスカラとの違い • RISC スーパスカラ • 複数のパイプライン化された FPU を持つ • FPU を追加すれば,能力的にはほぼ同等 • だが… • RISC スーパスカラ • データ流量 = 命令流量 • ベクトル,SIMD • データ流量 > 命令流量

  41. 今後の予定

  42. レポート課題 • 課題:1は任意,2は必須 • 遅延分岐では,compare & branch に完全に対処することは困難であると思われる.実際のパイプライン・マシン (ex. MIPS R2000/3000) ではどうなっているのか調べよ. • コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ. • 提出方法: • e-mail • To: goshima@mtl.t.u-tokyo.ac.jp • Subject: 「ACA」,「レポート」を含めること • 様式,フォーマット,分量 • 自由 • 期限 • 8/16(火)

More Related