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

IPP 6.0 compiled for Atom

avolmat
Beginner
436 Views
Hi,

I'm trying to compile IPP samples (ipp-samples) audio-video-codecs for the Atom and I'm running into some problems.
I installed both ICC 11.0 (ia32) and IPP 6.0 (lp32 = Atom) on Fedora 9.

Environment variables are set using iccvars.sh ia32 (for ICC) and ippvars32.sh (for IPP).

Everything works great if I keep the original Makefile as it is and I can get 3 propers binaries (simple player, encoder and decoder) but I would like to try to optimize those 3 programs for the Atom by even telling the ICC to compile and optimize the code for the Atom. For that purpose I added -x arguments to the CFLAGS line and thus the Makefile CFLAGS line is now:

CFLAGS = -Wall -O2 -fPIC -xL -xSSE3_ATOM

With the new arguments, all file can compile properly but the link at the end fail (for all 3 programs) and I'm being said that
there is an undefined reference __intel_new_proc_init_L.
I read somewhere that this happens when compiling with GCC without linking with libirc but since I am using ICC I don't think it is a libirc problem.

Moreover, I noticed that keeping the -xL and -xSSE3_ATOM arguments but avoiding optimization (-O0) allows to compile/link properly (even if of course the resulting binary is not optimized at all and is running very slow).

Do you have an idea what is the problem ? Should I just forget about using SSE3_ATOM and set SSE3 instead (which works fine by the way) ?
0 Kudos
2 Replies
idare75
Beginner
436 Views
Quoting - avolmat
Hi,

I'm trying to compile IPP samples (ipp-samples) audio-video-codecs for the Atom and I'm running into some problems.
I installed both ICC 11.0 (ia32) and IPP 6.0 (lp32 = Atom) on Fedora 9.

Environment variables are set using iccvars.sh ia32 (for ICC) and ippvars32.sh (for IPP).

Everything works great if I keep the original Makefile as it is and I can get 3 propers binaries (simple player, encoder and decoder) but I would like to try to optimize those 3 programs for the Atom by even telling the ICC to compile and optimize the code for the Atom. For that purpose I added -x arguments to the CFLAGS line and thus the Makefile CFLAGS line is now:

CFLAGS = -Wall -O2 -fPIC -xL -xSSE3_ATOM

With the new arguments, all file can compile properly but the link at the end fail (for all 3 programs) and I'm being said that
there is an undefined reference __intel_new_proc_init_L.
I read somewhere that this happens when compiling with GCC without linking with libirc but since I am using ICC I don't think it is a libirc problem.

Moreover, I noticed that keeping the -xL and -xSSE3_ATOM arguments but avoiding optimization (-O0) allows to compile/link properly (even if of course the resulting binary is not optimized at all and is running very slow).

Do you have an idea what is the problem ? Should I just forget about using SSE3_ATOM and set SSE3 instead (which works fine by the way) ?
I have the same problem with the bzip2 sample: so i have not modified the Makefile.
Compiled with icc110 and linked with ipp lp32 6 update 2, results are catastrophics: icc+ipp is 40% slower thant standard ubunto 8.10 bzip2 binary...

This is on eeebox (Atom N270) and kubunto 8.10.

What about your audio-video-codes performance tests?

Regards,

Gaetan
0 Kudos
Pavel_B_Intel1
Employee
436 Views
Hello!

Please try to link libirc.a library from Intel compiler:

libirc.a
00001050 T __intel_new_proc_init_L
00000f20 T __intel_new_proc_init_L.A
00000f80 T __intel_new_proc_init_L.O

If you did it, could you post your link line.

Thanks, pavel.
0 Kudos
Reply