# MKL on Intel vs AMD

I am running some linear algebra functions in Mathematica on different CPUs. I've noticed a massive performance difference between Intel and AMD processors. For a certain script I wrote that uses Eigenvalue functions several times:

Intel Xeon (2.8 GHz): 20s
Intel Core 2 Q9400 (2.6 GHz): 48s
AMD Opteron 6276 (2.3 GHz): 76s
AMD Opteron 6378 (2.4 GHz): 100s

There are many variables here. All these are running with 4 cores. However, the AMDs are launched on an HPC with access to more cores. The Intels are much faster, but I was very surprised when the faster AMD did consistently worse over several trials. Someone suggested Mathematica is using MKL, which is so optimized for Intel it causes problems for AMD.

Does anyone have any ideas for what causes this? I would also be interested in what other information or tests I should do to narrow down the possibilities.

• I'm sure you have also different memory on your computers and I also should mention that the FSB speed is very significant for Intel computers. – Alexey Popkov Nov 1 '14 at 22:27
• The memory per processor request from the HPC was always the same. On my desktop, I monitored the memory and it was always running around 75%. A different I did notice, was the Xeon has about 10x larger cache, but I don't know how big an effect that has. – user10 Nov 1 '14 at 23:02
• from Math_Kernel_Library Nevertheless, the 64-bit version of the Math Kernel Library has been criticized for being suboptimal on non-Intel processors There is a link above for additional information on this as well. – Nasser Nov 1 '14 at 23:13
• Alexey is talking about (effective) memory bandwidth, which will be hugely influenced by relative cache sizes and speeds. And even if MKL may not be optimal on AMD processors, it's still faster than ACML (AMD's own equivalent) and every other math library apart (perhaps, and even then very debatable) from ATLAS/OpenBLAS. So, sorry to disappoint you, but even allowing for Intel's favoring their own products, AMD CPUs are simply not as fast. They are not really sold for HPC applications anyway; the server market is more lucrative and this is what AMD aims at with their products. – Oleksandr R. Mar 3 '15 at 15:47
• For one thing, two AMD cores share one FPU. FPU is not needed very much in server applications, so they decided not to duplicate it for every core. It saves a lot of power and area, allowing more cores to fit onto one chip. But it does mean that for HPC applications, it takes two AMD cores to match one Intel core. This is not Intel's fault and it is not a deficiency of the AMD products. It merely reflects that they are designed and sold for different markets. Intel can include so much more cache than competitors because of their absolute process superiority, which they use to maximum effect. – Oleksandr R. Mar 3 '15 at 15:50