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

Building IPP dependent code with PGOPTI instrumentation

Hugo_P_
Beginner
293 Views

Hello,

I'm trying to build some code I've "inherited", that depends on IPP, with PGOPTI instrumentation for code coverage.

While doing so I'm running into linking issues such as:

/home/src/sdk/intel/IPP/lib/linux64/libippi.a(pimorphologyca_y8---ippiDilate_8u_C1R.o): In function `y8_ippiDilate_8u_C1R':

pimorphologyca_y8---ippiDilate_8u_C1R.i:(.text+0x15c): undefined reference to `y8_ippsMalloc_64s'
pimorphologyca_y8---ippiDilate_8u_C1R.i:(.text+0x2c3): undefined reference to `y8_ippsFree'

My guess is that the disabling of automatic CPU specialization is interfering with CPU dispatching in IPP libraries, but I've been unable to work around this.

Is this not possible to do and do I need to explicitly disable instrumentation on the components that link with IPP libraries?

Could anyone provide some assistance?

Thanks,

Hugo

0 Kudos
3 Replies
Sergey_K_Intel
Employee
293 Views

Hi Hugo,

Is your command line for linker correct? I mean, does it contain all required IPP libraries? In other words, is linking without PGOPTI ok?

Regards,

Sergey

0 Kudos
Ying_H_Intel
Employee
293 Views

Right,  ippiDilate may depend on ippi.a ipps.a [ippvm.a] ippcore.a (in order).

Best Regards,

Ying

0 Kudos
Hugo_P_
Beginner
293 Views

Hello Sergey,

Yes, I forgot to mention, but linking without PGOPTI is fine.

Hi Ying,

The linker command doesn't depend on PGOPTI instrumentation and includes the mentioned static libraries. Explicitly these and in this order:

-lippcc -lippvc -lippi -lipps -lippvm -lippcore

Interestingly though, later on the linker command, some of these libraries appear again, like this:

-lippvc -lippi

Note, no reference to ipps or ippcore at that point.

I found this strange. It looks like another library that is in the component's CMakeLists.txt list of target_link_libraries has ippvc and ippi as dependencies. Adding ipps and ippcore to that solves the linking issue.

Why it linked fine without PGOPTI I don't know.

Thanks,

Hugo

0 Kudos
Reply