Intel ®IPP version 8.1 – Custom DLL

The Motivation:

Many applications use only a few Intel ® Integrated Performance Primitives (Intel ®IPP) functions and it may be convenient for you to use a custom DLL that contains the required functions only. 

The Cause of the Problem:
    The Building Custom DLLs tool has been accidentally removed from product versions of IPP v8.0 and 8.1. This problem would be fixed the next release.
The current article shows how customers can build your owner custom dll for windows based on example of the code attached to this article.
The example is based on MVSC2010 solution (custom_dll.sln).
There two files into this project:
Dllmain.c – source file for Building Custom DLLs
Export.txt – definition file, contains a list of the IPP functions names you are going to use.

In that solution, just for example, were used the following functions:
    ippsGetLibVersion
    ippiGetLibVersion
    ippsRandUniform_Direct_64f

For building process were used static non-threaded libraries.
The path to these libraries set explicitly via selecting Select Configuration Properties>Linker>Input and add the required Intel IPP libraries (for that example static link: 
ippimt.lib ippsmt.lib ippcoremt.lib ) to the Additional Dependencies field.

More details how to Automatically Linking Your Microsoft* Visual Studio* Project with Intel IPP – please refer to the IPP User’s Guide ( see chapter “Configuring the Microsoft* Visual Studio* IDE to Link with Intel® IPP”).

In the case if you would like to use functions from another IPP domains, please refer to the
“Library Dependencies by Domain” follow the link: http://software.intel.com/en-us/node/503929

Example of the code:

Below the example uses ippsGetLibVersion, ippiGetLibVersion and IppsRandUniform_Direct_64f functions only and linked with custom dll.

The building line is like the follow:
icl test_custom.c /I"$(IPP_INCLS)" ipp_custom_win32.lib  

C:\_tmp\ipp81_customdll_win32.exe

 ippSP AVX (g9) 8.1.0 (r41650)
 ippIP AVX (g9) 8.1.0 (r41650)

 0 884998149
 1 -1635778580
 2 2063597520
 3 -910163967
 4 -1191182354

.......................

.......................

 19 -1910505472
 20 -1086324736
 =====  the test passed

****************************************************************************************************************************************************************************
The examples show how to make custom dll for all supported OS and platforms would be provided into one of the nearest updates/releases. Please stay tuned

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