Developer Guide for Intel® Integrated Performance Primitives 2019
Intel® Integrated Performance Primitives (Intel® IPP) is distributed as:
The following table provides description of libraries available for linking.
Single-threaded (non-threaded) |
Multi-threaded (internally threaded) |
Threading Layer (externally threaded) |
|
Description | Suitable for application-level threading | Use only when no other form of threading is active | Implementation of application-level threading depends on single-threaded libraries |
Found in | Main package After installation: <ipp directory>/lib/<arch> |
Separate download After installation:<ipp directory>/lib/<arch>/threaded |
Main package After installation: <ipp directory>/lib/<arch>/tl/<threading_type> , where <threading_type> is one of {tbb, openmp} |
Static linking | Windows* OS: mt suffix in a library name (ipp<domain>mt.lib) Linux* OS and macOS*: no suffix in a library name (libipp<domain>.a) |
Windows* OS: mt suffix in a library name (ipp<domain>mt.lib) Linux* OS and macOS*: no suffix in a library name (libipp<domain>.a) |
Windows* OS: mt suffix in a library name (ipp<domain>mt_tl.lib) Linux* OS and macOS*: no suffix in a library name (libipp<domain>_tl.a) + single-threaded libraries dependency |
Dynamic Linking | Default (no suffix) Windows* OS: ipp<domain>.lib Linux* OS: libipp<domain>.a macOS*: libipp<domain>.dylib |
Default (no suffix) Windows* OS: ipp<domain>.lib Linux* OS: libipp<domain>.a macOS*: libipp<domain>.dylib |
_tl suffix Windows* OS: ipp<domain>_tl.lib Linux* OS: libipp<domain>_tl.a macOS*: libipp<domain>_tl.dylib + single-threaded library dependency |
To switch between Intel IPP libraries, set the path to the preferred library in system variables or in your project, for example:
Single-threaded: SET LIB=<ipp directory>/lib/<arch>
Multi-threaded: SET LIB=<ipp directory>/lib/<arch>/threaded
Threading Layer: SET LIB=<ipp directory>/lib/<arch>/tl/<threading_type>. Additionally, set path to single-threaded libraries: SET LIB=<ipp directory>/lib/<arch>
Single-threaded: gcc <options> -L <ipp directory>/lib/<arch>
Multi-threaded: gcc <options> -L <ipp directory>/lib/<arch>/threaded
Threading Layer: gcc <options> -L <ipp directory>/lib/<arch>/tl<threading_type>. Additionally, set path to single-threaded libraries: gcc <options> -L <ipp directory>/lib/<arch>
On Linux* OS and macOS* Intel IPP library depends on the following Intel® C++ Compiler runtime libraries: libirc.a, libsvml.a, and libimf.a. You should add a link to these libraries into your project. You can find these libraries in <ipp directory>/lib or <intel compiler directory>/lib folders.
Threading Layer depends on the OpenMP* or Intel® Threading Building Blocks (Intel® TBB) library according to the selected threading type. You can find these libraries in <intel compiler directory>/lib or <tbb directory>/lib folders.