CPU[2]
GPU
Intel oneAPI Math Kernel Library (oneMKL) は、インテルが開発している、科学・工学・金融アプリケーション向けに提供される最適化(高速化)された数学ルーチンを含むライブラリである。提供される中心的な数学関数にはBLAS、LAPACK、ScaLAPACK(英語版)、スパースソルバー(疎行列)、FFT、ベクトル演算が含まれている。インテルのCPUおよびGPUをサポートしている[2]。オペレーティングシステムはWindows、Linuxで利用可能である[2]。対応プログラミング言語はC言語、C++、Fortran[2]。
インテルは2003年5月9日にMath Kernel Libraryを公開し[4]、それをblas.libと名づけた。ロシアと米国に存在する開発グループが開発を行った。ライブラリはスタンドアローンとバンドルされたバージョンの双方が存在する。
2015年8月31日より、コミュニティライセンスが作られ無償で利用できるようになった[3]。
2020年12月リリースの 2021.1 より、GPU のサポートが追加になり、名称が Intel Math Kernel Library (Intel MKL) から Intel oneAPI Math Kernel Library (oneMKL) に変更になった。[5]
バージョン2024.0よりmacOSの対応が削除された。[6]
下記機能を提供している[7]。
MKLにはFFTWおよびLAPACKと互換性のあるインターフェイスを持った関数群が実装されている。
バージョン2020でディープラーニングの機能は削除された[8]。後継は Intel oneAPI Deep Neural Network Library (oneDNN) 。
対応デバイスは以下の通り[2]。
古いCPUは対応しておらず、例えば、Itaniumのサポートは10.2[17] で終了し、Xeon Phi x100のサポートは2017 Update 4[18]で終了した。
また、AMDなどインテル以外の会社のCPUはサポートしていない。AMD からも同様の物として AMD Optimizing CPU Libraries (AOCL) がリリースされているほか[19]、BLASに関してはOpenBLASがAMDのCPUをサポートしている。
インテルはインテルのプロセッサと非インテルのプロセッサ上でオープンソースのライブラリやAMDのライブラリよりもパフォーマンスが優位であるとの主張を実証するため、ベンチマークを公開した。にもかかわらず64ビットバージョンのMKLは非インテルプロセッサでの最適化があまりなされていないとの批判が根強い。関連する議論は英語版ウィキペディアの記事 "criticism of Intel C++ compiler" を参照のこと。
oneAPI Math Kernel Library (oneMKL) Interfaces を Apache License 2.0 のオープンソースで配布している[20]。こちらから、Intel の CPU, GPU に加えて、NVIDIA と AMD の GPU に対して、oneMKL での API で呼び出しが可能になる。AMD の CPU (AMD Optimizing CPU Libraries) には非対応。対応 OS は Linux と Windows。