OpenCVでTBBを有効にする(Linuxだけどね、ついでにOpenMPも)
OpenCVでTBBを有効にする(Linuxだけどね、ついでにOpenMPも)
OpenCV on linux でTBBによる並列化を有効にするための条件は、以下の2点。
- libtbb-dev をインストールする
- cmake 実行時に -D WITH_TBB = ONとする or cmake-gui でWITH_TBBをONにする
$ mkdir build
$ cd build
$ sudo apt-get install libtbb-dev
$ sudo ldconfig
$ cmake -D WITH_TBB=ON ../
$ make -j 8
※BUILD_TBB=ONにするとダウンロードとかもしてくれるっぽい。
$ ldd lib/libopencv_core.so
linux-gate.so.1 => (0xb772b000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb74c7000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb74ac000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb74a2000)
libtbb.so.2 => /usr/lib/libtbb.so.2 (0xb7474000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb738b000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7348000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb732b000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7176000)
/lib/ld-linux.so.2 (0xb772c000)
こんな感じで、TBBへの依存関係ができてれば多分オッケー。
TBBが使えない環境の場合には、OpenMPという選択肢もあり。
$ mkdir build
$ cd build
$ cmake -D WITH_OPENMP=ON ../
$ make -j 8