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