There are 3 packages under the download path, IA-32 /Intel 64/IA-64.
My question is: how do I know which one to choose?
What's the difference between the packages? Will performance ofa app be the same even if it is compiled by different packages?
run an app compiled by an intel 64 machine on an IA-32 machine?
run an app compiled by an IA-32 machine on an intel 64 machine?
IA-64 meens Itanium processor so you probably don't want to use this.
You can't run an app compiled with an Intel 64 (refered also as x64) compiler on a 32 bits OS (what you imply with IA32 (x32) machine)
You can certainly run an app compiled on by an IA32 compiler on an Intel 64 machine running a 64bits OS.
It's usually better to work with the native library (IA32 for IA32 - you don't have a choice here - and Intel 64 on Intel 64). But if having any doubts on the target, I recommend you to stick only with the IA32 library as it works on all x86/x86-64 machines. You can also compile your app both in IA32 and Intel 64.
Here's a link from intel.com.
My client has a question about running IPP on an AMD coremachine. From what I understand, there should be no problem to run an app with ipp lib on an AMD core machine, the only thing matters is the performance may not be good if the process is not "intel compatible processors". Is that correct?
For more information about different packages and system requirements for each package, refer to Release Notes.
IPP Release Notes for Windows OS
IPP Release Notes for LINUX OS
Yes, IPP will run on non-Intel processors. Unfortunately, we cannot guarantee the level of performance on non-Intel processors. If your client has some sample AMD machines that are of interest you might want to make some simple comparison tests to be sure the performance is adequate.