2015年2月17日火曜日

Raspberry Pi 2のOpenCVのパフォーマンスの改善を試みた

OpenCVのオプション、-DENABLE_VFPV3=ONを設定し、OpenCVをビルドしなおしてみた。

残念ながら、自作のベンチマークの処理時間は、誤差ぐらいの時間しか違いがなかった。


configureの設定のコンパイラ部分を参考に載せておく
ここに、-march=armv7-a mfpu=neon-vfpv4 がつけば良いのだが、現状-mfpu=neonだけで、ENABLE_VFPV3の設定も行われていない気がする。


C++ Compiler:                /usr/bin/c++  (ver 4.6.3)
C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG  -DNDEBUG

C Compiler:                  /usr/bin/gcc
C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -fdiagnostics-show-option -pthread -fomit-frame-pointer -mfpu=neon -ffunction-sections -O3 -DNDEBUG  -DNDEBUG


2/17追加

opencv2410/cmake/OpenCVCompilerOptions.cmakeを見てみると

   if (ENABLE_NEON)
    add_extra_compiler_option("-mfpu=neon")
  endif()
  if (ENABLE_VFPV3 AND NOT ENABLE_NEON)
    add_extra_compiler_option("-mfpu=vfpv3")
  endif()

となっており、NEONの場合、VFPV3は有効にならない設定である

1 件のコメント:

  1. ODROID-U3(Cortex-A9クアッドコア)上のLinuxで試した時はTBBを有効にすると高速化する関数がありました.また,2.4.xではNEON実装があまりないのでNEON有効にしても恩恵が得られないのですがmasterブランチではNEON実装がそこそこ増えているようです.

    返信削除