Community
cancel
Showing results for 
Search instead for 
Did you mean: 
kkirtac
Beginner
1,187 Views

Can I use Intel IPP on AMD* CPU?

Hi, we are developing an image/signal processing application that need to work without a processor-brand constraint.
While developing the code, do we have to take any manual precaution regarding different processor families such as AMD?
Should we develop different codes, namely the generic and IPP? Or do we develop the code with IPP support but it won't work optimized if it detects a non-Intel cpu ?
0 Kudos
7 Replies
Ying_H_Intel
Employee
1,187 Views


Hello kkirtac,

IPP support all Intel Processor orthe processors from other manufacturers supporting the same instruction set. So it should be no problem to use IPP on non-intel cpu.

For IPP optimized Code, see more information here:
<http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understan...

All my Best,
Ying
kkirtac
Beginner
1,187 Views

Quoting - Ying Hu (Intel)

Hello kkirtac,

IPP support all Intel Processor orthe processors from other manufacturers supporting the same instruction set. So it should be no problem to use IPP on non-intel cpu.

For IPP optimized Code, see more information here:
<http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understan...

All my Best,
Ying

Hello, the link is dead.
"....manufacturers supporting the same instruction set"
What if the instruction set is different?
Looking at some older posts, there is a term called "generic code". I guess that there is a generic version of our IPP code, if the detected cpu is non-Intel, the generic code works. So, a generic version of our IPP code is generated automatically by Intel compiler, is it that ?
shyaki
Beginner
1,187 Views

Quoting - kkirtac

Hello, the link is dead.
"....manufacturers supporting the same instruction set"
What if the instruction set is different?
Looking at some older posts, there is a term called "generic code". I guess that there is a generic version of our IPP code, if the detected cpu is non-Intel, the generic code works. So, a generic version of our IPP code is generated automatically by Intel compiler, is it that ?
run ippiGetLibVersion() to get the version of IPP on your AMD system.

the generic c code is the worse case. AMD at least supports SSE2.


Ying_H_Intel
Employee
1,187 Views

Hello kkirtac,

seems one symbol ">" were added in the link. It should be

http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-understan...

It list all CPU optimized code used in Intel IPP.
for example,
w7 - Optimized for Pentium 4 processors
px - C-optimized for all IA-32 processors

In fact, IPPdetect cpu according to the supporting instruction set of processor (whichsoevermanufacturers). For example, you haveCPU which supportSSE2 instruction then IPP will call "w7" code to run on such processor. If yourcpu don't support SSE2, thenthe general otpimzed code for all IA32-processors will be used. Yes, as shyaki said, the current AMD processor areat least support SSE2 and support same intruction set as Intel Processor, soIPP will use at least "w7" codeon such kind of cpus.

shyaki, thank you.right, to run ippiGetLibVersion(), you will seewhich optimized version of IPPon your cpu.

Thanks
Ying
Ying_S_Intel
Employee
1,187 Views


You can also run one of Intel IPP sample "cpu info" from sample directory ipp-samplesadvanced-usagecpuinfo to find similiar info.

Thanks,
Ying S
kkirtac
Beginner
1,187 Views

Thanks for the replies, its all clear now,

i have to ask one more question,

is there a strict constraint to use Intel C++ compiler for optimized solution? Or can we compile our IPP codes with any other c-c++ compiler such as MSVC?

Thank you.
Vladimir_Dudnik
Employee
1,187 Views

Hello,

you may check with IPP Release Notes for supported software. Yes, Microsoft compiler can be used with IPP as well as gcc under Linux and Mac OS.

Regards,
Vladimir

Reply