Contents
Using the Intel® IPP Custom Library Tool GUI Version
Using the Intel® IPP Custom Library Tool Console Version
The Intel® Integrated ® Primitives (Intel® IPP) Custom Library Tool enables you to build your own dynamic library that contains only the Intel® IPP functionalities that are necessary for your application. A custom dynamic library has a much smaller file size in comparison with Intel IPP dynamic libraries from the Intel IPP package. The dynamic library contains all optimized variants of functions and the dispatcher inside the library.
Intel IPP Custom Library Tool provides a smooth transition to a new Intel IPP version: you can easily build the same custom dynamic library from the latest version of Intel IPP and substitute the custom dynamic libraries in your application without relinking.
There are two versions of the Intel IPP Custom Library Tool: a Graphic User Interface (GUI) version and a console version. Refer to Using the Intel® IPP Custom Library Tool GUI Version and Using the Intel® IPP Custom Library Tool Console Version for instructions on how to use the corresponding tool version.
If you enable participation in Intel® Software Improvement Program during installation, the Intel IPP Custom Library Tool will send to Intel the list of Intel IPP functions that you select for your custom dynamic libraries. This enables us to understand which Intel IPP functions are more popular and optimize those functions in the first priority.
ipp/tools/custom_library_tool/ipp_custom_library_tool_gui
. The application
detects the compilers_and_libraries
package by relative path from the tool installation.
If the package cannot be detected, the application prompts you to specify the location of the compilers_and_libraries
package.After configuring all parameters and selecting the necessary functions, click Autobuild to build the custom dynamic library, or click Save build script to create a native shell script to build the custom dynamic library. The tool will prompt you to enter the location for the resulting script.
To save the current configuration to a project file, go to the Project menu and save the project.
Known issues:
To create a custom dynamic library using the console version of the Intel® IPP Custom Library Tool, do the following:
Create a list of the Intel IPP functions to be exported into your custom dynamic library. The tool can parse map files, project files from the GUI version, or text files that contain one Intel IPP function name on each line. See the image below for an example text file.
Run
ipp_custom_library_tool
with the following parameters:
ipp_custom_library_tool -n <library name> -l <function list> -o <output path> [options...] [-h]
See the table below for the full list of options:
Option Group | Option | Description |
---|---|---|
Generation mode | -build |
Automatically build the dynamic library (default) |
-save |
Generate script (requires pre-defined environment to build) | |
Environment | -c <path> |
Path to the Compilers and Libraries directory |
-a <path> |
Path to the Android* NDK directory | |
Architecture | -intel64 |
Dynamic library will be created for the Intel® 64 architecture (default) |
-ia32 |
Dynamic library will be created for the IA-32 architecture | |
Threading | -st |
Dynamic library will be created from single-threaded libraries (default) |
-mt |
Dynamic library will be created from multi-threaded libraries | |
Target | -linux |
Dynamic library will be created for Linux* target (default) |
-android |
Dynamic library will be created for Android* target (path to the Android* NDK directory required) |
Here is an example of the build command:
ipp_custom_library_tool -build
-n my_library -l "my_project/ipp_functions.txt"
-o my_project -intel64 -mt -linux
See the table below for an explanation of the parameters used in the example:
Tool Mode: |
build |
Library name: |
my_library |
Function list: |
my_project/ipp_functions.txt |
Output folder: |
my_project |
Target Architecture: |
Intel® 64 |
Threading Mode: |
Multi-threaded |
Target System: |
Linux* OS |
The package size is much smaller if you link with a custom DLL. The following table compares the contents and size of the packages for an end-user application linked with the custom dynamic library and an application linked with the standard Intel IPP dynamic libraries for Linux*, respectively:
Application linked with a custom dynamic library |
Application linked with Intel IPP dynamic libraries |
---|---|
ipp_test_app |
ipp_test_app ippi.so ippie9.so ippik0.so ippil9.so ippim7.so ippimx.so ippin0.so ippin8.so ippiy8.so ipps.so ippse9.so ippsk0.so ippsl9.so ippsm7.so ippsmx.so ippsn0.so ippsn8.so ippsy8.so ippcore.so |
Package size: 0.1 Mb |
Package size: 121.5 Mb |
Smooth transition to a new Intel IPP version: you do not need to relink your project with the new Intel IPP version; it is enough to rebuild your custom DLL with the new Intel IPP version.
Intel, and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others.
© 2016 Intel Corporation
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Notice revision #20110804 |