画像認識向け3次元積層

画像認識向け3次元積層
アクセラレータ・アーキテクチャの検討
九州大学大学院システム情報科学府*
九州大学大学院システム情報科学研究院**
上野伸也* Gauthier Lovic Eric** 井上弘士** 村上和彰**
1
概要
• 画像認識技術
• アクセラレータによる高性能・低消費エネル
ギー化
• アプリケーション分析
• アクセラレータ・アーキテクチャ検討
• 性能・消費エネルギー評価
• まとめ
2
画像認識技術
• 機械が人間に代わって,物事を理解,認識,判断
• 応用分野
– 産業,医療,セキュリティ,安全技術,etc.
• 画像認識を行う機器への要求
– 高性能
– 低消費エネルギー
– ソフトウェア処理
http://www.honda.co.jp/news/2004/4040824a.html
車載カメラによる夜間の歩行者認識技術
「インテリジェント・ナイトビジョンシステム」(Honda)
3
画像認識アプリケーションの
リアルタイム実行に必要な性能
1.4
8.32
11.89
1.48
実行時間(sec)
1.2
1
0.8
vga
汎用プロセッサの数十倍~数百倍の性能が必要
0.6
fullhd
0.4
0.2
リアルタイム性
を満たす実行時間
0
Disparity
Sift
Feature…
Feature
Tracking
実行環境
プロセッサ Intel Xeon 5160 3GHz
メモリ容量
8GB
消費電力
80W(TDP)
*リアルタイム性を満たす:1秒間30枚の画像に対して処理を行う
4
アクセラレータによる
高性能・低消費エネルギー化
ホストCPU
主記憶
Cell/B.E,
GPU,etc
アクセラ
レータ
インターコネクト
Cell/B.E
288GFLOPS
210W
出典http://www.itmweb.com
Tesla S1070
933GFLOPS
1123W
*Xeon 5160
24GFLOPS
80W
出典:http://www.elsa-jp.co.jp/
products/hpc/tesla/s1070/index.html
スレッド/データレベル並列性を利用して高性能・低消費エネルギー化
アクセラレータの性能向上阻害要因
・メモリ容量の不足
・大規模化に伴う配線長の増加
5
3次元積層技術
• 異なるプロセスを経て製造されたダイ同士の積層
– 大容量のメモリを積層 ⇒ メモリ容量不足の緩和
• グローバル配線長の削減、チップ面積縮小
3次元積層を利用することで,
より高性能・低消費エネルギーなアクセラレータを実現可能
TSV(Through
Silicon Vias)
出典:米インテル社
6
概要
• 画像認識技術
• アクセラレータによる高性能・低消費エネル
ギー化
• アプリケーション分析
• アクセラレータ・アーキテクチャ検討
• 性能・消費エネルギー評価
• まとめ
7
対象プログラムの決定
SD-VBSの各プログラムが含む処理
• SD-VBS[1]
– Venkataらによる画像処理
ベンチマークプログラムセット
– 画像認識に対応するプログラム
処理 画像 画像 画像 画像 画像
プログラム
変換 解析 認識 合成 理解
○
○
Image
○
Segmentation
○
SIFT
○
SVM
• SIFT
Image Stitch
• Image Segmentation
•画像認識アプリケーションに良く用いられる Texture
• SVM
•計算量が大きい
Synthesis
• Disparity Map
Feature
• Feature Tracking
Tracking
○
○
○
○
○
○
○
○
○
Disparity Map ○
○
○
[1]S. K. Venkata,et al. “SD-VBS: The San Diego Vision Benchmark Suite,”
Proc.IISWC,pp.55-pp.64,Oct. 2009
8
画像認識アプリケーション分析
~SIFT~
• 入力画像からSIFT特徴の特徴点を検出するプログラム
– 物体認識、画像分類、特徴点追跡に用いられる
各処理の実行時間
ガウシアンフィルタによる画像平滑化
DoG画像の生成
極値検出
主曲率によるキーポイントの削除
低コントラストに基づくキーポイントの削除
実行時間(sec)
SIFTの処理フロー
14
12
10
8
6
4
2
0
その他の処理
画像の読み込み
初期値の設定など
極値検出
DoG画像の生成
ガウシアンフィルタ
画像平滑化
vga
fullhd
*Intel Xeon 5160 3GHz で実行
ガウシアンフィルタ処理,DoG画像生成,極値検出に注目
9
ガウシアンフィルタによる画像平滑化
ガウシアンフィルタ処理
L(2σ0)
平滑化
画像
L(k*kσ0)
平滑化
画像
平滑化
画像
入力画像
入力画像
L(kσ0)
ダウン
サンプリング
L(σ0)
1オクターブ
1. スケールを変化(  0 , k 0 , k  0 ,...,2 0 )
させながらそれぞれ画像平滑化
2. 入力画像を2分の1にダウンサンプリング
3. 画像サイズが一定値以下になるまで1.2.
の処理を繰り返し
2
L(2σ0)
入力
画像
L(k*kσ0)
L(kσ0)
L(σ0)
平滑化
画像
平滑化
画像
平滑化
画像
平滑化
画像
各平滑化画像の生成は
並列に行うことが可能
10
ガウシアンフィルタ処理
1
256
4
256
16
256
4
256
1
256
4
256
16
256
24
256
16
256
4
256
16
256
24
256
36
256
24
256
16
256
4
256
16
256
24
256
16
256
4
256
1
256
4
256
16
256
4
256
1
256
1.
2.
3.
4.
5.
注目画素をガウシアンフィルタの中心とする
画素値×ガウシアンフィルタ係数
2の結果を合計
結果を対応する場所に記入
1~4を全画素に対して行う
ガウシアンフィルタ
10
17
21
12
4
4
4
2
7
20
8
1
6
20
12
22
22
15
9
2
2
22
12
8
18
7
9
20
21
12
19
3
2
21
15
17
13
18
11
19
18
3
21
18
1
入力画像
18
15
3
15
14
8
3
11
14
6
1
8
8
20
16
8
20
13
15
21
21
14
22
7
22
11
14
平滑化
7
9
9
9
8
8
8
8
5
8
10
11
11
11
12
13
12
8
10
11
12
12
12
13
15
14
9
11
13
14
14
12
12
14
14
9
11
14
14
14
13
12
13
13
9
平滑化画像
9
12
12
14
14
13
13
13
9
9
11
12
14
14
14
13
12
9
6
9
10
11
11
10
10
10
7
11
DoG画像の生成と極値検出
平滑化画像と
の差分を求める
DoG画像
スケール
平滑化画像
並列に求めることが可能
極値検出
対象画像
•3枚1組で比較を行う
•注目画素と26近傍画素で比較
•注目画素が極値がどうか判定
•極値の場合、当該画素を
キーポイント候補に加える
•全画素に対して行う
12
分析結果まとめ
(並列度・入力データ数・演算の種類・DFGの深さ)
並列性・演算に関する特性
入力データ
演算の種類と回数
数
並列度
X
 Y  Z i 
画像平滑化
DFGの深さ
2Nk^2
積算
和算
Nk^2回
Nk^2-1回
1回
1
26回
1~26
i 1
2 log2 Nk   1
X
DoG生成
 (Y  1)  Z 
2
減算
極値検出
 (Y  3)  Z 
27
比較演算
i 1
X
i 1
i
i
X:オクターブ数
Y::スケール数
Zi:iオクターブ目の入力画素数
Nk:スケールkにおけるガウシアンフィルタのウィンドウサイズ
13
概要
• 画像認識技術
• アクセラレータによる高性能・低消費エネル
ギー化
• アプリケーション分析
• アクセラレータ・アーキテクチャ検討
• 性能・消費エネルギー評価
• まとめ
14
命令流
データ流
加速実行方式
汎用性
(より性能低下要因
が少ない)
命令フェッチ機構の簡略化
MIMD
(Multiple Instruction Stream,
Multiple Data Stream)
異なる命令を並列に実行可能
・命令フェッチ機構の省略
・レジスタファイルの省略
SIMD
(Single Instruction Stream,
Multiple Data Stream)
同一命令を並列に実行
*全てのPEが100%動作すると仮定
PE(Processing Element)
電力効率
NIMD
(No Instruction Stream,
Multiple Data Stream)
PEアレイ上でのDFG直接実行
(より高性能・低消費エネルギー)15
命令流
データ流
汎用性
(より性能低下要因
が少ない)
各処理に適した
加速実行方式
極値検出
MIMD
(Multiple Instruction Stream,
Multiple Data Stream)
異なる命令を並列に実行可能
DoG画像の生成
ガウシアンフィルタ
による画像平滑化
SIMD
(Single Instruction Stream,
Multiple Data Stream)
同一命令を並列に実行
*全てのPEが100%動作すると仮定
PE(Processing Element)
電力効率
NIMD
(No Instruction Stream,
Multiple Data Stream)
PEアレイ上でのDFG直接実行
(より高性能・低消費エネルギー)16
プロセッサコア
実行方式切り替え可能な
NIMD/MIMD型アクセラレータ
Register File
ALU
ALU
プロセッサ・コアとメモリ・コアは密に結合
メモリコア
Inst. Mem.
Data Mem.
Router
ALUアレイ構成用
ネットワーク
メモリ間オンチップ
ネットワーク
17
プロセッサコア
実行方式切り替え可能な
NIMD/MIMD型アクセラレータ
MIMD実行
Register File
ALU
メモリコア
Inst. Mem.
ALU
Data Mem.
Router
ALUアレイ構成用
ネットワーク
メモリ間オンチップ
ネットワーク
プロセッサコアとメモリコアが結合してPEを構成
⇒複数スレッドを並列に実行
18
プロセッサコア
実行方式切り替え可能な
NIMD/MIMD型アクセラレータ
NIMD実行
Register File
ALU
メモリコア
ALU
×
×
×
Inst. Mem.
×
Data Mem.
Router
+
ALUアレイ構成用
ネットワーク
+
+
メモリ間オンチップ
ネットワーク
停止
メモリが隣接
⇒単純なNIMD方式よりALU間の距離が長い
問題点:
ALU間の配線長が長い
19
⇒プロセッサコア間のデータ通信時間/消費エネルギー増加
3次元積層
NIMD/MIMD型アクセラレータ
プロセッサコア
Register File
ALU
ALU
プロセッサ・レイヤ
密に演算器
を集積
ALUアレイ構成用
オンチップ・ネットワーク
メモリコア
メモリレイヤ
Inst. Mem.
Data Mem.
Router
コア間データ通信用
オンチップ・ネットワーク
20
MIMD実行とNIMD実行
MIMD実行時
•プロセッサ・コアとメモリ・コアのペア
により1個のPEを構成
•各PEは独立して動作
•最大PE数のスレッド並列実行が可能
NIMD実行時
•メモリコアからALUアレイへデータ供給
•プロセッサコアとデータの入出力を行う
メモリコアを変更
⇒様々な形のALUアレイを実現
21
MIMD方式 vs. 提案手法
• 提案手法(MIMD実行時)
– 性能,消費エネルギーはMIMD方式と同一
• 提案手法(NIMD実行時)
– 性能
向上要因
• Load/Store命令削減
– 消費エネルギー削減効果
向上要因
• 命令フェッチ
• レジスタファイル
• Load/Store命令実行
低下要因
•動作しないALU
•再構成
低下要因
•再構成
•コア間通信
22
概要
• 画像認識技術
• アクセラレータによる高性能・低消費エネル
ギー化
• アプリケーション分析
• アクセラレータ・アーキテクチャ検討
• 性能・消費エネルギー評価
• まとめ
23
評価環境
 実行プログラム:
SD-VBSよりSIFTのガウシアンフィルタ処理,DoG画像生成,極値検出
 評価モデル
性能・消費エネルギーモデルを用いて評価
• MIMD:MIMD方式のみで実行
• NIMD/MIMD(提案手法): NIMD方式とMIMD方式を切り替え可能
• PE数100(10×10),動作周波数 2GHz
• 消費電力シミュレータ:sim-wattch[2]
• アルゴリズムから実行演算数,
マッピング可能なDFG,イタレーション数,
データキャッシュアクセス数を計算
• メモリアクセスの時間・消費エネルギーは0
• 再構成/コア間通信の時間・消費エネルギーは0
命令発行幅:1
32KB
Fetch
EXE
I$
R
F
D$
32KB
32エントリ
[2]Jianwei Chen,et al. “SimWattch: Integrating Complete-system and User-level Performance
and Power Simulators,”IEEE Micro,Vol.27,no.4,pp.34-pp.48,2007.
24
性能評価
正規化実行時間
MIMDの実行時間を1として正規化
MIMD実行
極値検出
1.2
DoG画像
1
ガウシアンフィルタ
0.8
NIMD実行
0.6
0.4
0.2
Load/Store命令数削減による性能向上 >
動作しないALUによる性能低下
0
MIMD
NIMD/MIMD
MIMD方式のみの実行に比べ約7%の性能向上
25
消費エネルギー評価
MIMDの消費エネルギーを1として正規化
正規化消費エネルギー
1.2
極値検出
1
MIMD実行
DoG画像
0.8
ガウシアンフィルタ処理 NIMD実行
0.6
0.4
命令フェッチ機構の省略,
レジスタファイルの省略による効果
0.2
0
MIMD
NIMD/MIMD
提案手法はMIMDに比べ
約40%の消費エネルギー削減
26
まとめ
• 画像認識アプリケーションの特性解析
– 処理によっては高性能/低消費エネルギーとなる
実行方式が異なる
• 実行方式切り替え可能なNIMD/MIMD型
アクセラレータの提案
– 3次元実装技術を用いてより密に演算器を集積
• 性能/消費エネルギー評価
– MIMD方式のみに比べ
7%の性能向上,40%の消費エネルギー削減
27
御清聴ありがとうございました
28
ガウシアンフィルタ処理の
消費エネルギー内訳
消費エネルギー比
1.2
EM
データキャッシュ
ER
レジスタファイル
1
0.8
レジスタファイルの削減効果
EE
演算器
EF
命令フェッチ
or データストリーム制御
0.6
0.4
CP動作回数の削減効果
フロントエンドの削減効果
0.2
0
MIMD
NIMD_1
NIMD_2
29
性能評価
0.023
0.025
0.024
0.006
実行時間(sec)
0.005
0.004
極値検出
DoG画像
ガウシアンフィルタ
0.003
0.002
0.001
1.1E-17
-0.001
MIMD方式のみに比べ約7%の性能向上
30
消費エネルギー評価
1.2
1
0.8
極値検出
DoG画像
ガウシアンフィルタ処理
0.6
0.4
0.2
0
MIMDのみに比べ,約40%の消費エネルギー削減
31
命令流
データ流
加速実行方式
(より性能低下要因
が少ない)
Fetch
汎用性
ALU
I Mem
R
F
D Mem
MIMD
(Multiple Instruction Stream,
Multiple Data Stream)
異なる命令を並列に実行可能
ALU
SIMD
(Single Instruction Stream,
Multiple Data Stream)
同一命令を並列に実行
*全てのPEが100%動作すると仮定
PE(Processing Element)
電力効率
R
F
D Mem
ALU
NIMD
(No Instruction Stream,
Multiple Data Stream)
PEアレイ上でのDFG直接実行
(より高性能・低消費エネルギー)32
命令流
データ流
各実行方式の性能低下要因
汎用性
(より性能低下要因
が少ない)
MIMD
(Multiple Instruction Stream,
Multiple Data Stream)
異なる命令を並列に実行可能
・PE間で異なる命令を実行する処理
SIMD
(Single Instruction Stream,
Multiple Data Stream)
同一命令を並列に実行
・実行DFGが頻繁に変更する処理
・分岐命令を含む処理
・PEアレイと実行DFGの幅/深さが
一致しない処理
PE(Processing Element)
電力効率
NIMD
(No Instruction Stream,
Multiple Data Stream)
PEアレイ上でのDFG直接実行
(より高性能・低消費エネルギー)33
実行モデル(MIMD方式)
Fetch
Front End
I$
EXE
・・・
1 2
R
F
3
4
D$
5
・・・・・・・
6
時間
アクセラレータ
メモリ
データの
読み書き
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
・・・
6 6 6 6
6 6 6 6
6 6 6 6
6 6 6 6
必要に応じてLoad/Store命令を発行
34
実行モデル(SIMD方式)
From
SIMDコントロールユニット
EXE
R
F
・・・
1 2
4
D$
5
・・・・・・・
ブロードキャスト
するため,
動作周波数は
MIMDに比べ低い
6
アクセラレータ
CP
3
命令の
ブロードキャスト
メモリ
データの
読み書き
時間
CP
1
6
CP
CP
2
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
・・・
6 6 6 6
6 6 6 6
6 6 6 6
6 6 6 6
必要に応じてLoad/Store命令を発行
35
実行モデル(NIMD方式)
From CP
From PE
・・・
1 2
3
4
EXE
5
D$
・・・・・・・
6
アクセラレータ
時間
コア間通信が
クリティカルパス
動作周波数が低下
CP
再構成情報
入出力制御
CP
CP
CP
再構成情報
入出力制御
入出力制御
メモリ
パイプライン
方式で実行
Load/Store命令が不要
動作しないPEが存在
36
性能モデリング
(実行時間)  TEXE  TMEM  TRe conf
MIMD
TEXE
TMEM
TRe conf
I EXE
N M  IPC  f M
SIMD
I EXE
N S  IPC  f S
I LS
I LS
 StallS
 StallM
N M  IPC  f M
N S  IPC  f S
NIMD
Iteri  MAX _ Di  1

fN
i 1
X
StallN  Str
X  CCreconf
fN
IEXE:アルゴリズムの実現に最低限必要な命令数
ILS:ロード/ストア命令数
Nx:動作PE数の平均
StallX:メモリアクセスのストール時間(sec)
X:再構成回数
IPC:PEが1CCで実行可能な命令数
CCReconf:再構成1回の平均CC Iteri:i回目構成時のイタレーション数
MAX_Di:i回目構成時のDFG深さ最大値
fx:XIMD方式における周波数
37
消費エネルギーモデリング
(総消費エネルギー)  EF  EE  ER  EM
MIMD
EF
I  E( f M ) Front
SIMD
I
 ( E ( f S ) SCP
NS
 N  E ( f S ) Broad )
EE
I  E( f M ) EXE
ER
ACRF  3 E( f M ) RF
I  E ( f S ) EXE
NIMD
X  Ereconf
X
  Iteri  E ( f N ) NCP
i 1
X
 ( Iter  N
i 1
ACRF  3 E( f S ) RF
I LS  ( E ( f M ) D$
 Rmiss  Emem )
I LS  ( E ( f S ) D $
 Rmiss  Emem )
PE _ i
X
 ( Iter  N
i 1
EM
i
i
Com _ i
 E ( f N ) EXE )
 E ( f N )Com )
X
 ( Iter  ( N
i 1
i
in _ i
 2  N out _ i ))
 ( E ( f N ) D$  Rmiss  Emem )
38
各パラメータの説明
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
EFront:1動作あたりのフロントエンドの平均消費エネルギー
EBroad:SIMDコントロールプロセッサから1コアへ命令をブロードキャスト時の平均
消費エネルギー
EEXE:1動作あたりの命令実行部分の平均消費エネルギー
ERF:1動作あたりのレジスタファイルの平均消費エネルギー
ED$:1動作あたりのデータキャッシュの平均消費エネルギー
Ereconf:再構成1回あたりの平均消費エネルギー
ESCP:1動作あたりのSIMDコントロールユニットの平均消費エネルギー
ENCP:1動作あたりのNIMDコントロールユニットの平均消費エネルギー
ECom:1動作あたりのコア間通信の平均消費エネルギー
Emem:1動作あたりのメモリ(主記憶)の平均消費エネルギー
N:PE数
X:再構成回数
NPE_i:i回目の構成で動作するPE数
Nin_i:i回目の構成でメモリからデータを入力されるPE数
Nout_i: i回目の構成でメモリへデータを出力するPE数
NCom_i: i回目の構成のコア間通信数
Iteri:i回目に構成したDFGのイタレーション数
Rmiss:データキャッシュのミス率
39
モデリングによる評価
• 目的
– 提案手法の高性能・低消費エネルギー化効果を明確にする
• 評価指標
– 性能
– 消費エネルギー
• 比較対象
–
–
–
–
MIMD方式のみ
NIMD方式のみ
NIMD方式のみ(PEアレイの深さと幅を変更)
提案手法(MIMD方式とNIMD方式を切り替え+PEアレイの深
さと幅を変更)
40
アプリケーション分析結果
ガウシアン
フィルタ処理
DoG画像
の生成
極値検出
2W^2
K
×× ×× ・・・××
+
+
+
+
52
・・・
・・・
- -- -
・・・
-
・・・
+
2 log2 W   1
比較演算
W=(11,15,17,21,27)の5種類 入力画素(288×288)のとき 入力画素(288×288)のとき
入力画素(288×288)のとき K= 441,936
L= 220,968
各WにつきN=552,420
依存関係の深い
データレベル並列性が高い スレッドレベル並列性が高い
同一計算のくり返し
41
実際の実行における並列度
cif
vga
fullhd
ウィンドウサイズ: 11,15,17,21,27
オクターブ数
5
5
7
スケール数
5
5
5
入力画素数 288*288 480*480 1080*1080
Cif:画像平滑化
スケール数
5
5
入力画素(縦)
288
144
入力画素(横)
288
144
並列度
414720 103680
5
72
72
25920
5
36
36
6480
5
18
18
1620 552420
vga:画像平滑化
スケール数
入力画素(縦)
入力画素(横)
並列度
5
5
480
240
480
240
1152000 288000
5
120
120
72000
5
60
60
18000
5
30
30
4500 1534500
fullhd:画像平滑化
スケール数
5
5
5
5
5
入力画素(縦)
1080
540
270 135
68
入力画素(横)
1080
540
270 135
68
並列度
5832000 1458000 364500 91125 23120
5
34
34
5780
5
17
17
1445 7775970
42
画像平滑化処理の並列性
ガウシアンフィルタ
平滑化を行うために
必要なデータ
入力画像
10
17
21
12
4
4
4
2
7
20
8
1
6
20
12
22
22
15
9
2
2
22
12
8
18
7
9
20
21
12
19
3
2
21
15
17
13
18
11
19
18
3
21
18
1
18
15
3
15
14
8
3
11
14
6
1
8
8
20
16
8
20
13
15
21
21
14
22
7
22
11
14
平滑化
求める値
7
9
9
9
8
8
8
8
5
8
10
11
11
11
12
13
12
8
10
11
12
12
12
13
15
14
9
11
13
14
14
12
12
14
14
9
11
14
14
14
13
12
13
13
9
9
12
12
14
14
13
13
13
9
9
11
12
14
14
14
13
12
9
6
9
10
11
11
10
10
10
7
画素の平滑化は全て並列に実行可能
43
入力画像
DoG画像の生成
ガウシアンフィルタによる平滑化
並列に求めることが可能
同一オクターブ内の隣接した平滑化画像の差分を取る
44
特性解析(DoG画像の生成)
平滑化画像A
7
9
9
9
8
8
8
8
10
11
11
11
12
13
10
11
12
12
12
13
15
11
13
14
14
12
12
14
11
13
12
12
14
14
9
11
14
13
12
13
13
9
9
12
12
14
14
13
13
必要なデータ
平滑化画像B
10
11
12
13
15
14
9
11
14
14
14
13
12
13
9
12
14
13
13
13
9
9
11
14
14
13
12
9
6
9
11
10
10
10
7
求める値
DoG画像
-
-3
-2
-3
-4
-7
-6
-1
-3
-3
-1
-1
-3
-2
4
-1
-3
-1
0
-1
0
6
2
1
0
1
-1
-1
5
2
3
0
0
0
0
4
3
3
3
4
4
3
6
•各画素値は並列に求めることが可能
•メモリ参照の空間的局所性は高い
•メモリ参照の時間的局所性は低い
•演算は減算のみ
45
極値検出方法
2次元の例
1次元の例
対象画像
対象画像
5
10
極値
3
1
5
4
8
10
6
5
3
0
4方向全てで極値 = 中央の画素は極値
対象とする画素値が極値検出対象
となっている全画素の中で最大もしくは最小
46