先にCPUかGPUか専用回路かの記事にHalideについてのメモを追記しましたが、調査中のリンクが増えてきたので、別記事といたしました。
ソフトウェアによる画像処理の記述には、改良の余地がかなりあることを次の記事から知りました。
画像処理においてはメモリアクセスがボトルネックになることが多いので、配列全体に対する演算を2回行ったときには、そのため、効果的に書かれたライブラリ(もしくは専用言語)との間で圧倒的な差が生じるということです。
- qiita Halideによる画像処理まとめ
- qiita Halide入門とOpenCVとの比較
例えば入力画像を二乗して20を足すコードを書くとします.
計算の結果,
OpenCVは73 ms
Halideは9.8ms
と圧倒的な違いがありました.
-
github atinfinity/lab Halide
-
Halide a language for image processing and computational photography
OpenCV がHalide対応でさらに高速化されたようです。
August, 2017
高速化されメインリポジトリに移動したdnnモジュール,Halide対応,複数の最適化,その他の改善を含んだOpenCV 3.3がリリースされました.