画像認識向け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
© Copyright 2025 ExpyDoc