Transcript Document

LSI とシステムのワークショップ
12. ベクトル処理アーキテクチャ
五島 正裕
Advanced Computer Architecture
発表の内容
1.
背景
2.
アクセラレータ
3.
アクセラレータ vs 汎用マルチコア
4.
汎用マルチコアの高効率化
2
Advanced Computer Architecture
背景 0 : 製品開発
1.
要求される処理の高度化 / 複雑化
2.
開発期間の短縮
3.
速度は,1st. Priority ではなくなりつつある
3
Advanced Computer Architecture
背景 1 : ハードウェア (LSI) 開発
1.
要求される処理の高度化 / 複雑化

「設計できない」

2.
開発期間の短縮

「発売に間に合わない」

3.
ソフトウェアでも開発は難しくなりつつある
製品の開発を始めてから LSI の開発を始めるのではダメ
LSI 製造コストの高騰

「開発費を回収できない」

個別用途向けに開発したのではダメ
 以下のような LSI 開発は困難

個別用途向け

多品種 / 少量
4
Advanced Computer Architecture
背景 2: ソフトウェア開発
 開発効率,メンテナンス効率
1.
要求される処理の高度化 / 複雑化
2.
開発期間の長期化 → 開発コストの高騰
3.
ハードウェアの速度向上により,要求は飽和しつつある?

(少なくとも,ユーザは必要性を実感していない)
 Java,Ruby などの利用

速度はともかく,開発効率が高い
5
Advanced Computer Architecture
要求される処理の高度化 / 複雑化
 例えば MPEG

MPEG-2 (1995年)


ハードウェア化をかなり考慮して策定
MPEG-4 (H.264) (2003年)

ハードウェア化は(MPEG-2 ほどには)考慮されていない
– ソフトウェアでも,正しく書くのは難しい
 例えば 暗号

AES


ハードウェア化をかなり考慮して策定
次は?
6
Advanced Computer Architecture
ハードウェア指向 vs. ソフトウェア指向
↑ハードウェア指向

専用ハードウェア

アクセラレータ
GPU
 PLAYSTATION 3 Cell


汎用マルチコア(小型コア)
Xbox 360 PX
 Larrabee
 SH MC


汎用マルチコア(大型コア)
x86 MC (Intel Core, AMD Opeteron, etc.)
 POWER
 SPARC64

↓ソフトウェア指向
7
アクセラレータ
Advanced Computer Architecture
アクセラレータの普及
 特定応用に特化したプロセッサの普及

ゲーム・コンソール用プロセッサ

PLAYSTATION 3 Cell

GPU

画像認識/処理の専用プロセッサ

ビデオ/オーディオ・コーデック
 共通した特徴:

データ並列性の高い処理をターゲットとしたプロセッサ
9
Advanced Computer Architecture
データ並列性の高い処理
 データ並列性の高い処理

データ処理量が多い


汎用プロセッサで対処しにくい(?)
比較的単純な処理の繰り返し(?)

汎用プロセッサほどの複雑な機構は不要(?)
⇒ 汎用プロセッサ + アクセラレータ
10
Advanced Computer Architecture
アクセラレータの特徴
 アクセラレータの特徴(⇔ 汎用マルチコアと比較):

SIMD(⇔ MIMD)

ローカル・メモリ(⇔ コヒーレント・キャッシュ)
11
SIMD
Advanced Computer Architecture
SIMD
1.
SIMD:Single Instruction stream / Multiple Data stream

SIMD プロセッサ

SIMD 命令セット
2.
利点:ピーク性能
3.
問題点:プログラマビリティ
13
Advanced Computer Architecture
SIMD プロセッサ
Single Instruction stream/Multiple Data stream
 単一の制御部からの指令により,複数の演算器が同時に同じ処理を行う
Control Unit
Instruction
Broadcast
PE – 0
PE – 1
PE – 2
PE– n-1
Memory
14
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個程度同時に行う
15
Advanced Computer Architecture
SIMD の利点と問題点
 利点: 高い最大性能

演算器間で制御部を共有可能


「1命令で n 個の処理」
演算器により多くの面積を割り当てることが可能
 問題点: プログラマビリティ

不規則なループの処理
16
Advanced Computer Architecture
規則的なループ と 不規則なループ
 SIMD 化:

効率良く SIMD 命令に変換できること
 規則的 (regular) なループ:

SIMD 化可能

配列の連続要素に対し,同一の処理を行う場合など

積和演算

行列積
 不規則 (irregular) なループ:

SIMD 化困難,SIMD 化すると性能低下が大きい
17
Advanced Computer Architecture
不規則なループ
1.
if-then-else 構造を持つもの

実行フラグなどにより対処は可能だが,性能は悪化

2.
不規則なメモリアクセスを含むもの

要素毎にポインタを含むものなど

3.
リスト・ベクトル機能
– SIMD 命令セットの範疇では,サポートできない
ループからの脱出

4.
then パート と else パートを逐次実行
自動 SIMD 化コンパイラ (inc. Intel コンパイラ)は SIMD 化しない
袖 (wing) の処理
18
Advanced Computer Architecture
不規則なループの具体例 (1/2)
 サーチ:

次にたどるべきノードが適応的に決まる
 ソート:

不規則なメモリ・アクセスを含む

クイック・ソートやマージ・ソート等
 画像フィルタ:

袖 (wing) の処理
19
Advanced Computer Architecture
袖 (wing) の処理
重み行列
20
Advanced Computer Architecture
不規則なループの具体例 (2/2)
 MPEG-4 H.264 AVC:



動き検出 (motion detection)

多重ループからの脱出

適応的な探索
符号化,復号化

多数の分岐

適応的なモード切替
デブロッキング・フィルタ

適応的なアルゴリズム
 ウチの研究室の学生が,某有名エンコーダのベンダで SSE 化を担当

「GPGPU で,CPU に勝つのは困難」
21
Advanced Computer Architecture
プログラマビリティ
 プログラマビリティの低さを証明するもの:

「アクセラレータでやってみました」系の論文


最近は通らなくなってきた
プログラミング・コンテスト

Cell Challenge, GPU Challenge
 プログラミング自体が難しい

しかも,本質的でない困難が多い
 プログラミングの流れ:

汎用プロセッサでのプログラミング


最適なアルゴリズムの選択 → プログラミング
アクセラレータでのプログラミング

効率よく実行可能なアルゴリズムの選択 → プログラミング →
書けない → アルゴリズム選択からやり直し
22
アーキテクチャ比較
Advanced Computer Architecture
アーキテクチャ
 代表的なアーキテクチャ

専用ハードウェア

SIMD プロセッサ

汎用マルチコア w/ SIMD 命令セット

汎用マルチコア w/o SIMD 命令セット

(ウルトラワイドなスーパスカラ・プロセッサ)
 プログラマビリティと最大性能

チップの面積は,演算器 とその 制御部 に分けられる

最大性能は演算器にどれだけ面積を割くかによる

プログラマビリティは制御関連回路のコストにほぼ比例
24
Advanced Computer Architecture
演算器と制御部
 SIMD プロセッサ

単一の制御部と複数の演算器から成る

チップ面積の殆どは,演算器に割り当てられる
 Out-of-Order スーパスカラ

並列実行可能な部分をハードウェアで動的に検出

チップ面積の殆どは,制御部に割り当てられる
25
Advanced Computer Architecture
プログラマビリティと最大性能のトレードオフ
プログラマビリティ
目標
スーパスカラ
マルチコア
SIMD
演算器
ピーク性能=
演算機の割合
制御回路
チップ面積一定
26
汎用マルチコアの面積効率の向上
Advanced Computer Architecture
コアの規模と数
 チップ面積一定として,どちらが有利か?

小型のコア × 多数

大型のコア × 少数
28
Advanced Computer Architecture
コアの規模と数
 「マルチコアでは,チップ面積が余っているから,無駄に使ってよい」

⇒ ウソ
 シングル・コアの時代:

チップ面積の増加 ⇒ チップ・コストの増加
 マルチコアの時代:

チップ面積の増加 ⇒ コア数の減少 ⇒ 性能低下
29
Advanced Computer Architecture
コアの規模と数
 マルチコアこそ,(性能 / 面積) を最大化することが肝心
 (性能 / 面積) が同程度なら,コア数は少ないほうがよい

マルチプロセッサの経験から

n コアで n 倍スピードアップは無理
– 「コアの性能が低いと,コア数を増やして勝つのは難しい」
30
Advanced Computer Architecture
スーパスカラ・プロセッサの回路面積
w:幅

フェッチ幅

発行幅
 キャッシュ:
O(1) ?
 演算器:
O(w)
 制御部:
O(w3)

各種テーブルを構成する RAM:



ポート数:
O(w)
エントリ数:
O(w)
面積 ∝ (ポート数)2 × (エントリ数)
31
Advanced Computer Architecture
スーパスカラ・プロセッサの回路面積
回路面積
制御
演算器
キャッシュ
w
1
2
4
8
32
Advanced Computer Architecture
コアの規模
 チップ面積一定として,どちらが有利か?
 小型のコア × 多数
 大型のコア × 少数
33
Advanced Computer Architecture
O(w3) から O(w) にするアーキテクチャ技術
ステージ
ユニット
命令フェッチ
命令キャッシュ
リネーミング
RMT
ディスパッチ
スケジューリング
リネームド・トレース・キャッシュ
クラスタ化
命令ウィンドウ
発行
レジスタ読み出し
提案技術
マトリクス・スケジューラ
クラスタ化
演算器
レジスタ・ファイル
バイパス
非レイテンシ指向
レジスタ・キャッシュ・システム
メモリ依存解析
依存解析器
NOSQ
演算器の追加
演算器
ツインテール・アーキテクチャ
実行
レジスタ書き戻し
34
Advanced Computer Architecture
スーパスカラ・プロセッサの回路面積
回路面積
制御
演算器
キャッシュ
w
1
2
4
8
35
Advanced Computer Architecture
コアの規模
 チップ面積一定として,どちらが有利か?
 小型のコア × 多数
 大型のコア × 少数
36
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
37
Instruction
Reg
Window
File
INT FU
(x8)
20mm
RMT
Insn
Buf
L1 I$
FP FU
(x4)
Insn
Unit
L2 Cache
Tag Array
LSQ
L1
D$
L2 Cache
Control
20mm
: Cache
: Functional Unit
L2 Cache
Data Array
(3MB)
: OoO Control
: Instruction Fetch Unit
: Inter Processor Router,
Memory Controller, IO …
0%
20%
Cache
40%
Functional Unit
60%
OoO Control
80%
Fetch Unit
100%
IO
Other
2
1.8
1.6
OoO-Prop-8w
1.4
OoO-Prop-4w
OoO-Prop-2w
IPC
1.2
OoO-Prop-1w
OoO-Base-8w
1
OoO-Base-4w
OoO-Base-2w
0.8
OoO-Base-1w
Inorder-8w
0.6
Inorder-4w
Inorder-2w
0.4
Inorder-1w
0.2
0
0
50
100
Area
150
7
6
OoO-Prop-8w
5
OoO-Prop-4w
IPC per Area
OoO-Prop-2w
OoO-Prop-1w
4
OoO-Base-8w
OoO-Base-4w
3
OoO-Base-2w
OoO-Base-1w
Inorder-8w
2
Inorder-4w
Inorder-2w
1
Inorder-1w
0
No L2
64KB
128KB
256KB
512KB
L2 Cache Capacity
1MB
2MB
まとめ
Advanced Computer Architecture
まとめ
 プログラマビリティが一番 大事
 アクセラレータは,プログラマビリティが問題
 汎用マルチコアが有望
 各コアの面積効率の向上のアーキテクチャ研究が肝心
43