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

What a mess with v5.1.1 and em64t

thevisionguy
Beginner
448 Views
I tried to recompile example of ippiSample using IPP v5.1.1 & MSVC 2005 under XP x64.

The organization of the libs seems a mess and is poorly explained in the doc (Getting_Started.htm). For example, the follow paragraphs seems to suggest one needs to include both ipp*emergedm64t.lib and ipp*mergedem64t.lib. The suggested "ippcorel.lib" does not even exist!

Follow the steps below to build your application using the Intel IPP DLL-finding libraries:

  • Include ipp.h, ippcoreem64tl.lib, and the appropriate ipp**emergedem64t.lib file(s) to your project and build tree.
    • Note: You must link the ippcore functions statically (using ippcorel.lib)
  • Make sure the appropriate ipp**mergedem64t.lib file(s) are in your build tree

My impression is that the stublib/ippiem64t.lib is supposed to support the automatic processor specific DLL finding. The lib/ippimergedem64t.lib contains static libraries for all processors for static lib linking. Then what the heck is the lib/ippiemergedem64t.lib for?
Also, what does 'em64tl' stand for: lib/ippcoreem64tl.lib and stublib/ippcoreem64t.lib?

What's worse, one cannot use nm command to grep the function tables from those *.lib anymore!


0 Kudos
1 Reply
Vladimir_Dudnik
Employee
448 Views

Hello,

IPP Getting Started document absolutely correctly suggested to use emerged and merged libraries. Moreover, if you take a look on many IPP samples, they do it exactly in that way (note, that default build option for sample is to use DLLs). The reason for that is simple, merged libararies contains optimized cpu-specific code whereas emerged libraries are static dispatchers, you need to link them to be able to detect processor and switch to corresponding cpu-specific code during run-time. Note, you need to call ippStaticInit() functions to activate dispatching.

Regards,
Vladimir

0 Kudos
Reply