Intel® oneMKL and C++ Template Libraries

Published: 03/20/2012  

Last Updated: 09/17/2017

By Konstantin Igorevich Arturov, Shane A Story

Software developers wanting to enjoy the performance benefits of  Intel® oneAPI Math Kernel Library (oneMKL) in C++ environments can use popular open source C++ template libraries and link them with oneMKL. These higher-level libraries enable users to leverage abstracted C++ classes to perform vector math, BLAS, LAPACK and some sparse computations while also achieving performance similar to what oneMKL library provides.

To discover more about the C++ libraries available, refer to the documentation available at the links below.

C++ math library

Supported oneMKL 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  http://www.mtl4.org/

 

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

http://trilinos.sandia.gov/

BLAS

LAPACK

Notes:

Issues found in the C++ libraries listed in the table above should be reported to the open source library owners. Any issues determined to be caused by oneMKL should be reported on the  oneMKL forum or Online Service Center

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.