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

OMP abort

m_roessler
Beginner
597 Views

Hi,

since I've installed IPP v6.0, my OpenCV sample files won't start anymore. I get the following error message:

"OMP abort: Initializing libiomp5md.dll, but found libguide40.lib already initialized.

This may cause performance degradation and correctness issues. Set environment variable KMP_DUPLICATE_LIB_OK=TRUE to ignore this problem and force the program to continue anyway. Please note that the use of KMP_DUPLICATE_LIB_OK is unsupported and using it may cause undefined behavior. For more information, please contact Intel Premier Support."

How can I avoid this?

btw: do you know if the OpenCV libs (part of the original OpenCV setup file) were compiled using the Intel Compiler?

0 Kudos
3 Replies
Vladimir_Dudnik
Employee
597 Views
Hello,
starting from IPP 6.0 we moved to new Intel OpenMP library (libiomp5) which is compatible with Microsoft OpenMP implementation. Unfortunately application can't use both old libguide40 and new libiomp5 libraries simultaneously. That mean you need to rebuild your applications which use OpenMP API to link them with either Microsoft OpenMP or Intel new OpenMP implementation in order to make them work with IPP DLLs which were built with new Intel OpenMP library.
Regards,
Vladimir

0 Kudos
m_roessler
Beginner
597 Views

What do the original OpenCV dlls link against - Microsoft's OpenMP or Intel's OpenMP? (DependencyWalker didn't give an answer)

Is libguide40.dll Microsoft's version of OpenMP and libiomp5md.dll Intel's version? In the IPP installation directory, libguide40.dll is contained, too. Why, if it should be replaced by libiomp5md.dll?

When I load the original OpenCV libs like cv100.dll or cxcore100.dll, is libiomp5md.dll loaded automatically (IPP v6.0 installed)?

I've got the following situation: a host application named VVVV ships with OpenCV dlls (including libguide40.dll). I cannot rebuild this exe, because I don't have its sourcecode. Since I've installed IPP, VVVV.exe doesn't start anymore.

Can you tell me, which library loads libiomp5md.dll and which loads libguide40.dll?

0 Kudos
Vladimir_Dudnik
Employee
597 Views
Intel has two version of OpenMP run time libraries, the old one is libguide40 and the new one is libiomp5. The IPP DLL libraries were built with libiomp5 and they will conflict with application which linked with libguide40.
Vladimir

0 Kudos
Reply