430 likes | 554 Views
LSI とシステムのワークショップ. 12. ベクトル処理アーキテクチャ. 五島 正裕. 発表の内容. 背景 アクセラレータ アクセラレータ vs 汎用マルチコア 汎用マルチコアの高効率化. 背景 0 : 製品開発. 要求 される処理の高度化 / 複雑化 開発期間の 短縮 速度 は, 1st . Priority では なくなりつつある. 背景 1 : ハードウェア (LSI) 開発. 要求される処理の高度化 / 複雑化 「設計できない」 ソフトウェアでも開発は難しくなりつつある 開発期間の短縮 「発売に間に合わない」
E N D
LSI とシステムのワークショップ 12. ベクトル処理アーキテクチャ 五島 正裕
Advanced Computer Architecture 発表の内容 背景 アクセラレータ アクセラレータ vs汎用マルチコア 汎用マルチコアの高効率化
Advanced Computer Architecture 背景 0: 製品開発 要求される処理の高度化 /複雑化 開発期間の短縮 速度は,1st. Priority ではなくなりつつある
Advanced Computer Architecture 背景 1 : ハードウェア (LSI) 開発 • 要求される処理の高度化 / 複雑化 • 「設計できない」 • ソフトウェアでも開発は難しくなりつつある • 開発期間の短縮 • 「発売に間に合わない」 • 製品の開発を始めてから LSI の開発を始めるのではダメ • LSI 製造コストの高騰 • 「開発費を回収できない」 • 個別用途向けに開発したのではダメ • 以下のような LSI 開発は困難 • 個別用途向け • 多品種 / 少量
Advanced Computer Architecture 背景 2: ソフトウェア開発 • 開発効率,メンテナンス効率 • 要求される処理の高度化 / 複雑化 • 開発期間の長期化 → 開発コストの高騰 • ハードウェアの速度向上により,要求は飽和しつつある? • (少なくとも,ユーザは必要性を実感していない) • Java,Ruby などの利用 • 速度はともかく,開発効率が高い
Advanced Computer Architecture 要求される処理の高度化 / 複雑化 • 例えば MPEG • MPEG-2(1995年) • ハードウェア化をかなり考慮して策定 • MPEG-4 (H.264) (2003年) • ハードウェア化は(MPEG-2 ほどには)考慮されていない • ソフトウェアでも,正しく書くのは難しい • 例えば 暗号 • AES • ハードウェア化をかなり考慮して策定 • 次は?
Advanced Computer Architecture ハードウェア指向 vs. ソフトウェア指向 ↑ハードウェア指向 • 専用ハードウェア • アクセラレータ • GPU • PLAYSTATION3 Cell • 汎用マルチコア(小型コア) • Xbox360 PX • Larrabee • SHMC • 汎用マルチコア(大型コア) • x86MC (Intel Core, AMDOpeteron, etc.) • POWER • SPARC64 ↓ソフトウェア指向
Advanced Computer Architecture アクセラレータの普及 • 特定応用に特化したプロセッサの普及 • ゲーム・コンソール用プロセッサ • PLAYSTATION 3 Cell • GPU • 画像認識/処理の専用プロセッサ • ビデオ/オーディオ・コーデック • 共通した特徴: • データ並列性の高い処理をターゲットとしたプロセッサ
Advanced Computer Architecture データ並列性の高い処理 • データ並列性の高い処理 • データ処理量が多い • 汎用プロセッサで対処しにくい(?) • 比較的単純な処理の繰り返し(?) • 汎用プロセッサほどの複雑な機構は不要(?) ⇒ 汎用プロセッサ + アクセラレータ
Advanced Computer Architecture アクセラレータの特徴 • アクセラレータの特徴(⇔ 汎用マルチコアと比較): • SIMD(⇔ MIMD) • ローカル・メモリ(⇔ コヒーレント・キャッシュ)
Advanced Computer Architecture SIMD • SIMD:SingleInstruction stream / Multiple Data stream • SIMD プロセッサ • SIMD 命令セット • 利点:ピーク性能 • 問題点:プログラマビリティ
Advanced Computer Architecture SIMD プロセッサSingle Instruction stream/Multiple Data stream • 単一の制御部からの指令により,複数の演算器が同時に同じ処理を行う Control Unit Instruction Broadcast PE– 0 PE– 1 PE– 2 PE– n-1 Memory
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個程度同時に行う
Advanced Computer Architecture SIMD の利点と問題点 • 利点: 高い最大性能 • 演算器間で制御部を共有可能 • 「1命令で n 個の処理」 • 演算器により多くの面積を割り当てることが可能 • 問題点: プログラマビリティ • 不規則なループの処理
Advanced Computer Architecture 規則的なループ と 不規則なループ • SIMD 化: • 効率良く SIMD 命令に変換できること • 規則的 (regular) なループ: • SIMD 化可能 • 配列の連続要素に対し,同一の処理を行う場合など • 積和演算 • 行列積 • 不規則 (irregular) なループ: • SIMD 化困難,SIMD 化すると性能低下が大きい
Advanced Computer Architecture 不規則なループ • if-then-else 構造を持つもの • 実行フラグなどにより対処は可能だが,性能は悪化 • then パート と else パートを逐次実行 • 不規則なメモリアクセスを含むもの • 要素毎にポインタを含むものなど • リスト・ベクトル機能 • SIMD 命令セットの範疇では,サポートできない • ループからの脱出 • 自動 SIMD 化コンパイラ (inc. Intel コンパイラ)は SIMD 化しない • 袖 (wing) の処理
Advanced Computer Architecture 不規則なループの具体例 (1/2) • サーチ: • 次にたどるべきノードが適応的に決まる • ソート: • 不規則なメモリ・アクセスを含む • クイック・ソートやマージ・ソート等 • 画像フィルタ: • 袖 (wing) の処理
Advanced Computer Architecture 袖 (wing) の処理 重み行列
Advanced Computer Architecture 不規則なループの具体例 (2/2) • MPEG-4 H.264 AVC: • 動き検出 (motion detection) • 多重ループからの脱出 • 適応的な探索 • 符号化,復号化 • 多数の分岐 • 適応的なモード切替 • デブロッキング・フィルタ • 適応的なアルゴリズム • ウチの研究室の学生が,某有名エンコーダのベンダで SSE 化を担当 • 「GPGPU で,CPU に勝つのは困難」
Advanced Computer Architecture プログラマビリティ • プログラマビリティの低さを証明するもの: • 「アクセラレータでやってみました」系の論文 • 最近は通らなくなってきた • プログラミング・コンテスト • Cell Challenge,GPU Challenge • プログラミング自体が難しい • しかも,本質的でない困難が多い • プログラミングの流れ: • 汎用プロセッサでのプログラミング • 最適なアルゴリズムの選択 → プログラミング • アクセラレータでのプログラミング • 効率よく実行可能なアルゴリズムの選択 → プログラミング → 書けない → アルゴリズム選択からやり直し
Advanced Computer Architecture アーキテクチャ • 代表的なアーキテクチャ • 専用ハードウェア • SIMD プロセッサ • 汎用マルチコア w/ SIMD 命令セット • 汎用マルチコア w/o SIMD 命令セット • (ウルトラワイドなスーパスカラ・プロセッサ) • プログラマビリティと最大性能 • チップの面積は,演算器 とその 制御部 に分けられる • 最大性能は演算器にどれだけ面積を割くかによる • プログラマビリティは制御関連回路のコストにほぼ比例
Advanced Computer Architecture 演算器と制御部 • SIMD プロセッサ • 単一の制御部と複数の演算器から成る • チップ面積の殆どは,演算器に割り当てられる • Out-of-Order スーパスカラ • 並列実行可能な部分をハードウェアで動的に検出 • チップ面積の殆どは,制御部に割り当てられる
Advanced Computer Architecture プログラマビリティと最大性能のトレードオフ プログラマビリティ 目標 スーパスカラ マルチコア ピーク性能= 演算機の割合 SIMD 演算器 制御回路 チップ面積一定
Advanced Computer Architecture コアの規模と数 • チップ面積一定として,どちらが有利か? • 小型のコア × 多数 • 大型のコア × 少数
Advanced Computer Architecture コアの規模と数 • 「マルチコアでは,チップ面積が余っているから,無駄に使ってよい」 • ⇒ ウソ • シングル・コアの時代: • チップ面積の増加 ⇒ チップ・コストの増加 • マルチコアの時代: • チップ面積の増加 ⇒ コア数の減少 ⇒ 性能低下
Advanced Computer Architecture コアの規模と数 • マルチコアこそ,(性能 / 面積) を最大化することが肝心 • (性能 / 面積) が同程度なら,コア数は少ないほうがよい • マルチプロセッサの経験から • n コアで n 倍スピードアップは無理 • 「コアの性能が低いと,コア数を増やして勝つのは難しい」
Advanced Computer Architecture スーパスカラ・プロセッサの回路面積 • w : 幅 • フェッチ幅 • 発行幅 • キャッシュ:O(1) ? • 演算器:O(w) • 制御部:O(w3) • 各種テーブルを構成する RAM: • ポート数:O(w) • エントリ数:O(w) • 面積 ∝ (ポート数)2× (エントリ数)
Advanced Computer Architecture スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ w 8 1 2 4
Advanced Computer Architecture コアの規模 • チップ面積一定として,どちらが有利か? • 小型のコア ×多数 • 大型のコア × 少数
Advanced Computer Architecture O(w3) から O(w)にするアーキテクチャ技術
Advanced Computer Architecture スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ w 8 1 2 4
Advanced Computer Architecture コアの規模 • チップ面積一定として,どちらが有利か? • 小型のコア × 多数 • 大型のコア × 少数
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
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
Advanced Computer Architecture まとめ プログラマビリティが一番 大事 アクセラレータは,プログラマビリティが問題 汎用マルチコアが有望 各コアの面積効率の向上のアーキテクチャ研究が肝心