スライド 1

第165回計算機アーキテクチャ研究会
2007/6/01
高並列アレイ型プロセッサIMAPCARの
アーキテクチャとその技術展望
NEC システムIPコア研究所
京 昭倫
slide 2
Outline
概要
VLIW方式に基づくPEを多数一次元に結合したIMAPプロセッ
サの設計思想、アーキテクチャ、プログラミング手法、最近製品
化されたIMAPCARを含むこれまで開発されたIMAPシリーズプ
ロセッサのチップ構成、最後に今後の技術展望について述べる。
1.設計思想
2.アーキテクチャ
3.プログラミング手法
4.チップ構成と性能
6.まとめ・今後の技術展望
第165回計算機アーキテクチャ研究会
slide 3
1.設計思想
第165回計算機アーキテクチャ研究会
slide 4
プロセッサ設計におけるトレードオフ
コスト vs 性能 vs 柔軟性
(プログラム容易性・
適用範囲の広さ)
スパコン:
マイクロコントローラ:
◎
コスト
第165回計算機アーキテクチャ研究会
◎
×
性能
×
専用エンジン:
性能
性能
○
柔軟性
◎
コスト
○
柔軟性
○
×
コスト
柔軟性
slide 5
「3者間トレードオフ」が発生する理由(仮説)
プログラムメモリ
実行シーケンス管
理
キャッシュ制御
各種I/F回路等
柔軟
性
ピーク
性能
演
回算
路関
連
ダイ写真を元にプロットしてみると・・
100
制
御
関
連
回
路
比
率
(%)
制
回御
路関
連
データパス
専用ハード
レジスタファイル
データメモリ
…
柔軟性ギャップ
(使いにくさ)はおお
よそイメージ通り
Itanium
Sparc64
SPE(CELL)
A社VLIWプロセッサ
B社VLIWプロセッサ
C社ASSP
専用ハード
100
演算関連回路比率(%)
コスト(発熱、ダイサイズ)
第165回計算機アーキテクチャ研究会
slide 6
仮説が正しいとすると・・
汎用
成功ゾー
ン
柔
軟
性
アーキテクチャ研究、コンパ
イラ研究におけるチャレンジ
100%=(回路規模)
制御回路
失敗ゾーン
専用
性能
第165回計算機アーキテクチャ研究会
柔軟性
演算
回路
性能
=コスト一定制約
slide 7
メディア処理プロセッサの場合
商品性(ニーズ):
項目
従来
近年
性能
○
○
コスト
○
○~△
柔軟性
△~×
○~△
柔
軟
性
汎用
近年のメディア処理
IMAPプロセッサの位置
プロセッサ・設計ゾーン
MIMD+SIMD命令セット(S社:9コア,'05)
高性能VLIW(F社:4コア,'05)
高並列SIMD(C社:1024コア,'06)
VLIW+SIMD命令セット(T社:3コア,'04)
高並列SIMD(N社:128コア,'06)
高並列SIMD(A社:4096コア,--)
従来の設計ゾーン:
専用ハード+汎用高性能
マイコン
専用
性能
要求性能(GOPS)
車載を考慮すると2W程度 1000
制御
演算回路
100
回路
2次元的認識
車間維持
レーン維持
標識認識
2005
第165回計算機アーキテクチャ研究会
4次元的認識
予測安全
人物行動予測
高度障害物検知 車両行動予測
人物検知
衝突回避ブレーキ
50~100GOPS
プログラマビリティ維持に
必要最低限
3次元的認識
障害物検知
Stop & Go
衝撃軽減ブレーキ
2007
2010
2015
slide 8
IMAPプロセッサのチャレンジ
Peak
Performance(GOPS)
柔
軟
性
汎用
メディア処理プロセッサ
設計ゾーン
1000
IMAP-CE
100MHz,
128PE/Chip
4-Way VLIW
100
柔軟性低下
実性高
現能コ
比ス
ト
IMAPプロセッサのチャレンジ
IMAPシリーズ 10
プロセッサの
位置(出発点) 1
IMAPCAR
100MHz,
128PE/Chip
4-Way VLIW+MAC
IMAP-2
40MHz, 64PE/Chip
IMAP-VISION
40MHz, 32PE/Chip
IMAP-1
専用
0.1
性能
柔軟性向上施策(使いやすくするための工
夫):
15MHz, 8PE /Chip
1990
1995
2000
2005
2010 Year
•構造がシンプルなSIMD型一次元プロセッサアレイ(LPA)からスタート
1. 並列化方式を整備
2. 並列化方式の効率的実現に向けたハード構成の工夫
3. 独自データ並列C言語・コンパイラ整備
Linear Processor Array
第165回計算機アーキテクチャ研究会
slide 9
2.IMAPプロセッサのアーキテクチャ
第165回計算機アーキテクチャ研究会
slide 10
一次元プロセッサアレイ(LPA)の基本構成
MEM
ALU
Registers
Comm.reg
PE
PE
PE
PE
PE
Control Processor
第165回計算機アーキテクチャ研究会
slide 11
1次元結合を選択する理由
1次元結合(LPA)
PE
PE
PE
例)
CLIP7A[’88]
AIS-5000[88]
SLAP[’87]
SVP[’90]
MAPP2200[’92]
RIPE[’93]
CNAPS[’96]
LAP[’96]
Xetal[’03]
2次元結合(SPA) 他
PE
PE
PE
PE
PE
PE
PE
PE
PE
例)
CLIP4[’76]
MPP[’80]
VisionMachine[’88]
MGAP[’93]
CAP[’93]
RTA/1[’93]
SIMPil[’99]
VisionChip[’99]
LPA
ピン数・配線数で有利
同PE数ならば
画像入出力性能は同一
低レベル画像処理性能は同一
SPA
P.P. Jonker : Why linear arrays are better image processors, ICPR 94, Vol.3, pp.334--338, 1994.
第165回計算機アーキテクチャ研究会
slide 12
LPAの基本動作
1) SIMD型算術演算
MEM
2)隣接データ参照
ALU
Registers
Comm.reg
PE
3)スカラー抽出・代入
PE
PE
PE
PE
4) PEステータス集計
Control Processor
Scalar operation / instruction broadcast /
PE status collection
第165回計算機アーキテクチャ研究会
slide 13
LPAの拡張動作
d) 命令の自律性
b)アドレッシングの自律性
a) 動作の自律性
MEM
ALU
Registers
(間接アドレッシング)
(SIMD型条件実行)
Comm.reg
c)通信・結合の自律性
PE
PE
PE
PE
PE
Control Processor
(遠距離PE間データ交換)
PE自律性拡張=ハードウェアコスト増大→取捨選択必要
第165回計算機アーキテクチャ研究会
slide 14
ターゲット・アプリケーションに着目すると・・
Sensors
Video rate
input
pixels
低レベル画像処理
pixels
前処理
ノイズ除去
ひずみ補正
中レベル画像処理
低レベル
特徴抽出
symbols
エッジ・輪郭
局所特徴に
カラー特徴
動きベクトル 基づく識別
容易に並
列化可能
領域分割
計測
統計量計測
推論等
高次特徴抽出
マッチング
モデルフィティング
LPA向け並列化手法が未整理
第165回計算機アーキテクチャ研究会
高レベル処理
slide 15
主要な7種類の画素操作グループに着目
幾何的演算(Geometric. Op. : GeO)
大域演算(Global Op.: GlO)
センサー
統計的演算
画素
Input Image X Output Image Y
Input Image X Output Image Y
点演算 (Point Op.: PO)
(Statistical Op.: SO)
低レベル処理
前処理
低レベル特徴抽出
Input Image X Output Image Y
中レベル処理
シンボル
計測
局所特徴に基づく識別
近傍演算 (Local Neigh. Op.: LNO)
Input Image X Output Image Y
Output vector /
scalar V
Input Image X
画素
高次特徴抽出
物体演算(Object Op.: OO)
Output vector /
scalar V
Input Image X
高レベル処理
(Recursive Neigh. Op.: RNO)
再帰的近傍演算
Input Image X
Output Image Y
第165回計算機アーキテクチャ研究会
slide 16
LPA向け並列化方式の開発('93~)
画素参照定義パタン
LPA向け並列化方式関連文献
1)点演算(PO)
2)近傍演算(LNO)
LPA上では自明な並列化方式
3)統計的演算(SO)
濃淡ヒストグラム計算:[Danielsson 89]で言及、
[Kyo 94] [Helman 95]で明示
4)大域演算(GlO)
DFT[Helman 95], ハフ変換[Fisher 89]
5)幾何学的演算(GeO)
並進移動[Helman 95], 90度回転 [Kyo 94]
6)再帰的近傍演算(RNO)
距離変換他[Kyo 96]
7)物体演算(OO)
伝搬処理他[Kyo 97], [Olk 97], [Olk 01]
1) ~ 7) 全体
第165回計算機アーキテクチャ研究会
4種のメモリアクセスパタンに整理 [Kyo 04]
slide 17
4種類のメモリアクセスパタンへ分類→並列化方式を整理
データ定義時の順序制約の有
LPAワーキングモデル
無
データ参照
時のローカリ
ティ
局所
性
無制約 静的制約
動的制約
PUL
No
GU
-
-
Yes
LU
LS
LD
PO,LNO SO,GlO,GeO
水平型
PE array
各PEの
ローカルメモリ
シストリック型
PE array
RNO
傾斜型
PE array
PE array
OO
自律型
処理対象画像全体
(2次元メモリ面)
PE array
Pixel Updating Line
第165回計算機アーキテクチャ研究会
slide 18
LPAの拡張仕様の(一部)採用へ
傾斜したPULの生成に必要
非連続なPULの生成に必要
d) 命令の自律性
PE array
b)アドレッシングの自律性
PE array
a) 動作の自律性
MEM
ALU
Registers
(間接アドレッシング)
(SIMD型条件実行)
Comm.reg
多少強化
c)通信・結合の自律性
PE
PE
PE
PE
PE
Control Processor
第165回計算機アーキテクチャ研究会
(遠距離PE間データ交換)
slide 19
他研究(LPA)との比較
Name
Yr.
By
PE/Chip
Bit/PE
の自律性
アドレッシングの
自律性
動作
CLIP7
83
UCL
1
16
○
○
AIS-5000
87
AIS
8
1
×
×
SLAP
87
CMU
4
20
×
○
SVP
90
TI
1024
1
×
×
IMAP1
92
NEC
8
8
○
△
RIPE
93
T.H.U.
8
16
○
×
CNAPS
96
ASI
32
16
×
○
IMAP-VISION
96
NEC
32
8
○
○
LAP
96
Sony
4320
1
×
×
SLIM-2
98
AJ.U.
64
8
○
×
Xetal
01
Philips
320
10
○
×
IMAP-CE
03
NEC
128
8
◎
◎
専用命令追加でア
ドレッシングの自律
性・動作の自律性
サポートを強化、
PE間結合も若干強
化
Ri10
03
Ricoh
224
16
×
×
演算器性能強化
並列化方式に対
する研究成果を踏
まえ、アドレッシン
グの自律性のサ
ポートを強化
'06 IMAPCAR製品化
第165回計算機アーキテクチャ研究会
slide 20
3.プログラミング手法
第165回計算機アーキテクチャ研究会
slide 21
1DC (One Dimensional C)
特徴
sepデータ構造、その専用演算子と専用制御構文
一次元プロセッサ用に構文や演算子の拡張を行った並列C言語
概要
int d;
sep char a,b,c,ary[256];
6種類の拡張
SIMD算術演算
隣接データ参照
ステータス集計
スカラー代入・抽出
アドレッシングの自律
動作の自律性
第165回計算機アーキテクチャ研究会
PE0
のa
1DC記述例
PE
b = a op c
b = :> a; (or :<a;)
d= :||a; (or :&&a;)
a:[3:] = d; d = a:[3:];
a = b [ c ];
mif (a) b = c;
PE1
のa
PE
PE2
のa
PEn-2 PEn-1
のa のa
PE
PE
Control
Processor
PE
int d
slide 22
「水平型PULの利用」:画像フィルタの例
例) エッジ検出フィルタ
y=0
y=120
y=200
y= {number of lines}
LU : 局所近傍的参照・順序制約無し定義
•データ参照は局所近傍(隣接PEからデータをもらってくる)
•順序制約無しなので、どこから始めてもよい
PULの形状・動き(画素更新順序)は本来、任意でもよい。
第165回計算機アーキテクチャ研究会
slide 23
水平型PUL:平均値フィルタの場合(1)
sep uchar src[256], dst[256];
ave33( ){
int i;
3行分を加算(SIMD算術演算)
sep int csum;
for(i=1;i<LINES-1;i++){
csum = src[i-1] + src[i] + src[i+1]; /*1*/
dst[i] = :>csum + csum + :<csum; /*2*/
dst[i] /= 9;
}
}
src[i-1]
・・・・
a6
src[i]
・・・・
b6
・・・・
c6
+
+
src[i+1]
=
csum
第165回計算機アーキテクチャ研究会
a7
+
b7
+
c7
↓
a8
・・・・
b8
・・・・
c8
・・・・
・・・・ a6+b6+c6 a7+b7+c7 a8+b8+c8
・・・・
slide 24
水平型PUL:平均値フィルタの場合(2)
ave33( ){
int i;
隣接データ参照(:>,:<) し、SIMD算術加算 “+”
sep int csum;
for(i=1;i<LINES-1;i++){
csum = src[i-1] + src[i] + src[i+1]; /*1*/
dst[i] = :>csum + csum + :<csum; /*2*/
dst[i] /= 9;
}
}
:>csum ・・・・ a5+b5+c5 a6+b6+c6 a7+b7+c7 ・・・・
+
+
水平型PUL(全PEが
同時に同じY位置の画
素を処理)により隣接
PEによるメモリアクセ
ス結果の流用が可能
に。
第165回計算機アーキテクチャ研究会
csum
・・・・ a6+b6+c6 a7+b7+c7 a8+b8+c8
+
+
:<csum
・・・・ a7+b7+c7 a8+b8+c8 a9+b9+c9
・・・・
↓
=
dst[i]
・・・・
・・・・
a5+b5+c5 a6+b6+c6 a7+b7+c7 ・・・・
a6+b6+c6 a7+b7+c7 a8+b8+c8
a7+b7+c7 a8+b8+c8 a9+b9+c9
slide 25
シストリック型PULの利用: ヒストグラム計算の例
GU : 大域的参照・順序制約無し定義
隣接間PE結合だけでは、処理のレーテンシは下げられないが、
各PEによる集計動作の並列化でスルプットを高める。
列方向集計
シストリック型
yの値(ヒストグラム
結果)を棒グラフで
現画像上に表示
行方向集計
PE array
第165回計算機アーキテクチャ研究会
slide 26
シストリック型PULの動作例
(濃淡ヒストグラム計算)
逐次処理すると:36ステップ
全PEが同時に相異なる種類の情報を集計
6ステッフ後に終了
6PEで6倍高速化
第165回計算機アーキテクチャ研究会
slide 27
傾斜型(slant)
傾斜型PULの使用: 距離変換の例
PE array
LS : 局所的参照・静的順序制約有り
int i,cnt; sep uchar sx=0,sy=0;
for(sy=0,i=0,cnt=0;i<M*(lines-1)+PENO;i++) {
sx:[0:]=1;
mif(sx & (cnt%M==0))
update( src+(sy++) ); // update pixels at the wave-front
cnt++; sx = :>sx;
}
} 動作の自律性(X方向)+アドレッシングの自律(Y方向)
The result
第165回計算機アーキテクチャ研究会
2値画像の距離変換(典型的なRNO処理)
slide 28
自律型
自律型PULの利用:領域拡張処理の例
LD : 局所的参照・動的順序制約有り
PE array
PE毎に順序情報格納領域を用意し、更新順序を動的に制御
全stackが空に
なると終了
第165回計算機アーキテクチャ研究会
slide 29
並列化方式の組み合せによる機能実現
90度回転
2回
PE
PE
PE
PE
PE
PE
細線化
+
PE
PE
+
PE
PE
PE
PE
PE
PE
PE
ラベル付け
領域拡張
+
PE
PE
PE
第165回計算機アーキテクチャ研究会
PE
PE
PE
slide 30
4.IMAPプロセッサのチップ構成と性能
第165回計算機アーキテクチャ研究会
slide 31
IMAPシリーズプロセッサのロードマップ
Peak
Performance
(GOPS,8bit)
レチクル検査装置
1000
IMAP-CE
100MHz,128PE/Chip
4-Way VLIW
100
10
1
車載画像認識
プロセッサ
IMAP-2
40MHz,
64PE/Chip
IMAPCAR
100MHz, 128PE/Chip
4-Way VLIW+MAC
IMAP-VISION
40MHz, 32PE/Chip
IMAP-1
0.1
25MHz, 8PE /Chip
1990
第165回計算機アーキテクチャ研究会
1995
2000
交通流計測
トンネル監視
2005
レチクル検査装置 屋外監視
2010
Year
slide 32
IMAP-VISIONの概要('97~)
動作・アドレッシングの自律性を備えたLPA
各PEは2KBのローカルメモリ・RISC型命令セットを有する
IMAP-VISONシステム:32PE/Chip、8チップで256PE
256 PE
array
第165回計算機アーキテクチャ研究会
Control
processor
256 PE
array
slide 33
IMAP-CE (ISSCC'03)への進化
1DC program
複合命令導入
専用命令導入
Row
Systolic
Slant
Autonomous
PE array
PE array
PE array
PE array
1DC compiler / linker
External Mem. I/F
高速自律アドレッシング
SDRAM/SSRAM
高速PEグルーピング
IMEM
4 Way VLIW PE 0
IMEM
4 Way VLIW PE 1
IMEM
4 Way VLIW PE
127
128
Video
OUT
高速隣接データ参照
Video
IN
PE間転送ビット幅拡大
第165回計算機アーキテクチャ研究会
SR0
SR1
SR2
SR3
Control Processor (CP)
P$,D$,STK RAM
Host Processor
CP/PE融合パイプライン
PE/CP間データ授受のパ
イプライン化
slide 34
IMAP-CEの諸元
(PE8: 8PEs 集積ブロック)
DPLL
11.0mm
Ext. I/F
PE8 PE8
PE8 PE8
11.0mm
IMAP-CEを実装したPCIボード
PE8
CP
PE8
PE8 PE8 PE8
PE8
PE8
PE8 PE8 PE8
PE8
PE8
トランジスタ数
32.7M (180nmプロセス)
PE数
128
消費電力:
2W~4W (1.8 V, 100MHz)
オンチップメモリ(PE): 256KB (アクセスバンド幅:12.8GB/s)
オンチップメモリ(CP): 32KB(I$) + 2KB(D$) + 1KB(Stack)
外部インタフェース: SDRAM(64b,100MHz), PCI(32b,33MHz)
第165回計算機アーキテクチャ研究会
slide 35
7つの主要画素操作グループに対する処理性能
Operation group kernels
IMAP-CE@100MHz, 1DC compiler codes
[email protected] , Intel C compiler codes
speedup
Op. Grp.
Kernel Name
PO
Color format
trans.
140
LNO
3x3 ave. filter
120
SO
Histogram
100
GlO
FFT
80
GeO
90 degree
rotation
RNO
Distance
transform
OO
Connected
component
labeling
parallelism (max.128)
8
7
GPP
IMAP-CE
Parallelism
6
5
4
60
3
40
2
1
20
0
0
PO
LNO
第165回計算機アーキテクチャ研究会
SO
GlO
GeO
RNO
OO
(Ave.)
slide 36
高並列SIMD VS SIMD命令
20
18
16
14
12
10
8
6
4
2
0
GPP(MMX)
IMAP-CE
(Ave.)
Smoothing
Canny
Var5oct
Mexican13
Gauss5
GreyOpen3
Complexity
Add2
10
9
8
7
6
5
4
3
2
1
0
# of if-clause per pixel op.
speed-up
IMAP-CE@100MHz, 1DC compiler codes
[email protected] , MMX codes
Benchmark kernels
name
PO
LNO
Add2
dyadic arithmetic
GreyOpen3
3x3 grey morphology
Gauss5
5x5 filter
Mexican13
13x13 conv.
Var5Oct
5x5 texture analysis
Canny
edge detection (3x3)
Smoothing
edge preserving
smoothing (7x7)
Only PO,LNO kernels are used du
to the nature of MMX inst.
P4比10~50倍の電力性能比
第165回計算機アーキテクチャ研究会
Purpose
slide 37
画像認識アプリケーションでの性能比較
IMAP-CE@100MHz: use 1DC
[email protected]: use C
IMAP -CE
GPP
0
20
40
60
80ms
Lane Mark Detection
Vehicle Detection
four local windows
foreward
looking camera
Search
Validate
Lane Mark Detection
第165回計算機アーキテクチャ研究会
in max. six vehicles
Tracking
vechicles
slide 38
製品化版チップIMAPCAR ('06~)
広い動作温度(-40~+85)、2W以下、高い信頼性
IMAP-CEからの進化
IMAPCARチップのダイ写真
IMAPCE
IMAPCAR
Tr数
33M
26M
プロセス
180nm
130nm
外部I/F
SDRAM
SSRAM
ピーク性能
(GOPS)
50
100
消費電力
2~4W
2W以下
コア電圧
1.8V
1.2V
(24bMAC,16bALU追加)
PE数
128
IMAPCARはNECエレクトロニクス株式会社の日本における登録商標です。
第165回計算機アーキテクチャ研究会
'06日刊工業新聞モノづくり部品大賞 大賞受賞
トヨタ・レクサスに搭載(障害物検知用エンジン)
slide 39
6.まとめ・今後の技術展望
第165回計算機アーキテクチャ研究会
slide 40
ま と め
プロセッサ設計におけるトレードオフ
IMAPアーキテクチャのアプローチ
コスト性能比優先
並列化方式整備で柔軟性低下対策
車載スペックを満足したIMAPCARの製品化
アプリレベルでP4比~50倍の電力性能比
拡張C言語プログラミング環境
第165回計算機アーキテクチャ研究会
slide 41
今後の技術展望
SIMDアーキテクチャのコスト性能比の優位性を維持しながら
柔軟性(適用範囲・プログラム容易性)を上げられないか。
コスト一定
•今後の方向性
制御関連回路
演算関連回路
汎用プロセッサ
a) 動作の自律性
演算関連回路
設計ゾーン
柔
b) アドレッシングの自律性
軟
XCコア
性
c) 結合・通信の自律性
IMAPCAR
d) 命令の自律性
メディア処理プロセッサ
制御関連
回路
設計ゾーン
但し コスト増は最小化したい
専用エンジン
設計ゾーン
性能
(eXtensible Computing Core: to appear at ICS'07)
第165回計算機アーキテクチャ研究会
slide 42
ご静聴ありがとうございました。
第165回計算機アーキテクチャ研究会