Intel® IPP- Library dependencies by domain

I want to build an application with the Intel® IPP which domain libraries do I need to link to?

Intel IPP is divided into groups of related functions. Each subdivision is called domain, and has its own header file, static libraries, dynamic libraries, and tests. The table below lists each domain's code, header and functional area.

The only way to know the exact dependencies for the Intel® IPP functions called from your application is to link to the libraries. For example, if your application uses Color Conversion functions then you must link to ippcc.lib (Windows*) or ippcc.so (Linux*). After you link, if there are unresolved symbols to functions with the prefix ippi, this means you also need to link to ippi.lib (Windows) or ippi.so (Linux). The ippcore library (ippcore.lib for Windows or ippcore.so for Linux) is required for all domains.

The file ipp.h includes Intel IPP header files with the exception of cryptography and generated functions. If you do not use cryptography and generated functions, include ipp.h in your application for forward compatibility. If you want to use cryptography or generated functions, you must directly include ippcp.h and ippgen.h in your application.

Library Dependencies by Domain

Domain

Domain Code

Depends on

Color Conversion

CC

Core, VM, S, I

String Operations

CH

Core, VM, S

Cryptography

CP

Core

Computer Vision

CV

Core, VM, S, I

Data Compression

DC

Core, VM, S

Image Processing

I

Core, VM, S

Signal Processing

S

Core, VM

Vector Math

VM

Core

 

The figure below represents the domain internal dependencies graph.

 

Note

Please avoid starting any new projects with the deprecated domains.

 
For more complete information about compiler optimizations, see our Optimization Notice.

4 comments

Top
j_miles's picture

By the way, the 'ippsr' domain have been removed in v. 7.1 of IPP. Please update article and clarify what version of IPP the dependencies are valid for.

j_miles's picture

Just a clarification on the 'ipps' dependency: For v. 7.1, it is as given in the article, i.e. 'ipps' does depend on 'ippvm' (and 'ippcore'). Thus the old comment provided by Gennady where 'ipps' is stated as only depending on 'ippcore' is thus no longer correct. This had me confused for a moment so I wanted to highlight it for others.

scutcomb's picture

This is a great category breakdown. You can verify this by looking into each DLL file with the PE Explorer app from http://www.heaventools.com and confirm the DLL description built into the .rsrc area listed for a DLL file. PE explorer also lists your import DLL list, so you can see if your DLL depends upon any other DLLs.
We needed to isolate only signal processing DLLs, and by reading each file with PE Explorer, we agree with Naveen that they all depend upon a core IPP DLL (described as ippcore above), and an IPP OMP library DLL. We will plan on deploying these as well as our set of 6 sig proc DLLs optimized for the various processor families for 32-bit systems.

Gennady F. (Intel)'s picture

Just for an update: since version 6.0, two new libraries were added into IPP.

Data Integrity: ippdi.lib (windows*) or ippdi.so (linux*)
Generated Functions: ippgen.lib (windows*) or ippgen.so (linux*)

And for the latest version Library Dependencies by Domain will looks like:
------------------------------------------------------
Domain | Library | Dependent on
------------------------------------------------------
Audio Coding ippac ippdc, ipps, ippcore
Color Conversion ippcc ippi, ipps, ippcore
Cryptography ippcp ippcore
Computer Vision ippcv ippi, ipps, ippcore
Data Compression ippdc ipps, ippcore
Data Integrity ippdi ippcore
Generated Functions ippgen ipps, ippcore
Image Processing ippi ipps, ippcore
Image Compression ippj ippi, ipps, ippcore
Small Matrix Operations ippm ippi, ipps, ippcore
Realistic Rendering ippr ippi, ipps, ippcore
Signal Processing ipps ippcore
Speech Coding ippsc ipps, ippcore
Speech Recognition ippsr ipps, ippcore
String Processing ippch ipps, ippcore
Video Coding ippvc ippi, ipps, ippcore
Vector Math ippvm ippcore
------------------------------------------------------

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.