Ask Your Question
1

Confirm that Intel IPP loads in OpenCV 2x

asked 2013-04-11 14:08:08 -0600

AndyL gravatar image

updated 2013-04-11 14:16:12 -0600

What is the preferred method of confirming that Intel's Integrated Performance Primitives were correctly linked and available at runtime?

For OpenCV 1.x I used to run:

cvGetModuleInfo()

Which would display intel's integrated performance primitive DLLs that were loaded at runtime and I would therefore know that IPP was correctly installed. Now though, I am using OpenCV 2.4.3 statically linked against Intel's Integrated Performance Primitives 7.1. cvGetModuleInfo() doesn't indicate that IPP 7.1 is available.

Is that because this is no longer the right way to check? Or is something else going on?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
1

answered 2013-04-12 02:56:52 -0600

Basically from OpenCV 2.4.4 and on, you do not need to configure TBB and IPP anymore when using prebuilt binaries. They are configured this way to use it when your system supports it. This reduces the amount of manual configuring.

See the changelog explanation:

Added universal parallel_for implementation using various backends: TBB (cross-platform: http://threadingbuildingblocks.org), OpenMP (cross-platform: http://en.wikipedia.org/wiki/OpenMP), Grand Central Dispatch (iOS/MacOSX: http://en.wikipedia.org/wiki/Grand_Central_Dispatch), Concurrency (Visual Studio 2010 or later: http://msdn.microsoft.com/en-us/library/dd492418.aspx), C= (http://www.hoopoesnest.com/cstripes/cstripes-details.htm). Many exiting parallel OpenCV algorithms have been converted to the new primitive. Therefore, you can enjoy performance improvements even without having to install TBB and ship it with OpenCV-based applications.

edit flag offensive delete link more

Comments

You say this is for OpenCV 2.4.4 Does it apply for 2.4.3? Also Intel's IPPs aren't just for parallelization. Under OpenCV 1.1 they implemented many functions much more quickly including some of the contour finding algorithms. Do these other things that you mention actually rival IPP in terms of performance enhancements?

AndyL gravatar imageAndyL ( 2013-04-14 15:39:25 -0600 )edit

And how do they "use it when the system supports it?" IPP for example no longer seems to use DLL's that are loaded at runtime as they were in OpenCV 1.1?

AndyL gravatar imageAndyL ( 2013-04-14 15:40:03 -0600 )edit

Im sorry, guess you will need someone with more experience to answer this one :) I just thought of the post and added it as information for you :)

StevenPuttemans gravatar imageStevenPuttemans ( 2013-04-15 00:39:48 -0600 )edit
1

Thanks StevenPuttermans, I do appreciate the post. Hope I didn't sound unappreciative. :) Its a good lead. Hopefully I can find out more. For the moment I'm stuck on an even more frustrating problem, see: http://answers.opencv.org/question/11600/can-opencv-2x-be-compiled-with-mingw-w64-through/

AndyL gravatar imageAndyL ( 2013-04-15 07:13:27 -0600 )edit

I have not yet compiled openCV myself once, since I think it is not needed as long as prebuilt binaries are available and I can skip the part of trying to work around all the problems I see that people face.

StevenPuttemans gravatar imageStevenPuttemans ( 2013-04-15 08:12:12 -0600 )edit
1

Ok. Well so as I understand it, I need to compile 64 bit binaries because I want my eventual code to use both OpenCV as well as third party precompiled 64 bit binaries for a hardware framegrabber I have. Thanks, though.

AndyL gravatar imageAndyL ( 2013-04-15 08:51:30 -0600 )edit

Question Tools

Stats

Asked: 2013-04-11 14:08:08 -0600

Seen: 803 times

Last updated: Apr 12 '13