Math Kernel Library

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Math Kernel Library

Intel oneAPI Math Kernel Library (Intel oneMKL; formerly


Intel Math Kernel Library or Intel MKL) is a library of optimized
Math Kernel Library
math routines for science, engineering, and financial applications. Developer(s) Intel
Core math functions include BLAS, LAPACK, ScaLAPACK, Initial release May 9, 2003
sparse solvers, fast Fourier transforms, and vector math.[5][6] That
is besides the math.h standard C library, that is also more accurate Stable release 2023.1 /
compared to glibc.[7] March 29,
2023[1]
The library supports Intel processors[2] and is available for Written in C/C++, Intel
Windows, Linux and macOS operating systems.[5][6][8] DPC++
Compiler,
Intel oneAPI Math Kernel Library is not to be confused with
Fortran
oneAPI Math Kernel Library (oneMKL) Interfaces, a piece of
open-source glue code that allows Intel MKL routines to be used Operating system Microsoft
from Data Parallel C++.[9] Windows,
Linux, macOS
History and licensing Platform Intel Xeon,
Intel Xe, Intel
Intel launched the Math Kernel Library on May 9, 2003, and Core, Intel
called it blas.lib.[10] The project's development teams are located in Atom[2]
Russia and the United States.
Type Library and
The library was available in a standalone form, free of charge framework
under the terms of Intel Simplified Software License[3] which License freeware under
allow redistribution.[11] ISSL[3][4]
Website www.intel.com
Since April 2020, MKL has become part of oneAPI. Commercial
support for oneMKL is available when purchased as part of /content/www
oneAPI Base Toolkit. /us/en
/developer
/tools/oneapi
Performance and vendor lock-in /onemkl.html
(https://www.int
MKL and other programs generated by the Intel C++ Compiler
el.com/content/
and the Intel DPC++ Compiler improve performance with a
technique called function multi-versioning: a function is compiled www/us/en/dev
or written for many of the x86 instruction set extensions, and at eloper/tools/on
run-time a "master function" uses the CPUID instruction to select a eapi/onemkl.ht
version most appropriate for the current CPU. However, as long as ml) 
the master function detects a non-Intel CPU, it almost always
chooses the most basic (and slowest) function to use, regardless of what instruction sets the CPU claims to
support. This has netted the system a nickname of "cripple AMD" routine since 2009.[12] As of 2020,
Intel's MKL remains the numeric library installed by default along with many pre-compiled mathematical
applications on Windows (such as NumPy, SymPy).[13][14] Although relying on the MKL, MATLAB
implemented a workaround starting with Release 2020a which ensures full support for AVX2 by the MKL
also for non Intel (AMD) CPUs.[15]

Details

Functional categories

Intel MKL has the following functional categories:[16]

Linear algebra: BLAS routines are vector-vector (Level 1), matrix-vector (Level 2) and
matrix-matrix (Level 3) operations for real and complex single and double precision data.
LAPACK consists of tuned LU, Cholesky and QR factorizations, eigenvalue and least
squares solvers. MKL also includes Sparse BLAS, ScaLAPACK, Sparse Solver, Extended
Eigensolver (FEAST, PARDISO), PBLAS and BLACS. MKL is even better at small
dimensions than libxsmm (https://github.com/libxsmm/libxsmm).

Since MKL uses standard interfaces for BLAS and LAPACK, the application which
uses other implementations can get better performance on Intel and compatible
processors by re-linking with MKL libraries.

MKL includes a variety of Fast Fourier Transforms (FFTs) from 1D to multidimensional,


complex to complex, real to complex, and real to real transforms of arbitrary lengths.
Applications written with the open source FFTW can be easily ported to MKL by linking with
interface wrapper libraries provided as part of MKL for easy migration.

Cluster versions of LAPACK and FFTs are also available as part of MKL to take
advantage of MPI parallelism in addition to single node parallelism from
multithreading.

Vector math functions include computationally intensive core mathematical operations for
single and double precision real and complex data types. These are similar to libm functions
from compiler libraries but operate on vectors rather than scalars to provide better
performance. There are various controls for setting accuracy, error mode and denormalized
number handling to customize the behavior of the routines.
Statistics functions include random number generators and probability distributions.
optimized for multicore processors. Also included are compute-intensive in and out-of-core
routines to compute basic statistics, estimation of dependencies etc.
Data fitting functions include splines (linear, quadratic, cubic, look-up, stepwise constant)
for 1-dimensional interpolation that can be used in data analytics, geometric modeling and
surface approximation applications.
Deep Neural Network
Partial Differential Equations
Nonlinear Optimization Problem Solvers

See also
OneAPI (compute acceleration)
List of numerical libraries
Automatically Tuned Linear Algebra Software (ATLAS)
GotoBLAS and OpenBLAS
Integrated Performance Primitives

References
1. "Intel® Math Kernel Library Release Notes and New Features" (https://software.intel.com/co
ntent/www/us/en/develop/articles/oneapi-math-kernel-library-release-notes.html).
software.intel.com.
2. Intel® oneAPI Math Kernel Library (oneMKL) | Intel® Software (https://software.intel.com/one
api/onemkl)
3. "Intel Simplified Software License" (https://software.intel.com/en-us/license/intel-simplified-s
oftware-license).
4. "OneMKL — oneAPI Specification 1.1-rev-1 documentation" (https://spec.oneapi.io/versions/
latest/elements/oneMKL/source/index.html).
5. "Intel Math Kernel Library" (https://www.its.hku.hk/services/research/hpc/software/mkl).
6. "Intel Math Kernel Library (MKL)" (https://www.nsc.liu.se/software/math-libraries/).
7. "Accuracy of Mathematical Functions in Single, Double, Double Extended, and Quadruple
Precision" (https://members.loria.fr/PZimmermann/papers/accuracy.pdf) (PDF). Retrieved
2023-03-15.
8. "MKL - Intel Math Kernel Library" (https://www.osc.edu/documentation/software-list/mkl-intel-
math-kernel-library). 23 April 2012.
9. "oneapi-src/oneMKL" (https://github.com/oneapi-src/oneMKL). oneAPI-SRC. 19 March 2021.
"oneMKL interfaces are an open-source implementation of the oneMKL Data Parallel C++
(DPC++) interface according to the oneMKL specification. It works with multiple devices
(backends) using device-specific libraries underneath."
10. "Intel launches library tool for developers. (Intel Math Kernel Library 6.0) (Brief Article)" (htt
p://www.accessmylibrary.com/article-1G1-101517042/intel-launches-library-tool.html).
Telecomworldwire. May 9, 2003. Retrieved November 29, 2009.
11. "Intel Math Kernel Library Licensing FAQ" (https://software.intel.com/en-us/mkl/license-faq).
12. Agner Fog. "Agner's CPU blog - Intel's "cripple AMD" function" (https://www.agner.org/optimi
ze/blog/read.php?i=49).
13. "Comment chain in: r/matlab - How-To force Matlab to use a fast codepath on AMD
Ryzen/TR CPUs - up to 250% performance gains" (https://old.reddit.com/r/matlab/comments/
dxn38s/howto_force_matlab_to_use_a_fast_codepath_on_amd/fm2j83e/). reddit. Retrieved
2020-06-06.
14. "High-Performance Computing Center Stuttgart - Knowledge Base - Libraries(Hawk)" (http
s://kb.hlrs.de/platforms/index.php/Libraries(Hawk)). Retrieved 2020-06-06.
15. "Crippled No Longer: Matlab Now Runs on AMD CPUs at Full Speed - ExtremeTech" (http
s://www.extremetech.com/computing/308501-crippled-no-longer-matlab-2020a-runs-amd-cp
us-at-full-speed). www.extremetech.com. Retrieved 2020-10-29.
16. admin (2019-11-14). "Developer Reference for Intel® Math Kernel Library - C" (https://softwa
re.intel.com/en-us/mkl-developer-reference-c). software.intel.com. Retrieved 2019-11-27.

External links
Official website (https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.ht
ml)
Documentation (https://software.intel.com/en-us/mkl/documentation/get-started)
oneMKL User Forum (https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/bd-p/o
neapi-math-kernel-library)
oneAPI oneMKL Specification (https://spec.oneapi.io/versions/latest/elements/oneMKL/sour
ce/index.html)
oneMKL Benchmarks Suite (https://www.intel.com/content/www/us/en/developer/articles/tec
hnical/onemkl-benchmarks-suite.html)

Retrieved from "https://en.wikipedia.org/w/index.php?title=Math_Kernel_Library&oldid=1161512596"

You might also like