X64, amd64 and x86-64 are names for the same processor type. It's often called amd64 because AMD came up with it initially. All current general-public 64-bit desktops and servers have an amd64 processor.
There is a processor type called IA-64 or Itanium. It's only found in supercomputers and a few high-end servers.
A 64-bit processor can run a 32-bit system, so you have a choice of installing the amd64 version or the i386 version. Here are a few points of comparison:
A few years ago, some programs had bugs when compiled for 64-bit processors, but that's mostly a thing of the past.
You can run 32-bit programs on a 64-bit system; the converse is not true.
A 32-bit kernel can access more than 4GB of RAM, so having more than 4GB of RAM is not a compelling reason to run a 64-bit kernel. On the other hand, a 32-bit program can only access less about 3GB of memory.
Which one is faster depends on the application (number crunching can be more than twice as fast in 64-bit mode, while symbolic manipulation can be more than twice as slow).
If in doubt, on an amd64-capable processor, use an amd64 distribution.
Uh, "twice as fast if not more depending on the hardware it runs on"?? Ah, if only the world worked this way.
For example, take a look at this article: Ubuntu 12.04 LTS: 32-bit vs. 64-bit Performance.
While some of the synthetic benchmarks show drastic performance gains, there are also many which show either just minor (10% to 30%) gains, no gains, or even a performance decrease. And those are just synthetic benchmarks which usually does not give useful insight into what the system performance will be when doing something other than running benchmarks.
System performance is very much influenced by "system" bottlenecks and you can't make sweeping generalizations such as twice the bits implies twice the performance.
Having said that, I still try to use the 64-bit flavors of operating systems because I expect the performance to be at least somewhat better. While the size of the CPU registers is doubled, possible of more importance is that the number of registers increases from eight in x86 to sixteen in x86_64 64-bit mode. This allows a compiler to potentially produce faster code. There are a number of these instruction tweaks which, while probably insignificant in any one instance can add up when used system wide to a useful performance gain.
There is also little if any performance loss for programs compiled for 32-bit x86 since they can be run in "compatibility mode".
People often make the generalization that if you only have 4GB or less of memory then there is no difference between 32-bit and 64-bit and thus no reason to use the 64-bit version. This is simply not true. The instruction architecture of the CPU is different enough (IMO) in 64-bit mode to prefer using the 64-bit OS if your hardware supports it.
After all, you wouldn't want to run your 32-bit CPU in 16-bit mode, would you? :-)
Best Answer
i386 refers to the 32-bit edition and amd64 (or x86_64) refers to the 64-bit edition for Intel and AMD processors.
Wikipedia's i386 entry:
Wikipedia's x86_64 entry:
Even if you have an intel CPU, you should use AMD64 to install 64-bit on your computer (it uses the same instruction sets).
I highly recommend using it. For the most part you will not notice a difference but for large workloads (such as video editing, gaming, etc), the computer will perform faster (the computer has the ability to calculate 2+2+2=6 instead of having to do 2+2=4+2=6 in an example). In the Windows world, a 32-bit OS will not let you use more than 3.5 Gigs of RAM on your computer (even if you have 8!). You'd need to use a 64-bit OS in order to fully use all RAM. For Linux, however, there's no such limit (thanks, Uri).
Regardless, the world has shifted from 32 bit and it's only there to support older machines that are incapable of running 64 bit.