Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.
6714 Discussions

"Function is not match with any IPP function: ippiAlphaCompC_8u_C1IR" with ipp_custom_lib_tool

Chris_J_3
Beginner
381 Views

I'm trying to create my own shared library using ipp_custom_lib_tool from IPP 9.0 Update 3 on Ubuntu 14.04.1 64-bit.

I'm using the following export.txt:

ippiSet_8u_C1R
ippiSet_16u_C1R
ippiAlphaCompC_8u_C1IR
ippiResizeGetSize_8u
ippsMalloc_8u
ippiResizeLinearInit_8u
ippiResizeGetBufferSize_8u
ippiResizeLinear_8u_C1R
ippiResizeGetSize_16u
ippsMalloc_16u
ippiResizeLinearInit_16u
ippiResizeGetBufferSize_16u
ippiResizeLinear_16u_C1R
ippiFree

And running:

. "$INSTALL_DIR"/bin/compilervars.sh -arch intel64 -platform linux
"$INSTALL_DIR"/ipp/tools/intel64/custom_lib_tool/ipp_custom_lib_tool -l export.txt -o $HOME -p mylib -intel64

The resulting output is:

Function is not match with any IPP function: ippiAlphaCompC_8u_C1IR
Creating a folder for the project...
Creating main.c file...
Creating export file...
Build for Intel64 architecture...

The library is successfully created in: /home/chris/mylib
Threading mode: single-threaded

The .so is generated, but does not contain any symbols for ippiAlphaCompC_8uC1IR. When I do the same thing with ippiAlphaCompC_8u_C1R, everything works correctly. 

Are the in-place functions not able to be included in the custom lib? Am I missing an option somewhere?

0 Kudos
2 Replies
Chris_J_3
Beginner
381 Views

I've solved this myself, albeit in a sub-optimal way.

I purposely made it so ipp_custom_lib_tool fails to build the .so, leaving the generated build files (build_intel64.sh, mylib.def, and main.c) in the destination directory.

I modified mylib.def to include the function I wanted and ran build_intel64.sh with my custom def additions.

The result is an .so with all the symbols I specified.

0 Kudos
Sergey_K_Intel
Employee
381 Views

Hi Chris,

The list of IPPI functions matched by the tool is in "ipp_custom_lib_tool/src/ippi_list.h" file.

Unfortunately, in IPP 9.0.3 it is static and may be not fully synchronized with actual content of IPP library (include/ippi.h file).

If you update this ippi_list.h file with function list from ippi.h (you can use grep and any of programmable text editor) and rebuild ipp_custom_lib_tool application, you must be able to build what you want.

We updated this tool with ability to generate the list of functions "on-the-fly" from content of IPP "include" directory, but this feature will be available in new versions of IPP only.

0 Kudos
Reply