Some Intel® MKL users indicated that it would be valuable to have C++ API to invoke MKL functionality.
There are a few existing open source C++ template libraries that can be linked with Intel® MKL. This allows using highly abstracted C++ classes to perform matrix/vector operations, linear algebra factorizations etc. achieving about the same performance as MKL library provides.
Please refer to the documentation placed on the web-pages of the C++ libraries. Feel free to choose the package that mostly fits your needs and/or C++ style requirements.
|
C++ math library |
Supported MKL functionality |
|
Eigen http://eigen.tuxfamily.org/dox-devel/TopicUsingIntelMKL.html |
BLAS (level 2, 3) LAPACK(LU, Cholesky, QR, SVD, Eigvalues, Shur) VML PARDISO |
|
Armadillo http://sourceforge.net/projects/arma/
|
BLAS (dot, gemv, gemm) LAPACK (LU, Cholesky, QR, SVD, Eigvalues) |
|
MTL4
|
BLAS (gemm) LAPACK (LU) |
|
BOOST uBLAS http://www.boost.org/doc/libs/1_35_0/libs/numeric/ublas/doc/index.htm
together with BOOST numeric bindings http://mathema.tician.de//software/boost-bindings
|
BLAS LAPACK |
|
Trilinos
|
BLAS LAPACK |
Important note:
While the libraries above are known to be the products of high quality, Intel MKL cannot guarantee that all the calls to MKL functions are implemented 100% correctly there. If you find an issue during incorporating the codes of those libraries into your program, please first report the issue to the owners of these libraries. However, if there is an issue caused by using Intel MKL, please report us by submitting an issue on Intel MKL forum or Intel Premier Support.
