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

Does IPP 7.0 work on Ubuntu 11.10?

hoangnguyen79
Beginner
387 Views
Hi,

I installed IPP 7.0 on Ubuntu 11.10. But it does not work. I keep getting weird linking error. E.g:

/opt/intel/ipp/lib/ia32/libippi.a(pialloc_split_p8_ippiFree.o)||In function `p8_ippiFree':|
pialloc_split_p8_ippiFree.i|| undefined reference to `ippFree'|

Although I'm sure that libippcore.a has been found by the linker.

Please help. Tanks!
0 Kudos
5 Replies
Jeffrey_M_Intel1
Employee
387 Views

Hello,

I've had good results with 64 bit Ubuntu 11.10.

Just to verify that your setup works, here is a quick test program:


#include "ipp.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
ippInit();
const IppLibraryVersion *lib = ippsGetLibVersion();
printf("%s %s\n",lib->Name, lib->Version);
return 0;
}


Does something like this work for you?

g++ -o helloipp helloipp.cpp -I$IPPROOT/include -L$IPPROOT/lib/intel64 -lipps -lippcore


The "Library Dependencies by Domain" section of the IPP User's Guide might also help.

Best regards,

Jeff

0 Kudos
hoangnguyen79
Beginner
387 Views
Hi Jeff,

Thanks so much for replying.
I tried exactly your example, as follows:

IPPROOT=/opt/intel/ipp
LD_LIBRARY_PATH=/opt/intel/lib/ia32:/opt/intel/ipp/lib/ia32:/usr/lib:/usr/local/lib:usr/lib/i386-linux-gnu
export IPPROOT
export LD_LIBRARY_PATH
g++ -o helloipp helloipp.cpp -I$IPPROOT/include -L$IPPROOT/lib/ia32 -lipps -lippcore

and here is what I got:

/opt/intel/lib/ia32/libiomp5.so: undefined reference to `pthread_atfork'
collect2: ld returned 1 exit status

then I tried adding -pthread, as follows:g++ -o helloipp helloipp.cpp -I$IPPROOT/include -L$IPPROOT/lib/ia32 -lipps -lippcore -pthread

but the result stays axectly the same:

/opt/intel/lib/ia32/libiomp5.so: undefined reference to `pthread_atfork'
collect2: ld returned 1 exit status

I checked to see if I have libpthread and it seems that I do have it:

sudo find -name *libpthread*

./usr/lib/i386-linux-gnu/libpthread.so
./usr/lib/i386-linux-gnu/libpthread_nonshared.a
./usr/lib/i386-linux-gnu/libpthread.a
./usr/lib/i386-linux-gnu/xen/libpthread_nonshared.a
./usr/lib/i386-linux-gnu/xen/libpthread.a
./lib/i386-linux-gnu/libpthread.so.0
./lib/i386-linux-gnu/libpthread-2.13.so

Any suggestion will be greatly appreciated. Thanks!

By the way, the exact same example works fine in Ubuntu 10.04
0 Kudos
Ying_H_Intel
Employee
387 Views
Hi

How about to try
g++ -o helloipp helloipp.cpp -I$IPPROOT/include -L$IPPROOT/lib/ia32 -lippi -lipps -lippcore -liomp5 -lpthread
?

As the article: How to build IPP application in Linux environment.

Best Regards,
Ying H.
0 Kudos
hoangnguyen79
Beginner
387 Views
Thanks Ying. I tried your line (plus adding one more library path):

g++ -o helloipp helloipp.cpp -I$IPPROOT/include -L$IPPROOT/lib/ia32 -L/opt/intel/lib/ia32 -lipps -lippcore -liomp5 -lpthread

and we stil have the same result:

/opt/intel/lib/ia32/libiomp5.so: undefined reference to `pthread_atfork'
collect2: ld returned 1 exit status


Please help. Thanks!

0 Kudos
Ying_H_Intel
Employee
387 Views
Hi Hoangnguyen,

The problem looks not the pthread or -lpthread or IPP version, but thesymbol pthread_atfork implementitself. I search one blog from

http://ryanarn.blogspot.com/2011/07/curious-case-of-pthreadatfork-on.html

Itshould disclose the real cause.
Could you pleasecheck the pthread_atfork symbol in libpthread* by nm /lib/libpthread.so.0 and libpthread_nonshared.a.

Best Regards,
Ying
0 Kudos
Reply