Intel Parallel Studio for improving OpenCV

I would like to contribute to OpenCV making a parallel version (using OpenMP) of SURF.

Yes, yes, I know, SURF in OpenCV is already "parallel" and it uses Intel TBB, but come on it scales horribly, I'm sure some improvement can be done for sure ;)

I want to use Intel Parallel Studio tools (e.g. VTune Amplifier, Intel Advisor and Intel Inspector) for making this process not a nightmare and make the paralelization easier. However, for some of them (Intel Advisor for sure) we need to include some libraries in the src code (e.g. #include <advisor-annotate.h>) and of course editing the makefile. For example, this is the compile command for one of the Intel Advisor samples using in the tutorial:

g++ -m64 nqueens_serial.cpp -o 1_nqueens_serial -O2 -g -I /opt/intel/advisor_2017.1.1.486553/include/ -ldl


Now there is my question (and I'm afraid that the answer will be painful): OpenCV uses CMAKE and I never developed something using it (only used it for building) and I have no idea how could I integrate some Intel includes and flags necessary for this kind of profiling/improvements in the CMAKE files or if this is even possible.

Someone can help me or give me some guidelines?

edit retag close merge delete

... a wasps nest just like you say. Without a decent knowledge of the inner CMAKE pipeline this will be hell ...

( 2017-02-03 08:52:41 -0500 )edit

So happy to hear the opencv is so easy to contribute (lol). I think that "start googling about learning CMAKE" is the best suggestion that you can give me @StevenPuttemans , right? Or do you have anything better? :)

( 2017-02-03 09:02:33 -0500 )edit

You are digging right into one of the most complex tasks in the OpenCV code i guess... There is a reason why i try to leave the cmake as is. But I guess learning CMAKE basics is indeed a good start.

( 2017-02-03 13:29:56 -0500 )edit