Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Using OpenCV parallelization on ARM

Hi,

I'm trying to use OpenCV 2.4.4 for the ZedBoard. It has a dual ARM Cortex-A9. The operating system is Xillinux, it is just an Ubuntu 12.04 for the ZedBoard with some extra stuff from Xillybus.

Testing a build with no special options was pretty straight forward. Then I tried one build using the following options for TBB, as suggested here:

-DWITH_TBB=ON -DBUILD_TBB=ON

The build was successful, as it was the compilation of my demo program. The problem is that I don't see any difference on the performance. I get the same fps as without TBB. The demo I use is a pretty simple motion detection. Just basic operations on video frames.

So the questions I have are the following:

  1. My code is written on C, as I later on found out that the C API is only for compatibility. Should it be on C++ to benefit from TBB?

  2. After searching for TBB accelerated functions in the online documentation, I didn't quite find a lot of them. Does TBB, at the moment, make any real difference?

  3. Based on the answer of this question, the only other option for ARM would be OpenMP (also not coming up on the online documentation). Is it more extensively used from the library, or I should only care parallelizing my own code?