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

43
12. ベベベベベベベベベベベベベ ベベ ベベ LSI ベベベベベベベベベベベベベ

description

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

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

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

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

五島 正裕

LSI とシステムのワークショップ

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

Advanced Computer Architecture

発表の内容

1. 背景

2. アクセラレータ

3. アクセラレータ vs 汎用マルチコア

4. 汎用マルチコアの高効率化

2

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

Advanced Computer Architecture

背景 0 : 製品開発

1. 要求される処理の高度化 / 複雑化

2. 開発期間の短縮

3. 速度は, 1st. Priority ではなくなりつつある

3

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

Advanced Computer Architecture

背景 1 : ハードウェア (LSI) 開発

1. 要求される処理の高度化 / 複雑化

「設計できない」 ソフトウェアでも開発は難しくなりつつある

2. 開発期間の短縮

「発売に間に合わない」 製品の開発を始めてから LSI の開発を始めるのではダメ

3. LSI 製造コストの高騰

「開発費を回収できない」 個別用途向けに開発したのではダメ

以下のような LSI 開発は困難

個別用途向け

多品種 / 少量4

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

Advanced Computer Architecture

背景 2 : ソフトウェア開発

開発効率,メンテナンス効率

1. 要求される処理の高度化 / 複雑化

2. 開発期間の長期化 → 開発コストの高騰

3. ハードウェアの速度向上により,要求は飽和しつつある? (少なくとも,ユーザは必要性を実感していない)

Java , Ruby などの利用

速度はともかく,開発効率が高い

5

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

Advanced Computer Architecture

要求される処理の高度化 / 複雑化

例えば MPEG

MPEG-2 ( 1995 年) ハードウェア化をかなり考慮して策定

MPEG-4 (H.264) ( 2003 年) ハードウェア化は( MPEG-2 ほどには)考慮されていない

– ソフトウェアでも,正しく書くのは難しい

例えば 暗号

AES

ハードウェア化をかなり考慮して策定 次は?

6

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

Advanced Computer Architecture

ハードウェア指向 vs. ソフトウェア指向

↑ ハードウェア指向

専用ハードウェア

アクセラレータ GPU PLAYSTATION 3 Cell

汎用マルチコア(小型コア) Xbox 360 PX Larrabee SH MC

汎用マルチコア(大型コア) x86 MC ( Intel Core, AMD Opeteron, etc.) POWER SPARC64

↓ ソフトウェア指向7

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

アクセラレータ

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

9

Advanced Computer Architecture

アクセラレータの普及

特定応用に特化したプロセッサの普及

ゲーム・コンソール用プロセッサ PLAYSTATION 3 Cell

GPU

画像認識 / 処理の専用プロセッサ

ビデオ / オーディオ・コーデック

共通した特徴:

データ並列性の高い処理をターゲットとしたプロセッサ

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

Advanced Computer Architecture

データ並列性の高い処理

データ並列性の高い処理

データ処理量が多い 汎用プロセッサで対処しにくい(?)

比較的単純な処理の繰り返し(?) 汎用プロセッサほどの複雑な機構は不要(?)

⇒ 汎用プロセッサ + アクセラレータ

10

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

Advanced Computer Architecture

アクセラレータの特徴

アクセラレータの特徴(⇔ 汎用マルチコアと比較):

SIMD (⇔ MIMD )

ローカル・メモリ(⇔ コヒーレント・キャッシュ)

11

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

SIMD

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

Advanced Computer Architecture

SIMD

1. SIMD : Single Instruction stream / Multiple Data stream

SIMD プロセッサ

SIMD 命令セット

2. 利点:ピーク性能

3. 問題点:プログラマビリティ

13

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

14

Advanced Computer Architecture

SIMD プロセッサSingle Instruction stream/Multiple Data stream

単一の制御部からの指令により,複数の演算器が同時に同じ処理を行う

Memory

Control Unit

Broadcast

PE – 1 PE– n-1PE – 0 PE – 2

Instruction

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

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 個程度同時に行う

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

Advanced Computer Architecture

SIMD の利点と問題点

利点: 高い最大性能

演算器間で制御部を共有可能 「 1 命令で n 個の処理」

演算器により多くの面積を割り当てることが可能

問題点: プログラマビリティ

不規則なループの処理

16

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

Advanced Computer Architecture

規則的なループ と 不規則なループ

SIMD 化:

効率良く SIMD 命令に変換できること

規則的 (regular) なループ:

SIMD 化可能

配列の連続要素に対し,同一の処理を行う場合など 積和演算 行列積

不規則 (irregular) なループ:

SIMD 化困難, SIMD 化すると性能低下が大きい

17

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

18

Advanced Computer Architecture

不規則なループ

1. if-then-else 構造を持つもの

実行フラグなどにより対処は可能だが,性能は悪化 then パート と else パートを逐次実行

2. 不規則なメモリアクセスを含むもの

要素毎にポインタを含むものなど リスト・ベクトル機能

– SIMD 命令セットの範疇では,サポートできない

3. ループからの脱出

自動 SIMD 化コンパイラ (inc. Intel コンパイラ)は SIMD 化しない

4. 袖 (wing) の処理

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

Advanced Computer Architecture

不規則なループの具体例 (1/2)

サーチ:

次にたどるべきノードが適応的に決まる

ソート:

不規則なメモリ・アクセスを含む クイック・ソートやマージ・ソート等

画像フィルタ:

袖 (wing) の処理

19

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

Advanced Computer Architecture

袖 (wing) の処理

20

重み行列

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

Advanced Computer Architecture

不規則なループの具体例 (2/2)

MPEG-4 H.264 AVC :

動き検出 (motion detection)

多重ループからの脱出 適応的な探索

符号化,復号化 多数の分岐 適応的なモード切替

デブロッキング・フィルタ 適応的なアルゴリズム

ウチの研究室の学生が,某有名エンコーダのベンダで SSE 化を担当

「 GPGPU で, CPU に勝つのは困難」

21

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

Advanced Computer Architecture

プログラマビリティ

プログラマビリティの低さを証明するもの:

「アクセラレータでやってみました」系の論文 最近は通らなくなってきた

プログラミング・コンテスト Cell Challenge, GPU Challenge

プログラミング自体が難しい

しかも,本質的でない困難が多い

プログラミングの流れ:

汎用プロセッサでのプログラミング 最適なアルゴリズムの選択 → プログラミング

アクセラレータでのプログラミング 効率よく実行可能なアルゴリズムの選択 → プログラミング →

書けない → アルゴリズム選択からやり直し22

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

アーキテクチャ比較

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

Advanced Computer Architecture

アーキテクチャ

代表的なアーキテクチャ

専用ハードウェア

SIMD プロセッサ

汎用マルチコア w/ SIMD 命令セット

汎用マルチコア w/o SIMD 命令セット

(ウルトラワイドなスーパスカラ・プロセッサ)

プログラマビリティと最大性能

チップの面積は,演算器 とその 制御部 に分けられる 最大性能は演算器にどれだけ面積を割くかによる プログラマビリティは制御関連回路のコストにほぼ比例

24

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

Advanced Computer Architecture

演算器と制御部

SIMD プロセッサ

単一の制御部と複数の演算器から成る

チップ面積の殆どは,演算器に割り当てられる

Out-of-Order スーパスカラ

並列実行可能な部分をハードウェアで動的に検出

チップ面積の殆どは,制御部に割り当てられる

25

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

Advanced Computer Architecture

プログラマビリティと最大性能のトレードオフ

26

制御回路演算器

チップ面積一定

プログラマビリティ

ピーク性能=演算機の割合

目標

SIMD

マルチコア

スーパスカラ

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

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

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

Advanced Computer Architecture

コアの規模と数

チップ面積一定として,どちらが有利か?

小型のコア × 多数

大型のコア × 少数

28

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

Advanced Computer Architecture

コアの規模と数

「マルチコアでは,チップ面積が余っているから,無駄に使ってよい」

⇒ ウソ

シングル・コアの時代:

チップ面積の増加 ⇒ チップ・コストの増加

マルチコアの時代:

チップ面積の増加 ⇒ コア数の減少 ⇒ 性能低下29

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

Advanced Computer Architecture

コアの規模と数

マルチコアこそ,(性能 / 面積) を最大化することが肝心

(性能 / 面積) が同程度なら,コア数は少ないほうがよい

マルチプロセッサの経験から n コアで n 倍スピードアップは無理

– 「コアの性能が低いと,コア数を増やして勝つのは難しい」

30

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

Advanced Computer Architecture

スーパスカラ・プロセッサの回路面積

w : 幅

フェッチ幅

発行幅

キャッシュ: O(1) ?

演算器: O(w)

制御部: O(w3)

各種テーブルを構成する RAM : ポート数: O(w) エントリ数: O(w) 面積 ∝ (ポート数) 2 × (エントリ数)

31

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

Advanced Computer Architecture

スーパスカラ・プロセッサの回路面積

32

1 42 8

回路面積

w

キャッシュ

演算器

制御

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

Advanced Computer Architecture

コアの規模

チップ面積一定として,どちらが有利か?

小型のコア × 多数

大型のコア × 少数

33

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

Advanced Computer Architecture

O(w3) から O(w) にするアーキテクチャ技術

ステージ ユニット 提案技術

命令フェッチ 命令キャッシュ リネームド・トレース・キャッシュリネーミング RMT

ディスパッチ

命令ウィンドウ

クラスタ化

スケジューリング

マトリクス・スケジューラ

発行 クラスタ化

レジスタ読み出し 演算器

レジスタ・ファイル

バイパス

非レイテンシ指向レジスタ・キャッシュ・シス

テム実行

レジスタ書き戻し

メモリ依存解析 依存解析器 NOSQ

演算器の追加 演算器ツインテール・アーキテク

チャ

34

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

Advanced Computer Architecture

スーパスカラ・プロセッサの回路面積

35

回路面積

1 42 8w

キャッシュ

演算器

制御

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

Advanced Computer Architecture

コアの規模

チップ面積一定として,どちらが有利か?

小型のコア × 多数

大型のコア × 少数

36

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

37

Advanced Computer Architecture

評価

Alpha 21464 のフロアプラン

R. Preston, et al.: Design of an 8-wide superscalar RISC microprocessor with simultaneous multithreading, Proc. ISSCC (Int'l Solid-State Circuits Conf.), pp. 334―472 (2002).

SPEC CPU 2006 の平均 IPC

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

Insn Unit

L1 I$

RMT

InstructionWindow Reg

File

LSQ

: OoO Control

: Cache

: Functional Unit

: Inter Processor Router, Memory Controller, IO …

FP FU(x4)

INT FU(x8)

L2 CacheTag Array

L2 CacheControl

L2 CacheData Array

(3MB)L1 D$

20m

m

20mm

: Instruction Fetch UnitInsn Buf

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

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%Cache Functional Unit OoO ControlFetch Unit IO Other

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

0 50 100 1500

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

OoO-Prop-8wOoO-Prop-4wOoO-Prop-2wOoO-Prop-1wOoO-Base-8wOoO-Base-4wOoO-Base-2wOoO-Base-1wInorder-8wInorder-4wInorder-2wInorder-1w

Area

IPC

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

No L2 64KB 128KB 256KB 512KB 1MB 2MB0

1

2

3

4

5

6

7

OoO-Prop-8wOoO-Prop-4wOoO-Prop-2wOoO-Prop-1wOoO-Base-8wOoO-Base-4wOoO-Base-2wOoO-Base-1wInorder-8wInorder-4wInorder-2wInorder-1w

L2 Cache Capacity

IPC

per A

rea

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

まとめ

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

Advanced Computer Architecture

まとめ

プログラマビリティが一番 大事

アクセラレータは,プログラマビリティが問題

汎用マルチコアが有望

各コアの面積効率の向上のアーキテクチャ研究が肝心

43