Every CPU vendor seems to make BLAS libraries that are specialized to run on their hardware. Do they do the same for LAPACK? Or is that a non-issue because LAPACK is written entirely in terms of BLAS library calls?
2 Answers
Vendor BLAS like Intel's MKL or AMD's ACML, and even GotoBLAS (now OpenBLAS) provide tuned versions of a tiny subset of Lapack, like linear solvers and least squares solvers. I imagine this is only because these routines are among the most commonly used in Lapack. Besides this, I think there might also be routines for eigensystems and such, but they certainly are not a complete Lapack implementation.
-
3$\begingroup$ ACML explicitly states that they provide a FULL implementation of Lapack, and so far I have been unable to find the functions NOT implemented by MKL. Only OpenBLAS and ATLAS have the "tiny subset". $\endgroup$– LKlevinApr 6, 2014 at 8:16
-
$\begingroup$ Ah yes, you are correct. Although I doubt much of those full implementations is further optimized in any way. $\endgroup$ Apr 6, 2014 at 16:55
So both Intel and AMD provide LAPACK-like software with their BLAS, called MKL and ACML respectively. I don't know if any of the ARM developers provide similar software.
The NETLIB version of LAPACK depends heavily on BLAS, and most of the performance gain could probably be had by simply linking NETLIB LAPACK against MKL or ACML BLAS.
I would guess the difference between NETLIB and MKL or ACML LAPACK would quite small, however as LAPACK is already part of the vendor BLAS distribution, there's no reason NOT to use that.
TLDR: They do distribute LAPACK, but it is mainly a non issue.