1 / 43

12. ベクトル処理アーキテクチャ

LSI とシステムのワークショップ. 12. ベクトル処理アーキテクチャ. 五島 正裕. 発表の内容. 背景 アクセラレータ アクセラレータ vs 汎用マルチコア 汎用マルチコアの高効率化. 背景 0 : 製品開発. 要求 される処理の高度化 / 複雑化 開発期間の 短縮 速度 は, 1st . Priority では なくなりつつある. 背景 1 : ハードウェア (LSI) 開発. 要求される処理の高度化 / 複雑化 「設計できない」 ソフトウェアでも開発は難しくなりつつある 開発期間の短縮 「発売に間に合わない」

shlomo
Download Presentation

12. ベクトル処理アーキテクチャ

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. LSI とシステムのワークショップ 12. ベクトル処理アーキテクチャ 五島 正裕

  2. Advanced Computer Architecture 発表の内容 背景 アクセラレータ アクセラレータ vs汎用マルチコア 汎用マルチコアの高効率化

  3. Advanced Computer Architecture 背景 0: 製品開発 要求される処理の高度化 /複雑化 開発期間の短縮 速度は,1st. Priority ではなくなりつつある

  4. Advanced Computer Architecture 背景 1 : ハードウェア (LSI) 開発 • 要求される処理の高度化 / 複雑化 • 「設計できない」 • ソフトウェアでも開発は難しくなりつつある • 開発期間の短縮 • 「発売に間に合わない」 • 製品の開発を始めてから LSI の開発を始めるのではダメ • LSI 製造コストの高騰 • 「開発費を回収できない」 • 個別用途向けに開発したのではダメ • 以下のような LSI 開発は困難 • 個別用途向け • 多品種 / 少量

  5. Advanced Computer Architecture 背景 2: ソフトウェア開発 • 開発効率,メンテナンス効率 • 要求される処理の高度化 / 複雑化 • 開発期間の長期化 → 開発コストの高騰 • ハードウェアの速度向上により,要求は飽和しつつある? • (少なくとも,ユーザは必要性を実感していない) • Java,Ruby などの利用 • 速度はともかく,開発効率が高い

  6. Advanced Computer Architecture 要求される処理の高度化 / 複雑化 • 例えば MPEG • MPEG-2(1995年) • ハードウェア化をかなり考慮して策定 • MPEG-4 (H.264) (2003年) • ハードウェア化は(MPEG-2 ほどには)考慮されていない • ソフトウェアでも,正しく書くのは難しい • 例えば 暗号 • AES • ハードウェア化をかなり考慮して策定 • 次は?

  7. Advanced Computer Architecture ハードウェア指向 vs. ソフトウェア指向 ↑ハードウェア指向 • 専用ハードウェア • アクセラレータ • GPU • PLAYSTATION3 Cell • 汎用マルチコア(小型コア) • Xbox360 PX • Larrabee • SHMC • 汎用マルチコア(大型コア) • x86MC (Intel Core, AMDOpeteron, etc.) • POWER • SPARC64 ↓ソフトウェア指向

  8. アクセラレータ

  9. Advanced Computer Architecture アクセラレータの普及 • 特定応用に特化したプロセッサの普及 • ゲーム・コンソール用プロセッサ • PLAYSTATION 3 Cell • GPU • 画像認識/処理の専用プロセッサ • ビデオ/オーディオ・コーデック • 共通した特徴: • データ並列性の高い処理をターゲットとしたプロセッサ

  10. Advanced Computer Architecture データ並列性の高い処理 • データ並列性の高い処理 • データ処理量が多い • 汎用プロセッサで対処しにくい(?) • 比較的単純な処理の繰り返し(?) • 汎用プロセッサほどの複雑な機構は不要(?) ⇒ 汎用プロセッサ + アクセラレータ

  11. Advanced Computer Architecture アクセラレータの特徴 • アクセラレータの特徴(⇔ 汎用マルチコアと比較): • SIMD(⇔ MIMD) • ローカル・メモリ(⇔ コヒーレント・キャッシュ)

  12. SIMD

  13. Advanced Computer Architecture SIMD • SIMD:SingleInstruction stream / Multiple Data stream • SIMD プロセッサ • SIMD 命令セット • 利点:ピーク性能 • 問題点:プログラマビリティ

  14. Advanced Computer Architecture SIMD プロセッサSingle Instruction stream/Multiple Data stream • 単一の制御部からの指令により,複数の演算器が同時に同じ処理を行う Control Unit Instruction Broadcast PE– 0 PE– 1 PE– 2 PE– n-1 Memory

  15. Advanced Computer Architecture SIMD 命令セット • (スーパ)スカラ・プロセッサの拡張命令セット • VIS(Visual Instruction Set) • MMX/SSE/3DNow!, AltiVec, etc. • 元々は,64b の演算器を,16b x 4 として使う手法 (VIS,MMX) • 1つのレジスタ内に,2~8個程度のデータをパック • 1命令で,同種の演算を2~8個程度同時に行う

  16. Advanced Computer Architecture SIMD の利点と問題点 • 利点: 高い最大性能 • 演算器間で制御部を共有可能 • 「1命令で n 個の処理」 • 演算器により多くの面積を割り当てることが可能 • 問題点: プログラマビリティ • 不規則なループの処理

  17. Advanced Computer Architecture 規則的なループ と 不規則なループ • SIMD 化: • 効率良く SIMD 命令に変換できること • 規則的 (regular) なループ: • SIMD 化可能 • 配列の連続要素に対し,同一の処理を行う場合など • 積和演算 • 行列積 • 不規則 (irregular) なループ: • SIMD 化困難,SIMD 化すると性能低下が大きい

  18. Advanced Computer Architecture 不規則なループ • if-then-else 構造を持つもの • 実行フラグなどにより対処は可能だが,性能は悪化 • then パート と else パートを逐次実行 • 不規則なメモリアクセスを含むもの • 要素毎にポインタを含むものなど • リスト・ベクトル機能 • SIMD 命令セットの範疇では,サポートできない • ループからの脱出 • 自動 SIMD 化コンパイラ (inc. Intel コンパイラ)は SIMD 化しない • 袖 (wing) の処理

  19. Advanced Computer Architecture 不規則なループの具体例 (1/2) • サーチ: • 次にたどるべきノードが適応的に決まる • ソート: • 不規則なメモリ・アクセスを含む • クイック・ソートやマージ・ソート等 • 画像フィルタ: • 袖 (wing) の処理

  20. Advanced Computer Architecture 袖 (wing) の処理 重み行列

  21. Advanced Computer Architecture 不規則なループの具体例 (2/2) • MPEG-4 H.264 AVC: • 動き検出 (motion detection) • 多重ループからの脱出 • 適応的な探索 • 符号化,復号化 • 多数の分岐 • 適応的なモード切替 • デブロッキング・フィルタ • 適応的なアルゴリズム • ウチの研究室の学生が,某有名エンコーダのベンダで SSE 化を担当 • 「GPGPU で,CPU に勝つのは困難」

  22. Advanced Computer Architecture プログラマビリティ • プログラマビリティの低さを証明するもの: • 「アクセラレータでやってみました」系の論文 • 最近は通らなくなってきた • プログラミング・コンテスト • Cell Challenge,GPU Challenge • プログラミング自体が難しい • しかも,本質的でない困難が多い • プログラミングの流れ: • 汎用プロセッサでのプログラミング • 最適なアルゴリズムの選択 → プログラミング • アクセラレータでのプログラミング • 効率よく実行可能なアルゴリズムの選択 → プログラミング → 書けない → アルゴリズム選択からやり直し

  23. アーキテクチャ比較

  24. Advanced Computer Architecture アーキテクチャ • 代表的なアーキテクチャ • 専用ハードウェア • SIMD プロセッサ • 汎用マルチコア w/ SIMD 命令セット • 汎用マルチコア w/o SIMD 命令セット • (ウルトラワイドなスーパスカラ・プロセッサ) • プログラマビリティと最大性能 • チップの面積は,演算器 とその 制御部 に分けられる • 最大性能は演算器にどれだけ面積を割くかによる • プログラマビリティは制御関連回路のコストにほぼ比例

  25. Advanced Computer Architecture 演算器と制御部 • SIMD プロセッサ • 単一の制御部と複数の演算器から成る • チップ面積の殆どは,演算器に割り当てられる • Out-of-Order スーパスカラ • 並列実行可能な部分をハードウェアで動的に検出 • チップ面積の殆どは,制御部に割り当てられる

  26. Advanced Computer Architecture プログラマビリティと最大性能のトレードオフ プログラマビリティ 目標 スーパスカラ マルチコア ピーク性能= 演算機の割合 SIMD 演算器 制御回路 チップ面積一定

  27. 汎用マルチコアの面積効率の向上

  28. Advanced Computer Architecture コアの規模と数 • チップ面積一定として,どちらが有利か? • 小型のコア × 多数 • 大型のコア × 少数

  29. Advanced Computer Architecture コアの規模と数 • 「マルチコアでは,チップ面積が余っているから,無駄に使ってよい」 • ⇒ ウソ • シングル・コアの時代: • チップ面積の増加 ⇒ チップ・コストの増加 • マルチコアの時代: • チップ面積の増加 ⇒ コア数の減少 ⇒ 性能低下

  30. Advanced Computer Architecture コアの規模と数 • マルチコアこそ,(性能 / 面積) を最大化することが肝心 • (性能 / 面積) が同程度なら,コア数は少ないほうがよい • マルチプロセッサの経験から • n コアで n 倍スピードアップは無理 • 「コアの性能が低いと,コア数を増やして勝つのは難しい」

  31. Advanced Computer Architecture スーパスカラ・プロセッサの回路面積 • w : 幅 • フェッチ幅 • 発行幅 • キャッシュ:O(1) ? • 演算器:O(w) • 制御部:O(w3) • 各種テーブルを構成する RAM: • ポート数:O(w) • エントリ数:O(w) • 面積 ∝ (ポート数)2× (エントリ数)

  32. Advanced Computer Architecture スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ w 8 1 2 4

  33. Advanced Computer Architecture コアの規模 • チップ面積一定として,どちらが有利か? • 小型のコア ×多数 • 大型のコア × 少数

  34. Advanced Computer Architecture O(w3) から O(w)にするアーキテクチャ技術

  35. Advanced Computer Architecture スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ w 8 1 2 4

  36. Advanced Computer Architecture コアの規模 • チップ面積一定として,どちらが有利か? • 小型のコア × 多数 • 大型のコア × 少数

  37. Advanced Computer Architecture 評価 • Alpha 21464 のフロアプラン • R.Preston, et al.: Design of an 8-widesuperscalar RISC microprocessor with simultaneous multithreading, Proc. ISSCC(Int'l Solid-State Circuits Conf.), pp. 334―472 (2002). • SPEC CPU 2006 の平均 IPC

  38. RegFile L2 Cache Data Array (3MB) InstructionWindow : Functional Unit RMT InsnBuf LSQ Insn Unit : Instruction Fetch Unit 20mm L1 D$ L1 I$ : Inter Processor Router, Memory Controller, IO … L2 Cache Tag Array L2 Cache Control FP FU (x4) INT FU (x8) 20mm : OoO Control : Cache

  39. まとめ

  40. Advanced Computer Architecture まとめ プログラマビリティが一番 大事 アクセラレータは,プログラマビリティが問題 汎用マルチコアが有望 各コアの面積効率の向上のアーキテクチャ研究が肝心

More Related