Using Intel IPP threaded static libraries

Using Intel IPP threaded static libraries

Dear Customers,

Intel IPP V5.3 Update 1 release introduced threaded static libraries, which provide threading optimization in the static libraries. These libraries will also be included in the upcoming IPP 6.0 Beta release. Hope this new feature will be helpful for your application. Your feedback is also very important to us. Please feel free to submit your questions or comments into Intel Premier Support website or in the user forum.

The following are some FAQs about new threaded static libraries:

Which version of Intel IPP begins to support threaded static libraries?

Intel Integrated Performance Primitives (Intel IPP) V5.3 Update 1 release introduced new threaded static libraries, which supports additional threading optimization in the static library. In the previous releases, multi-threading optimization is only supported in the dynamic libraries.

What is the advantage of using threaded static libraries?

Many applications use only a few Intel IPP functions. Users can choose to link with threaded static libraries with the benefits of a small footprint from static linkage and threading optimization for multi-core processors. Users can also choose to build a customized DLL from threaded static libraries. The customized DLL contains only the Intel IPP functions used in the users application.

How can I link with threaded static libraries?

The Intel IPP provides merged threaded static libraries "*merged_t" in the lib directory. To statically link with threaded static libraries with CPU dispatch, users need to add *emerged, *merged_t, ippcorel_t, and libguide into linking command. If the application is not compiled with Intel Compiler, users also need to include additional Intel Compiler runtime libraries. Here are the runtime libraries needed for different platforms:

Windows*:

IA32 application: libircmt.lib libmmt.lib svml_dispmt.lib

Intel 64 application: libircmt.lib libmmt.lib svml_dispmt.lib

IA64 application: libircmt.lib libmmt.lib

Linux*:

IA32 application: libimf.a libsvml.a libirc.a

Intel 64 application: libimf.a libsvml.a libirc.a

IA64 application: libimf.a libirc.a

Mac OS*:

IA32 application: libimf.a libsvml.a libirc.a

Intel 64 application: libimf.a libsvml.a libirc.a

The following are some linkage examples for threaded static libraries:

>icl myapp.c ippsemerged.lib ippsmerged_t.lib ippcorel_t.lib libguide.a

Linking with Intel IPP signal processing libraries for Windows*, and with Intel C++ Compiler.

>cl myapp.c ippiemerged.lib ippimerged_t.lib ippsemerged.lib ippsmerged_t.lib ippcorel_t.lib libguide.lib libircmt.lib libmmt.lib svml_dispmt.lib

Linking with Intel IPP image processing and signal processing libraries for Windows*, and with Microsoft* Visual C++*.NET Compiler.

>gcc myapp.c libippiemerged.a libippimerged_t.a libippcorel_t.a libguide.lib libimf.a libsvml.a libirc.a

Linking with Intel IPP image processing libraries for Linux*, and with GCC Compiler.

How can I control threading behavior in the threaded static libraries?

Intel IPP implements multi-threading optimization with OpenMP* directives. Users can choose either OpenMP* environment variables (e.g OMP_NUM_THREADS) or Intel IPP threading APIs to control the threading behavior. Please refer to IPP Threading/OpenMP* FAQ page for further information.

How can I build Custom DLLs using threaded static libraries?

An updated will post into Intel IPP support website site soon. Users can also submit support issue into Intel Premier Support to request the new sample code.

1 post / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.