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(火)
© Copyright 2024 ExpyDoc