1 / 53

アクセラレータ の 将来

アクセラレータ の 将来. 東京大学 五島 正裕. はじめに (1/2). 予言: 「アクセラレータ は先細り」 「 ディジタル LSI は,メモリと, ARM マルチコア と FPGA だけになる」 危機感 : もし予言 が成就したら,日本の LSI ベンダはどうなるのか ? LSI ベンダのない工業国はアリなのか? 自分はともかく,ウチの卒業生はどうなるのか?. はじめに (2/2). 今日の内容: 危機感 の 共有 予言の証明 しかし ,明らかに説得力がない 自分を 含め,そう思っている人には かなり自明

bainbridge
Download Presentation

アクセラレータ の 将来

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. R2P/IST 技術講演会 アクセラレータ の 将来 東京大学 五島 正裕

  2. R2P/IST 技術講演会 はじめに (1/2) • 予言: • 「アクセラレータ は先細り」 • 「ディジタル LSI は,メモリと,ARMマルチコア と FPGA だけになる」 • 危機感: • もし予言が成就したら,日本の LSI ベンダはどうなるのか? • LSI ベンダのない工業国はアリなのか? • 自分はともかく,ウチの卒業生はどうなるのか?

  3. R2P/IST 技術講演会 はじめに (2/2) • 今日の内容: • 危機感の共有 • 予言の証明 • しかし,明らかに説得力がない • 自分を含め,そう思っている人には かなり自明 • 感覚の問題で,説明できない • 自分の仕事は予言の成就 • アクセラレータがどうなろうが,研究的にはどうでもよい

  4. R2P/IST 技術講演会 発表の内容 背景 アクセラレータ と プログラマビリティ 汎用マルチコアの高効率化

  5. R2P/IST 技術講演会 アクセラレータ

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

  7. R2P/IST 技術講演会 Divergence • 専用ハードウェア • アクセラレータ • SIMD プロセッサ • 組み込み用ベクトル・プロセッサ • 演算器アレイ型プロセッサ • (GP)GPU • PLAYSTATION3CellBE • 汎用マルチコア(小型コア) • タイル・プロセッサ • Larrabee • Xbox360PX • 汎用マルチコア(大型コア) • x86MC (Intel Core, AMDOpteron) • SPARC64,POWER • (ウルトラワイド・スーパスカラ・プロセッサ)

  8. R2P/IST 技術講演会 アクセラレータの特徴 • アクセラレータの特徴(⇔ 汎用マルチコアと比較): • SIMD(⇔ MIMD) • ローカル・メモリ(⇔ コヒーレント・キャッシュ)

  9. R2P/IST 技術講演会 SIMD • SIMD:SingleInstruction stream / Multiple Data stream • SIMD プロセッサ • SIMD 命令セット • 利点:ピーク性能 • 問題点:プログラマビリティ

  10. R2P/IST 技術講演会 SIMD プロセッサ • 単一の制御部からの指令により,複数の演算器が同時に同じ処理を行う Control Unit Instruction Broadcast PE– 0 PE– 1 PE– 2 PE– n-1 Memory

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

  12. R2P/IST 技術講演会 SIMD の利点と問題点 • 利点: 性能‐面積効率,最大性能 • 演算器間で制御部を共有可能 • 「1命令で n 個の処理」 • 演算器により多くの面積を割り当てることが可能 • 問題点: プログラマビリティ

  13. R2P/IST 技術講演会 背 景 : 製 品 開 発

  14. R2P/IST 技術講演会 背景 0 : 製品開発 • 現在の情報機器 • 要求される処理の高度化 / 複雑化 • 過当競争による 開発期間の短縮 • 速度は,1st. Priority ではなくなりつつある

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

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

  17. R2P/IST 技術講演会 要求される処理の高度化 / 複雑化 • 例えば MPEG • MPEG-2(1995年) • HW 化をかなり考慮して策定 • MPEG-4 AVC(H.264) (2003年) • HW 化は(MPEG-2 ほどには)考慮されていない • SW でも,正しく書くのは難しい

  18. R2P/IST 技術講演会 HW/SW インタフェース • 垂直統合: • 性能のために HW/SWインタフェースが決まってしまう • その結果,プログラマが泣く • 水平分業: • プログラマビリティを第一に HW/SW インタフェースを決める • マイクロアーキテクト / プログラマは,個別に努力する • 昔からこうだが,今後はもっとこう

  19. R2P/IST 技術講演会 SIMD と プログラマビリティ

  20. R2P/IST 技術講演会 AoS/SoA • AoS/SoA • AoS(Array-of-Struct) :struct AoS{ float r, g, b, a }[N]; • SoA (Struct-of-Array) :struct SoA { float r[N], g[N], b[N], a[N] }; • 歴史的には,AoS から SoA へ • AoS • ex) VIS,MMX • 64bの演算器を 16b x 4 として使う • {r, g, b, a}, {x, y, z, w} の 4つ組 • SoA • ex) SSE • 汎用ベクトル処理

  21. R2P/IST 技術講演会 問題は SoA • プログラマビリティに与える制約 • AoS : 単に,64b(,128b,…) の演算だと思えばよい • SoA : 4個(,8個,…)まとめて演算しなければならない • AoS/SoA は,使い方の問題ではあるが,アーキテクチャに影響を与える • AoS を指向するなら,4つ組で十分 • SoA によって最大性能の向上を図るなら,64bx8 なども考えられる • 大規模な SIMD プロセッサは SoA(もしくは,AoS の SoA) • ベクトル・プロセッサは?

  22. R2P/IST 技術講演会 SoA のプログラマビリティに対する制約 • 規則的 (regular) なループ: • SIMD 化可能 • 配列の連続要素に対し,同一の処理を行う場合など • 積和演算 • 行列積 • 不規則 (irregular) なループ: • SIMD 化困難 • SIMD 化すると,性能向上が見られない,性能が低下する

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

  24. R2P/IST 技術講演会 不規則なループの具体例 (1/2) • サーチ: • 次にたどるべきノードが動的に決まる • ソート: • ストアの先が,比較結果によって,要素ごとに異なる

  25. R2P/IST 技術講演会 不規則なループの具体例 (2/2) • MPEG-4 AVC(H.264): • 動き検出 (motion detection) • 多重ループからの脱出 • 適応的な探索 • 算術符号の符号化,復号化 • 多数の分岐 • 適応的なモード切替 • デブロッキング・フィルタ • 適応的なアルゴリズム

  26. R2P/IST 技術講演会 プログラマビリティの低さを証明するもの • 「アクセラレータでやってみました」系の論文 • 最近は通らなくなってきた • プログラミング・コンテストの存在 • Cell Challenge,GPU Challenge(2010 まで) • Xbox 360 に対する PLAYSTATION 3 の出だしのつまづき(推測) • ウチの研究室の学生が,某有名エンコーダの SSE/GPGPU 化を担当 • 「GPGPU で,CPUw/ SSE に勝つのは困難」 • Top 500 • (次のスライド)

  27. R2P/IST 技術講演会 Top 500 (June 2011)

  28. R2P/IST 技術講演会 Top 500 から言えること (1/2) • 京は Rmax/Rpeak が高い(93.0%) • コア数が多く,通信オーバヘッド上は不利.だから, • コアの効率が 100% 近くないと達成できない • SIMD は 2-way • GPU スパコンは,Rmax /Rpeak が低い(50% 程度) • コア数が少なく,通信オーバヘッド上は有利.だから, • コアの効率自体,50% を切っているであろう • SIMD は 32-way(?)

  29. R2P/IST 技術講演会 Top 500 から言えること (2/2) • GPUスパコンは,Rmax /Rpeak が低い(50% 程度) • LINPACK: • 比較的 regular なプログラムで, • CS のプロによってカリカリにチューンされているのに,こう • 実際: • 実用的なプログラムを, • CSが専門でないプログラマが書くと? • GPU スパコンはもう来ないだろう • それでも GPUWS は残るのか? • おまけ: • スパコンのベンチマークに LINPACK を選んだのは見識だった?

  30. R2P/IST 技術講演会 低いプログラマビリティの罪 • プログラミング自体が難しい • しかも,本質的でない困難が多い • プログラミングの流れ: • 汎用プロセッサでのプログラミング • 最適なアルゴリズムの選択 → プログラミング → 最適化 • アクセラレータでのプログラミング • 効率よく実行可能なアルゴリズムの選択 → プログラミング → 書けない,動かない,思い通りの性能が出ない → 最初からやり直し • 「GPU 鬱」は実在する

  31. R2P/IST 技術講演会 汎用マルチコアの面積効率

  32. R2P/IST 技術講演会 コアの規模と数 • チップ面積一定として,どちらが有利か? • 小型のコア × 多数 • 大型のコア × 少数 • 基準: • マルチコアこそ,面積効率が重要 • 面積効率が同程度なら,コアは少ないほうがよい

  33. R2P/IST 技術講演会 1. マルチコアこそ,面積効率が重要 • 「マルチコアでは,チップ面積が余っているから,無駄に使ってよい」 • ⇒ ウソ • 面積と性能の関係: • シングル・コアの時代: • チップ面積の増加 ⇒ チップ・コストの増加 • マルチコアの時代: • チップ面積の増加 ⇒ コア数の減少 ⇒ 性能低下

  34. R2P/IST 技術講演会 2. 面積効率が同程度なら,コアは少ないほうがよい • Amdahl の法則 (?) • nコアで n 倍スピードアップは無理 • マルチプロセッサの経験から • 「コアの性能が低いと,コア数を増やして勝つのは難しい」

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

  36. R2P/IST 技術講演会 スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ,I/O w 8 1 2 4

  37. R2P/IST 技術講演会 O(w3) から 実質 O(w)にするアーキテクチャ技術

  38. R2P/IST 技術講演会 スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ,I/O w 8 1 2 4

  39. R2P/IST 技術講演会 評価 • Alpha 21464 のフロアプラン • R.Preston, et al.: Design of an 8-widesuperscalar RISC microprocessor with simultaneous multithreading, ISSCC, pp. 334―472 (2002). • SPEC CPU 2006 の平均 IPC

  40. R2P/IST 技術講演会 RegFile L2 Cache Data Array (3MB) InstructionWindow : Functional Unit RMT Insn Buf LSQ Insn Unit : Instruction Fetch Unit 20mm L1 D$ L1 I$ : Inter Processor Router, Memory Controller, IO … L2 Cache Tag Array L2 Cache Control INT FU (x8) FP FU (x4) 20mm : OoO Control : Cache

  41. R2P/IST 技術講演会

  42. R2P/IST 技術講演会

  43. R2P/IST 技術講演会

  44. R2P/IST 技術講演会 結果から言えること • 面積効率に最も影響を与えるのは,キャッシュの容量 • x86 的 汎用マルチコアのキャッシュは,面積効率的には多すぎる • 128K~256K では,OoO 2~4way がよい • 0K~64K では,スカラ,1~2way がよい • 「固定費」であるキャッシュ,I/O の割合が多い → • way 数を増やして,演算器を増やした方がよい • 総合的には • 同じ性能ならコア数が少ない方がよいことを考え合わせると, • 「x86 的 汎用マルチコア,キャッシュ少なめ」がよい

  45. R2P/IST 技術講演会 評価は適正か? • 評価の問題 • 面積の精度は高くない • SPEC しかない • IPC の平均しかない • 並列化されてない • SPEC CPU2006 • 最適化の程度は,CS のプロから見ると,高くない • CS が専門ではない,その分野のエース級プログラマが書いた? • 実際あり得る最適化の程度をかなりうまく反映している?

  46. R2P/IST 技術講演会 SPEC CPU 2006 INT

  47. R2P/IST 技術講演会 SPEC CPU 2006 FP

  48. R2P/IST 技術講演会 おわりに

  49. R2P/IST 技術講演会 Divergence と Convergence • Divergence へ向かわせる圧力 • 演算能力の不足 • 消費電力の過剰 • Convergence へ向かわせる圧力 • 製造コストの上昇 • 機能の高度化・複雑化 → SW 開発コストの上昇 ⇓ • 少品種大量生産 • プログラマビリティ

  50. R2P/IST 技術講演会 ConvergentEvolution • Convergent Evolution(収斂進化) • 汎用マルチコアの面積効率を高める • アクセラレータのプログラマビリティを高める • 同じようなところに至る • 棲み分けはできるか? → おそらく,No • その時,どちらが「強い」か • 前者の方が,道が真っ直ぐで,HW/SW の技術的蓄積が多い • 後者は,改良を重ねるたびに,ちょっとずつ違うものになってしまう • 例えば,GPU にキャッシュを追加するとか

More Related