VLIWプロセッサによる距離画像生成の高速化

距離画像とは, カメラから物体までの距離を視覚化した画像のことであり, 近いものを明るく, 遠いものを暗く表示する. 距離画像は,通常, 2台のカメラからなるステレオ・カメラから生成される. 本プロジェクトでは, ステレオ距離画像生成処理に対し, VLIW 型メディアプロセッサ FR-V, およびメディア演算 命令を塔載した汎用マイクロプロセッサを用い, 処理速度および消費電力の観点から評価, 比較を行った. いずれのプロセッサでも メディア演算命令を用いることで飛躍的に処理速度が向上したが, 特に FR550 は処理速度, 消費電力の両点において最も優れた結果が得られ, モバイル製品等への組込用プロセッサ として適していることを示した. また, FR550 に絶対値の総和を求める拡張命 令の存在を仮定すると, ステップ数にして約 32% が削減でき, さらに命令並列度の改善を施すことで これを約 52% まで引きあげることができることを示した.

関数/ループ多重再利用および並列事前実行

区間再利用(以下再利用と略す)とは, 命令区間において, 過去に出現した同一入力による実行の際には, 再度命令列を実行することなく, 過去の実行結果の再利用により, 高速化を図ることである. また, 事前実行とは, あらかじめ予測した入力値に基づいて実行結果を登録しておくことにより, 入力が単調に変化する場合など, 過去の実行結果の単純な再利用では効果がない局面においても高速化を図ることである. 第1の課題は既存ロードモジュールをいかに高速化するかである. 第2の課題は, 再利用区間に局所的な入出力を排除しながら, いかに大きな命令区間を確保するかである. 第3の課題は, 単調変化に対していかに追随するかである. 第4の課題は, いかにキャンセルを排除するかである. 第5の課題は, いかにプログラミング時の直接利用を可能とするかである. 本プロジェクトでは, 関数およびループ構造に対して, 多重再利用や並列事前実行を適用することにより, SPARC Application Binary Interface にしたがって作成されたプログラムを高速化する手法を提案した. 本提案の特長は, コンパイラによる専用命令の埋め込みを必要とせず, 実行時に命令を解析することにより 関数およびループの多重構造を検出して高速化を図る点にある.

Stanford ベンチマークでは最大 75%, SPEC95 ベンチマークでは最大 45% のサイクル数を削減できることを示した. また, 性能を低下させることなく, 再利用表を縮小する方法について検討し, 約半分の大きさにできることを明らかにした.

曖昧再利用の応用

本プロジェクトでは, 区間再利用の応用として, カメラ画像を用いたステレオ画像処理において, 最も計算量を要する視差測定部に対し関数再利用を適用することにより, 関数再利用の有効性を示した. 関数あたりに計算するピクセル値差の多重度を増やす一方, 入力のマッチングに寛容さを持たせる曖昧再利用を適用することで, 再利用による効果を上げつつ再利用のヒット率も保つことができることを示した. オリジナルプログラムと比較した場合において, 曖昧再利用を適用した実装では, 最大 88% のサイクル数を削減でき, 汎用的な再利用機構で専用のメディア演算命令に匹敵する効果が得られた.

また, MP3 エンコーダに対して区間再利用の適用可能性を検討し, 高速化を行った. 特に, 入力値に許容範囲を設ける曖昧再利用を適用することにより, 更なる高速化を図った. エンコーダを分析し, 各処理部を対象とした合計 20 種類の再利用適用手法を提案し, それぞれの効果について評価を行った結果, 手法を単独で適用した場合, 再利用を全く適用しないものに比べて最大 25% の命令ステップ数を削減することができた. また, 効果のあった手法を複数組み合わせて適用した結果, 再利用処理のオーバヘッドを含めても最大で約 30% のサイクル数を削減することができた.


www@lab3.kuis.kyoto-u.ac.jp