Intel Math Kernel Library

Intel oneAPI Math Kernel Library (oneMKL) は、インテルが開発している、科学・工学・金融アプリケーション向けに提供される最適化（高速化）された数学ルーチンを含むライブラリである。提供される中心的な数学関数にはBLAS、LAPACK、、スパースソルバー（疎行列）、FFT、ベクトル演算が含まれている。インテルのCPUおよびGPUをサポートしている。オペレーティングシステムはWindows、Linux、macOSで利用可能である。対応プログラミング言語はC言語、C++、Fortran。

歴史 
インテルは2003年5月9日にMath Kernel Libraryを公開し、それをblas.libと名づけた。ロシアと米国に存在する開発グループが開発を行った。ライブラリはスタンドアローンとバンドルされたバージョンの双方が存在する。

2015年8月31日より、コミュニティライセンスが作られ無償で利用できるようになった。

2020年12月リリースの 2021.1 より、GPU のサポートが追加になり、名称が Intel Math Kernel Library (Intel MKL) から Intel oneAPI Math Kernel Library (oneMKL) に変更になった。

提供機能 
下記機能を提供している。
 BLASとSparse BLAS
 LAPACK
 ScaLAPACK
 スパースソルバー
 拡張固有値ソルバー
 ベクトル数学関数
 統計
 フーリエ変換
 PBLAS
 偏微分方程式
 非線形最適化問題
 BLACS
 データフィッティング
MKLにはFFTWおよびLAPACKと互換性のあるインターフェイスを持った関数群が実装されている。

かつて提供されていた機能 
バージョン2020でディープラーニングの機能は削除された。後継は Intel oneAPI Deep Neural Network Library (oneDNN) 。
 ディープラーニング（これをTensorFlowから利用できるようにした物をインテルは配布している。Apache MXNet、Intel Optimized Caffee、Intel Software Optimization for Theano、Intel neon Framework、Intel Data Analytics Acceleration Library (DAAL) などからも利用できる。類似したライブラリとしてIntel MKL-DNNがあり、こちらを利用した物としてはIntel Chainerなどがある。）

対応デバイス 
対応デバイスは以下の通り。
 CPU
 Intel Xeon
 Intel Core
 Intel Atom
 GPU
 Intel UHD Graphics（第11世代インテルCoreプロセッサー以降）
 Intel Iris Xe graphics
 Intel Arc graphics
 Intel Data Center GPU Flex シリーズ
 Intel Data Center GPU Max シリーズ

古いCPUは対応しておらず、例えば、Itaniumのサポートは10.2 で終了し、Xeon Phi x100のサポートは2017 Update 4で終了した。

また、AMDなどインテル以外の会社のCPUはサポートしていない。AMD からも同様の物として AMD Optimizing CPU Libraries (AOCL) がリリースされているほか、BLASに関してはOpenBLASがAMDのCPUをサポートしている。

批判 
インテルはインテルのプロセッサと非インテルのプロセッサ上でオープンソースのライブラリやAMDのライブラリよりもパフォーマンスが優位であるとの主張を実証するため、ベンチマークを公開した。にもかかわらず64ビットバージョンのMKLは非インテルプロセッサでの最適化があまりなされていないとの批判が根強い。関連する議論は英語版ウィキペディアの記事 "criticism of Intel C++ compiler" を参照のこと。

oneMKL インターフェイス 
oneAPI Math Kernel Library (oneMKL) Interfaces を Apache License 2.0 のオープンソースで配布している。こちらから、Intel の CPU, GPU に加えて、NVIDIA と AMD の GPU に対して、oneMKL での API で呼び出しが可能になる。AMD の CPU (AMD Optimizing CPU Libraries) には非対応。対応 OS は Linux と Windows。

脚注

関連項目 
 （サポートと議論用フォーラムがある。）
 数値解析ソフトウェア
 Intel C++ Compiler
 Intel Parallel Studio
 Intel Threading Building Blocks
 Intel Integrated Performance Primitives
 OpenBLAS

外部リンク 
 

インテル
数値解析ソフトウェア
C++数値計算ライブラリー
数値線形代数