Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Initializing Dynamic Dispatching

rcm-intel
Beginner
330 Views
(First post from a relatively new user.)

We are using dynamic dispatching in our (Windows-based) application, which works fine except for the setup delay the first time a function is called. We have plenty of time to initialize, but once the data starts flowing we can't afford any extra delay. Our current solution is to make dummy IPP calls at initialization time. However I am not sure whether we need to pre-call every function that will be used at runtime, or just one, or (my current guess) one per DLL. I'm also wondering if we may have overlooked a better approach, perhaps along the lines of ippStaticInit() except for dynamic linkage.

0 Kudos
2 Replies
Vladimir_Dudnik
Employee
330 Views

Hello,

IPP DLLs does not differ from any other DLLs except big size for signal and image processing libraries. To minimize load delay you may call any single function somewhere at the beginning of your application.

You also may consider custom DLL option which allow you build IPP DLL with only functions your application using. This technique significatly reduces DLL size (as most of application may not need in all functions).

Regards,
Vladimir

0 Kudos
gol
Beginner
330 Views

I'm having the same problem as he has (see my post about IppsDivCRev_32f_I), however I *am* using a custom build of the DLL (around 10MB), and the CPU usage I get upon the first call of DivCRev depends on the amount of threads told to the library, so I think the problem is somewhere else. If the problem was the DLL loading, I don't think the number of threads would matter.

0 Kudos
Reply