Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Intel MKL vs. AMD Math Core Library

Tags:

Does anybody have experience programming for both the Intel Math Kernel Library and the AMD Math Core Library? I'm building a personal computer for high performance statistical computations and am debating on the components to buy. An appeal of the AMD Math Core library is that it is free, but I am in academia so the MKL is not that expensive. But I'd be interested in hearing thoughts on:

  1. Which provides a better API?
  2. Which provides better performance, on average, per dollar, including licensing and hardware costs.
  3. Is the AMCL-GPU a factor I should consider?
like image 750
Tristan Avatar asked Oct 29 '09 16:10

Tristan


People also ask

Does MKL work on AMD?

While MKL does works on AMD CPUs, for competitive reasons, MKL checks whether the CPU on a system is made by Intel and forces the use of much slower routines otherwise. This check is quite rudimentary and can be circumvented easily.

Is Intel MKL free for commercial use?

Intel Math Kernel Library (MKL) Intel MKL is free to use in any commercial and academic purposes.

Can I use MKL with GCC?

Intel MKL may be used with the GCC compilers installed on Apocrita. The Intel MKL Link Line Advisor tool can be used to determine the required compiler and link flags to access the package. The variable MKLROOT , referred to in the advisor output, should be set to the directory where the version of MKL is installed.

Does MKL work on ARM?

MKL has faster routines and is completely free, but it won't work on ARM.


2 Answers

Intel MKL and ACML have similar APIs but MKL has a richer set of supported functionality including BLAS (and CBLAS)/LAPACK/FFTs/Vector and Statistical Math/Sparse direct and iterative solvers/Sparse BLAS, and so on. Intel MKL is also optimized for both Intel and AMD processors and has an active user forum you can turn to for help or guidance. An independent assessment of the two libraries is posted here: (http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html)

• Shane Corder, Advanced Clustering, (also carried by HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): “In our recent testing and through real world experience, we have found that the Intel compilers and Intel Math Kernel Library (MKL) usually provide the best performance. Instead of just settling on Intel's toolkit we tried various compilers including: Intel, GNU compilers, and Portland Group. We also tested various linear algebra libraries including: MKL, AMD Core Math Library (ACML), and libGOTO from the University of Texas. All of the testing showed we could achieve the highest performance when using both the Intel Compilers and Intel Math Library--even on the AMD system--so these were used them as the base of our benchmarks.” [Benchmark testing showed 4-core Nehalem X5550 2.66GHz at 74.0GFs vs. Istanbul 2435 2.6GHz at 99.4GFs; Istanbul only 34% faster despite 50% more cores]

Hope this helps.

like image 98
Shane Story Avatar answered Oct 13 '22 00:10

Shane Story


In fact, there are two versions of LAPACK routines in ACML. The ones without trailing underscore (_) are the C-version routines, which as Victor said, don't require workspace arrays and you can just pass values instead of references for the parameters. The ones with the underscore however are just vanilla Fortran routines. Do a "dumpbin /exports" on libacml_dll.dll and you'll see.

like image 36
FrankRoc Avatar answered Oct 13 '22 02:10

FrankRoc