Merged Dispatching

Some applications use only a few Intel IPP functions and require a small memory footprint. Hence using the static link libraries via the emerged libraries offers both the benefits of a small footprint and optimization on multiple processors.

The emerged libraries (such as ippsemerged.lib) provide an entry point for the non-decorated IPP functions, and the jump table to each processor-specific implementation. When linked with your application, the function then calls corresponding functions in the merged libraries in accordance with the CPU setting detected by functions in ippcorel.libThe emerged libraries do not contain any implementation code.

The emerged libraries require initialization before any non-decorated functions can be called. One may choose the function ippStaticInitBest() that initializes the library to use the best optimization available (the same waterfall procedure as in the dynamic link case), or the function ippStaticInitCPU() that lets you specify the CPU.

A schematic graphic may help better explain the way in which the dispatcher operates: in the given example the specific Intel IPP function, ippsAdd, is available in three copies: for the Intel® Pentium® processor (px), Intel® Pentium® III processor (a6), and Intel® Pentium® 4 processor (w7). The dispatcher determines the type of the processor and then selects the corresponding optimized function, for the Intel Pentium 4 processor, in this case.