Math Kernel Library | |
---|---|
Basisdaten
| |
Hauptentwickler | Intel |
Entwickler | Intel |
Erscheinungsjahr | 2003 |
Aktuelle Version | MKL 2020 (11. Dezember 2019) |
Betriebssystem | Unixoide, mac OS X, Microsoft Windows |
Programmiersprache | C, C++, Fortran |
Kategorie | Programmbibliothek für Mathematik |
Lizenz | proprietär |
software.intel.com/en-us/intel-mkl |
Die Intel Math Kernel Library (Intel MKL) ist eine Programmbibliothek für mathematische Berechnungen von Intel. Hauptbestandteile sind Basic Linear Algebra Subprograms (BLAS), LAPACK, ScaLAPACK, Solver für dünnbesetzte Matrizen, schnelle Fourier-Transformationen und Vektormathematik.[1]
Die Math Kernel Library wurde von Intel am 9. Mai 2003 veröffentlicht. Sie eignet sich besonders für Intel-Mikroprozessoren und Einsatz im Multithreading.[2] Nicht von Intel stammende Prozessoren werden benachteiligt, da dort weitaus langsamerer Programmcode läuft als nötig, teilweise beobachtet werden Verlangsamungen um den Faktor 3–10[3], leistungssteigernde Befehlssätze wie AVX werden nicht genutzt, obwohl möglicherweise vorhanden. Mittlerweile gibt es mehrere Workarounds, welche es erlauben, das nach CPU-Hersteller diskriminierende Verhalten der MKL zu umgehen.[4][5]
Für die Nutzung wird eine Lizenz benötigt, wobei es eine kostenlose Community-License gibt. Die Bibliothek unterstützt C, C++ und Fortran nativ und ist mit Java, C#, Python[6] und anderen Sprachen kompatibel.
Im Bereich der numerischen linearen Algebra sind BLAS und LAPACK enthalten und um performantere Berechnungen erweitert worden. Dazu zählen etwa LR-, Cholesky- und QR-Zerlegung, Eigenwertprobleme sowie die Methode der kleinsten Quadrate. Die Math Kernel Library enthält schnelle Fourier-Transformationen (FFT) für beliebig viele Dimensionen und unterschiedliche Datentypen. Ebenso wie die FFTs ist auch LAPACK als Clusterversion enthalten. Vektormathematische Funktionen sind mit einfacher und doppelter Genauigkeit implementiert sowie für komplexe und Gleitkommazahlen verfügbar. Im Bereich Statistik gibt es unter anderem Zufallszahlengeneratoren und Wahrscheinlichkeitsverteilungen. Es sind verschiedene Splines zur Interpolation enthalten. Die Math Kernel Library verfügt über Funktionen für neuronale Netze (z. B. Backpropagation).[7]