views:

227

answers:

1

I've been using openCV quite a bit lately and I'm amazed at how fast it can process arrays. Is it using a special type of optimization or relying on special features of the CPU ? I'm on an Intel CPU btw.

+4  A: 

OpenCV uses the Intel Integrated Performance Primitives under the hood. this library relies on aggressive optimization as well as careful use of special CPU features (SSE, SSE2, ...)

Adrien Plisson
Thanks Adrien. So it would run quite slower on an "equivalent", say, AMD CPU ? Or is IPP also present in other brands of CPUs ?
Jelly Amma
In theory, AMD supports the same features Intel does, but Intel has been known in the past to not use such features if an AMD chip is detected. I am not sure how that applies to this product though.
CookieOfFortune
Note openCV only uses intel performance primitives if you go out and download them from intel and install them yourself. openCV is quite fast even without using performance primitives, so its worth checking to see if your speed is on account of performance primitives. Use the cvGetModuleInfo(); to find out if you have intel's performance primitive's installed.
AndyL
Thanks for the clarification Andy. I thought IPP was a hardware feature on Intel CPUs but it turns out to be a library indeed. I guess I'm back to my original question: how can openCV process so much data so fast ?
Jelly Amma