Transcript PPT(要約版)
局所並列画像処理を目的とした アーキテクチャの設計 福田 静人† 味岡義明‡ 天野 英晴† †慶應義塾大学 理工学部 天野研究室 ‡(株) エッチャンデス 1 発表内容 研究背景・目的 研究対象となる処理 アーキテクチャの設計 FPGAデバイスへの実装及び評価 現状報告・まとめ 2 研究背景・目的 視覚支援サービス サポータによる 視覚障がい者支援 カメラ付き 携帯電話の普及 カメラ付き携帯電話から転送された画像による 音声サポートの実現(遠隔代読、歩行支援等) 3 視覚支援サービス 利用者からネットワーク経由で送信された 画像を元に音声で遠隔サポート 遠隔代読:看板、案内板、チラシなどの代読 歩行支援:信号、標識、マークなどの読み取り 看板の文字は何か? 信号の色は? 4 視覚支援サービス 問題点 通信コスト -転送データ量、転送時間、転送にかかる料金 ⇒端末側で転送データ量を減らす処理が必要 サポータ側の負担の軽減 ‐利用者は常に使用しているわけではない ‐サポータの経験の差や、数にばらつきがある ⇒PC等を用いた自動化によるサポータ支援 サービスそのものを支援するシステムの必要性 5 発表内容 研究背景・目的 研究対象となる処理 アーキテクチャの設計 FPGAデバイスへの実装及び評価 現状報告・まとめ 6 視覚支援サービスで必要な処理 文字情報や標識、案内マーク等の読み取り 一定の特徴をもつ記号情報の抽出 取り出された記号情報の認識 記号情報の効率的な抽出に焦点 ex.画像中からの文字列の抽出 7 記号情報の抽出 画像中から効率的に記号を抽出するには? この文字を抽出するには、 この部分だけ演算を行え ばよい 同時に検出可能 局所的な並列性を生かせる処理が有効 8 局所並列画像処理アルゴリズム N×N画素の正方領域で局所的に処理を 行うアルゴリズム 厳密な数値計算の代わりに単純な数式と 局所的なデータ交換を使用 ハードウェアを用いた並列処理が前提 処理例 色情報生成 :RGB画像からW(白)、B(黒)、R(赤)、 (緑)の画像を生成 画素値移動 :重心方向に画素値を移動 他にも、幾何解析、エッジ情報生成アルゴリズムなど 9 処理例1 –色情報生成‐ 演算対象の画素と、その周囲の画素の値から 色情報画像を生成する 周囲の画素に比べて明るい 周囲の画素に比べて暗い Rの値がGの値よりも大きい Gの値がRの値よりも大きい 白 黒 赤 緑 黒の2値画像 元画像 赤の2値画像 10 処理例2 -画素値移動‐ 8近傍の画素を参照し、 局所的な重心方向に 画素値を移動 0 0 1 1 0 10 0 1 1 1 8 1 1 7 1 2 1 22 1 2 1 1 1 1 3 1 2 1 3 1 1 1 1 1 1 12 1 1 1 3 1 2 1 3 1 1 1 0 1 1 1 1 6 4 1 1 1 11 1 ハードウェアへの要求 局所的な並列性の利用 様々な局所処理の実行 処理を行う領域の大きさが変更できること 画像のサイズに対する拡張性 画像サイズの拡大にスケーラブルに対応できる こと 局所処理をターゲットとしたアーキテクチャ 12 設計方針 局所的な並列性の利用 小規模なPE(Processing Element)を複数使用 1PEで数十~数百画素を処理 PE間でデータ共有を行い、局所処理を実行 InterConnection Processing Element PE Array 13 設計方針 様々な局所処理の実行 PEごとにローカルメモリを使用 SPMD方式を用いて並列実行 プログラム上で処理領域のサイズを変更 拡張性 PEの構造を均質化、周期性を持たせる PE間のデータ共有動作を処理と分離 実装 組み込みメモリを持ち、構造に周期性のある FPGAをターゲット 14 発表内容 研究背景・目的 研究対象となる処理 アーキテクチャの設計 FPGAデバイスへの実装及び評価 現状報告・まとめ 15 アーキテクチャ → ← → ← → ← → ← PE (2.2 ) ・・・ → ← → ← → ← → ← PE (1.n ) ・・・ → ← PE (2.n ) → ← PE (n.1 ) → ← PE (n.2 ) → ← ・・・ → ← PE (2.1 ) ・・・ PE (0.n ) → ← ・・・ → ← PE (1.2 ) ・・・ PE (n.0 ) → ← PE (0.2 ) → ← → ← → ← PE (1.1 ) PE (2.0 ) → ← → ← → ← ・・・ PE (n.n ) → ← PE (0.1 ) → ← → ← PE (1.0 ) → ← → ← ・・・ PE Array Controller Host Interface PE (0.0 ) → ← → ← → ← → ← PEアレイ → ← 小規模PEを周期的 に配置 SPMDアーキテク チャ PEアレイコントローラ で全体を制御 16 アーキテクチャ MULT (16 bits) → ← → ← PE (1.n ) → ← PE (2.n ) PE (n.1 ) → ← PE (n.2 ) → ← ALU (16 bits) → ← → ← → ← → ← → ← → ← → ← ・・・ PE (n.0 ) ・・・ → ← PE (2.2 ) ・・・ PE (0.n ) ・・・ ・・・ → ← PE (2.1 ) → ← → ← ・・・ → ← PE (1.2 ) PE (0.2 ) PE (2.0 ) → ← → ← PE (1.0 ) ・・・ PE (n.n ) → ← → ← → ← → ← PE (1.1 ) PE (0.1 ) → ← → ← → ← → ← → ← ・・・ PE Array Controller Host Interface PE (0.0 ) → ← → ← → ← PEアレイ → ← Register file 16 Bit×16 Local Memory 16 KByte Communication Controller Neighbor PEs (UP, DOWN, RIGHT, LEFT) 17 Processing Element MULT (16 bits) 16bit RISCプロセッサ 4段パイプライン 16bitのALUと固定小数点乗算器 アルゴリズムの実行と通信制御 ローカルメモリ 各8KBの命令メモリとデータメモリ データメモリの境界は4/8/16bit 通信コントローラ PE間のデータ共有機構 上下左右のPEと16bit幅で接続 転送バッファを介して転送 プロセッサとは独立して動作 ALU (16 bits) Register file 16 Bit×16 Local Memory 16 KByte Communication Controller Neighbor PEs (UP, DOWN, RIGHT, LEFT) 18 → ← PE → ← PE → ← PE → ← → ← PE → ← PE → ← → ← PE → ← → ← PE → ← → ← PE PE → ← → ← → ← → ← → ← → ← PE PE → ← → ← → ← → ← → ← → ← → ← → ← → ← PE PE → ← → ← → ← PE PE このPEだけでは 検出できない → ← PE → ← 近傍のPEとの データ共有が必要 → ← PE → ← → ← → ← → ← PE PE → ← → ← → ← → ← → ← → ← → ← PE PE PE → ← → ← → ← → ← → ← → ← → ← PE → ← → ← PE → ← → ← → ← PE → ← → ← → ← → ← 局所処理の実現方法 19 局所処理の実現方法 ⇒ ⇒ ⇒ ⇒ PE 12 PE 1 PE 1 ⇒ ⇒ PE 0 ⇒ ⇒ 12 02 PE 0 1つのPEからの データの流れ方は固定 転送回数を リセット 転送回数に制限 2 ⇒ PE 12 ⇒ PE 02 PE ⇒ PE 1 PE ⇒ ⇒ ⇒ PE 0 PE PE ⇒ ⇒ PE 1 ⇒ 02 PE 1 ⇒ PE ⇒ PE 0 PE 1 ⇒ PE 0 PE 0 PE 0 1 ⇒ PE 12 ⇒ PE 0 1 ⇒ PE 0 ⇒ PE プログラムによって 共有する範囲を変更 データ共有動作とアル ゴリズムの実行を分離 20 PEアレイへのデータ供給 命令データのブロードキャスト Select0 Select1 転送を行いつつ 命令データを書き込み Halt PE Array Controller Host Interface PE Select2 Select3 外部からローカルメ モリにアクセス可能 PE PE PE Halt 21 PEアレイへのデータ供給 画像データの読み込み/書き込み Select0 Select1 Select2 Select3 このPEのみローカル メモリにアクセス可能 Halt PE Array Controller Host Interface PE PE PE PE Halt 22 発表内容 研究背景・目的 研究対象となる処理 アーキテクチャの設計 FPGAデバイスへの実装及び評価 現状報告・まとめ 23 実装 小規模PEを周期的に配置するアーキテク チャ ローカルメモリを中心とした構造 製作コストを抑える 周期的に分散配置された組み込みデバイスとロジック であるFPGAは実装に適する 24 実験ボード SSRAM SDRAM Virtex-II Quick Logic SSRAM バイオインフォマティクス用リコンフィギャラブルアクセラレータボード Virtex-II Quick Logic SyncBurst SRAM SDRAM XC2V6000-4BF957C QL5064-PB456C-66B(PCIインタフェース) 2MByte × 8 32MByte × 2 実装結果(PEあたり) Slice Local Memory Multiplier 1,639 16KB (Block RAM × 8) 1 (MULT 18x18) 25 拡張性の評価 PEアレイのサイズと実装評価 100 50 90 80 40 60 50 30 Slice使用率 動作周波数 40 20 動作周波数 Slice使用率 70 30 20 10 10 0 0 1x1 2x2 3x3 4x4 PEアレイサイズ 26 局所処理方法の考察 27 発表内容 研究背景・目的 研究対象となる処理 アーキテクチャの設計 FPGAデバイスへの実装及び評価 現状報告・まとめ 28 まとめ 29 現状報告 30 ------------------- 31 研究背景・目的 視覚支援サービス サポータによる 視覚障がい者支援 カメラ付き 携帯電話の普及 カメラ付き携帯電話から転送された画像による 音声サポートの実現(遠隔代読、歩行支援等) PC等を用いたサービスの自動化、サポータ支援 32 視覚支援サービス 利用者が送信した画像を元にサポート 遠隔代読:看板、案内板、チラシなどの代読 歩行支援:信号、標識、マークなどの読み取り サービスそのものを支援する システムの必要性 問題点 サポータ側の負担の軽減 画像撮影によるプライバシーの問題 画像転送にかかる通信コスト 33 視覚支援サービスで必要な処理 サービスの内容 文字情報や標識、案内マーク等の読み取り ⇒ 一定の特徴をもつ記号情報の抽出 ⇒ 取り出された記号情報の認識 一般的な方法 フーリエ変換、ハフ変換、ヒストグラム作成etc… ⇒ 精度は高いが計算コストがかかる。 ⇒ 記号という局所的な図形に対して並列性が生かせない 局所的な並列性を生かせる処理が必要 34 局所処理の実現方法 局所処理を行う InterConnection Processing Element PE Array 処理を行うPE 近傍のPEと PE Array データ共有 35 特徴 新規性 局所並列性の利用を目的としたハードウェア 拡張性 PEの構造を均質化、周期性を持たせる PE間のデータ共有に同期を必要としない 実装 製作コストを抑えるため、組み込みメモリを持ち、 構造に周期性のあるFPGAをターゲットに実装 36 16bit RISC プロセッサ 局所処理/通信制御に使用 4段パイプライン 16bit×16の汎用レジスタ 命令セット 局所処理を行うための専用の命令体系 クロック供給を止めるSLEEP命令 固定小数点乗算器 整数/固定小数の乗算、アドレス計算に使用 タイマ PE間のアルゴリズムレベルでの同期に使用 37 データ共有動作 転送回数が2の場合 PE Array 38 設計方針 局所的な並列性の利用 小規模なPE(Processing Element)を複数使用 1PEで数十~数百画素を処理 PE間でデータ共有を行い、処理を実行 InterConnection Processing Element PE Array 処理を行うPE 近傍のPEと PE Array データ共有 39 ------------------- 40 → ← → ← PE → ← → ← PE → ← PE → ← → ← PE → ← PE → ← → ← PE → ← → ← → ← → ← → ← → ← PE → ← → ← → ← → ← PE PE PE → ← PE → ← → ← PE PE → ← → ← → ← → ← → ← PE → ← → ← → ← PE PE → ← → ← → ← → ← PE → ← → ← → ← → ← PE PE PE → ← → ← → ← → ← → ← PE → ← PE → ← → ← → ← → ← → ← → ← PE → ← → ← PE → ← → ← → ← → ← → ← PE → ← → ← 41