I am porting an application from Intel SPL to MKL 8.0, and was pleased with performance on Pentium4 CPU, the ddot() dot product from MKL has taken around 40% of nspdDotProd() from SPL.
However, running the same 32-bit executable on Windows XP x64 with AMD 64 CPU produced opposite result. MKL performance was 1.5 times slower comparing to SPL. The MKL was using the mkl_def.dll.
Was I doing something wrong? How to explain the performance degradation?
It seems that to take advantage of the 64-bit CPU we will have to port the whole application to the 64-bit platform. Ive had a wrong impression from the MKL home page paragraph on Automatic Runtime Processor Detection, that 32-bit application could take an advantage of the 64-bit CPU when integrated with MKL.