530 likes | 733 Views
アクセラレータ の 将来. 東京大学 五島 正裕. はじめに (1/2). 予言: 「アクセラレータ は先細り」 「 ディジタル LSI は,メモリと, ARM マルチコア と FPGA だけになる」 危機感 : もし予言 が成就したら,日本の LSI ベンダはどうなるのか ? LSI ベンダのない工業国はアリなのか? 自分はともかく,ウチの卒業生はどうなるのか?. はじめに (2/2). 今日の内容: 危機感 の 共有 予言の証明 しかし ,明らかに説得力がない 自分を 含め,そう思っている人には かなり自明
E N D
R2P/IST 技術講演会 アクセラレータ の 将来 東京大学 五島 正裕
R2P/IST 技術講演会 はじめに (1/2) • 予言: • 「アクセラレータ は先細り」 • 「ディジタル LSI は,メモリと,ARMマルチコア と FPGA だけになる」 • 危機感: • もし予言が成就したら,日本の LSI ベンダはどうなるのか? • LSI ベンダのない工業国はアリなのか? • 自分はともかく,ウチの卒業生はどうなるのか?
R2P/IST 技術講演会 はじめに (2/2) • 今日の内容: • 危機感の共有 • 予言の証明 • しかし,明らかに説得力がない • 自分を含め,そう思っている人には かなり自明 • 感覚の問題で,説明できない • 自分の仕事は予言の成就 • アクセラレータがどうなろうが,研究的にはどうでもよい
R2P/IST 技術講演会 発表の内容 背景 アクセラレータ と プログラマビリティ 汎用マルチコアの高効率化
R2P/IST 技術講演会 アクセラレータ
R2P/IST 技術講演会 データ並列性の高い処理 • データ並列性の高い処理 • データ処理量が多い • 汎用プロセッサで対処しにくい(?) • 比較的単純な処理の繰り返し(?) • 汎用プロセッサほどの複雑な機構は不要(?) ⇒ 汎用プロセッサ + アクセラレータ
R2P/IST 技術講演会 Divergence • 専用ハードウェア • アクセラレータ • SIMD プロセッサ • 組み込み用ベクトル・プロセッサ • 演算器アレイ型プロセッサ • (GP)GPU • PLAYSTATION3CellBE • 汎用マルチコア(小型コア) • タイル・プロセッサ • Larrabee • Xbox360PX • 汎用マルチコア(大型コア) • x86MC (Intel Core, AMDOpteron) • SPARC64,POWER • (ウルトラワイド・スーパスカラ・プロセッサ)
R2P/IST 技術講演会 アクセラレータの特徴 • アクセラレータの特徴(⇔ 汎用マルチコアと比較): • SIMD(⇔ MIMD) • ローカル・メモリ(⇔ コヒーレント・キャッシュ)
R2P/IST 技術講演会 SIMD • SIMD:SingleInstruction stream / Multiple Data stream • SIMD プロセッサ • SIMD 命令セット • 利点:ピーク性能 • 問題点:プログラマビリティ
R2P/IST 技術講演会 SIMD プロセッサ • 単一の制御部からの指令により,複数の演算器が同時に同じ処理を行う Control Unit Instruction Broadcast PE– 0 PE– 1 PE– 2 PE– n-1 Memory
R2P/IST 技術講演会 SIMD 命令セット • (スーパ)スカラ・プロセッサの拡張命令セット • VIS(Visual Instruction Set) • MMX/SSE/3DNow!,AltiVec,etc. • 元々は,64b の演算器を,16b x 4 として使う手法 (VIS,MMX) • 1つのレジスタ内に,2~8個程度のデータをパック し, • 1命令で,同種の演算を2~8個程度同時に行う
R2P/IST 技術講演会 SIMD の利点と問題点 • 利点: 性能‐面積効率,最大性能 • 演算器間で制御部を共有可能 • 「1命令で n 個の処理」 • 演算器により多くの面積を割り当てることが可能 • 問題点: プログラマビリティ
R2P/IST 技術講演会 背 景 : 製 品 開 発
R2P/IST 技術講演会 背景 0 : 製品開発 • 現在の情報機器 • 要求される処理の高度化 / 複雑化 • 過当競争による 開発期間の短縮 • 速度は,1st. Priority ではなくなりつつある
R2P/IST 技術講演会 背景 1 : ハードウェア (LSI) 開発 • 要求される処理の高度化 / 複雑化 • 「設計できない」 • ソフトウェアでも開発は難しくなりつつある • 開発期間の短縮 • 「発売に間に合わない」 • 製品の開発を始めてから LSI の開発を始めるのではダメ • LSI 製造コストの高騰 • 「開発費を回収できない」 • 個別用途向けに開発したのではダメ • 個別用途向け,多品種 少量 のLSI 開発は困難
R2P/IST 技術講演会 背景 2: ソフトウェア開発 • 開発効率,メンテナンス効率 • 要求される処理の高度化 / 複雑化 • 開発期間の長期化 → 開発コストの高騰 • HW の速度向上により,速度に対する要求は飽和しつつある? • (少なくとも,ユーザは必要性を実感していない) • Java,Ruby などの利用 • 速度はともかく,開発効率が高い
R2P/IST 技術講演会 要求される処理の高度化 / 複雑化 • 例えば MPEG • MPEG-2(1995年) • HW 化をかなり考慮して策定 • MPEG-4 AVC(H.264) (2003年) • HW 化は(MPEG-2 ほどには)考慮されていない • SW でも,正しく書くのは難しい
R2P/IST 技術講演会 HW/SW インタフェース • 垂直統合: • 性能のために HW/SWインタフェースが決まってしまう • その結果,プログラマが泣く • 水平分業: • プログラマビリティを第一に HW/SW インタフェースを決める • マイクロアーキテクト / プログラマは,個別に努力する • 昔からこうだが,今後はもっとこう
R2P/IST 技術講演会 SIMD と プログラマビリティ
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 • 汎用ベクトル処理
R2P/IST 技術講演会 問題は SoA • プログラマビリティに与える制約 • AoS : 単に,64b(,128b,…) の演算だと思えばよい • SoA : 4個(,8個,…)まとめて演算しなければならない • AoS/SoA は,使い方の問題ではあるが,アーキテクチャに影響を与える • AoS を指向するなら,4つ組で十分 • SoA によって最大性能の向上を図るなら,64bx8 なども考えられる • 大規模な SIMD プロセッサは SoA(もしくは,AoS の SoA) • ベクトル・プロセッサは?
R2P/IST 技術講演会 SoA のプログラマビリティに対する制約 • 規則的 (regular) なループ: • SIMD 化可能 • 配列の連続要素に対し,同一の処理を行う場合など • 積和演算 • 行列積 • 不規則 (irregular) なループ: • SIMD 化困難 • SIMD 化すると,性能向上が見られない,性能が低下する
R2P/IST 技術講演会 不規則なループ • if-then-else 構造を持つもの • 実行フラグなどにより対処は可能だが,性能は悪化 • then パート と else パートを逐次実行 • 不規則なメモリアクセスを含むもの • 要素毎にポインタを含むものなど • リスト・ベクトル機能 • SIMD 命令セットの範疇では,サポートできない • ループからの脱出 • コンパイラ (inc. Intel コンパイラ)は SIMD化しない(最近は?)
R2P/IST 技術講演会 不規則なループの具体例 (1/2) • サーチ: • 次にたどるべきノードが動的に決まる • ソート: • ストアの先が,比較結果によって,要素ごとに異なる
R2P/IST 技術講演会 不規則なループの具体例 (2/2) • MPEG-4 AVC(H.264): • 動き検出 (motion detection) • 多重ループからの脱出 • 適応的な探索 • 算術符号の符号化,復号化 • 多数の分岐 • 適応的なモード切替 • デブロッキング・フィルタ • 適応的なアルゴリズム
R2P/IST 技術講演会 プログラマビリティの低さを証明するもの • 「アクセラレータでやってみました」系の論文 • 最近は通らなくなってきた • プログラミング・コンテストの存在 • Cell Challenge,GPU Challenge(2010 まで) • Xbox 360 に対する PLAYSTATION 3 の出だしのつまづき(推測) • ウチの研究室の学生が,某有名エンコーダの SSE/GPGPU 化を担当 • 「GPGPU で,CPUw/ SSE に勝つのは困難」 • Top 500 • (次のスライド)
R2P/IST 技術講演会 Top 500 (June 2011)
R2P/IST 技術講演会 Top 500 から言えること (1/2) • 京は Rmax/Rpeak が高い(93.0%) • コア数が多く,通信オーバヘッド上は不利.だから, • コアの効率が 100% 近くないと達成できない • SIMD は 2-way • GPU スパコンは,Rmax /Rpeak が低い(50% 程度) • コア数が少なく,通信オーバヘッド上は有利.だから, • コアの効率自体,50% を切っているであろう • SIMD は 32-way(?)
R2P/IST 技術講演会 Top 500 から言えること (2/2) • GPUスパコンは,Rmax /Rpeak が低い(50% 程度) • LINPACK: • 比較的 regular なプログラムで, • CS のプロによってカリカリにチューンされているのに,こう • 実際: • 実用的なプログラムを, • CSが専門でないプログラマが書くと? • GPU スパコンはもう来ないだろう • それでも GPUWS は残るのか? • おまけ: • スパコンのベンチマークに LINPACK を選んだのは見識だった?
R2P/IST 技術講演会 低いプログラマビリティの罪 • プログラミング自体が難しい • しかも,本質的でない困難が多い • プログラミングの流れ: • 汎用プロセッサでのプログラミング • 最適なアルゴリズムの選択 → プログラミング → 最適化 • アクセラレータでのプログラミング • 効率よく実行可能なアルゴリズムの選択 → プログラミング → 書けない,動かない,思い通りの性能が出ない → 最初からやり直し • 「GPU 鬱」は実在する
R2P/IST 技術講演会 汎用マルチコアの面積効率
R2P/IST 技術講演会 コアの規模と数 • チップ面積一定として,どちらが有利か? • 小型のコア × 多数 • 大型のコア × 少数 • 基準: • マルチコアこそ,面積効率が重要 • 面積効率が同程度なら,コアは少ないほうがよい
R2P/IST 技術講演会 1. マルチコアこそ,面積効率が重要 • 「マルチコアでは,チップ面積が余っているから,無駄に使ってよい」 • ⇒ ウソ • 面積と性能の関係: • シングル・コアの時代: • チップ面積の増加 ⇒ チップ・コストの増加 • マルチコアの時代: • チップ面積の増加 ⇒ コア数の減少 ⇒ 性能低下
R2P/IST 技術講演会 2. 面積効率が同程度なら,コアは少ないほうがよい • Amdahl の法則 (?) • nコアで n 倍スピードアップは無理 • マルチプロセッサの経験から • 「コアの性能が低いと,コア数を増やして勝つのは難しい」
R2P/IST 技術講演会 スーパスカラ・プロセッサの回路面積 • w : 幅 • フェッチ幅 • 発行幅 • キャッシュ,I/O:O(1) ? • 演算器:O(w) • 制御部:O(w3) • 各種テーブルを構成する RAM: • ポート数:O(w) • エントリ数:O(w) • 面積 ∝ (ポート数)2× (エントリ数)
R2P/IST 技術講演会 スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ,I/O w 8 1 2 4
R2P/IST 技術講演会 O(w3) から 実質 O(w)にするアーキテクチャ技術
R2P/IST 技術講演会 スーパスカラ・プロセッサの回路面積 回路面積 制御 演算器 キャッシュ,I/O w 8 1 2 4
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
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
R2P/IST 技術講演会 結果から言えること • 面積効率に最も影響を与えるのは,キャッシュの容量 • x86 的 汎用マルチコアのキャッシュは,面積効率的には多すぎる • 128K~256K では,OoO 2~4way がよい • 0K~64K では,スカラ,1~2way がよい • 「固定費」であるキャッシュ,I/O の割合が多い → • way 数を増やして,演算器を増やした方がよい • 総合的には • 同じ性能ならコア数が少ない方がよいことを考え合わせると, • 「x86 的 汎用マルチコア,キャッシュ少なめ」がよい
R2P/IST 技術講演会 評価は適正か? • 評価の問題 • 面積の精度は高くない • SPEC しかない • IPC の平均しかない • 並列化されてない • SPEC CPU2006 • 最適化の程度は,CS のプロから見ると,高くない • CS が専門ではない,その分野のエース級プログラマが書いた? • 実際あり得る最適化の程度をかなりうまく反映している?
R2P/IST 技術講演会 SPEC CPU 2006 INT
R2P/IST 技術講演会 SPEC CPU 2006 FP
R2P/IST 技術講演会 おわりに
R2P/IST 技術講演会 Divergence と Convergence • Divergence へ向かわせる圧力 • 演算能力の不足 • 消費電力の過剰 • Convergence へ向かわせる圧力 • 製造コストの上昇 • 機能の高度化・複雑化 → SW 開発コストの上昇 ⇓ • 少品種大量生産 • プログラマビリティ
R2P/IST 技術講演会 ConvergentEvolution • Convergent Evolution(収斂進化) • 汎用マルチコアの面積効率を高める • アクセラレータのプログラマビリティを高める • 同じようなところに至る • 棲み分けはできるか? → おそらく,No • その時,どちらが「強い」か • 前者の方が,道が真っ直ぐで,HW/SW の技術的蓄積が多い • 後者は,改良を重ねるたびに,ちょっとずつ違うものになってしまう • 例えば,GPU にキャッシュを追加するとか