Intel oneAPI Math Kernel Library (oneMKL) は、インテルが開発している、科学・工学・金融アプリケーション向けに提供される最適化(高速化)された数学ルーチンを含むライブラリである。提供される中心的な数学関数にはBLAS、LAPACK、ScaLAPACK(英語版)、スパースソルバー(疎行列)、FFT、ベクトル演算が含まれている。インテルのCPUおよびGPUをサポートしている[2]。オペレーティングシステムはWindows、Linux、macOSで利用可能である[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]
提供機能
下記機能を提供している[6]。
MKLにはFFTWおよびLAPACKと互換性のあるインターフェイスを持った関数群が実装されている。
かつて提供されていた機能
バージョン2020でディープラーニングの機能は削除された[7]。後継は Intel oneAPI Deep Neural Network Library (oneDNN) 。
- ディープラーニング(これをTensorFlowから利用できるようにした物をインテルは配布している[8][9]。Apache MXNet[10]、Intel Optimized Caffee[11]、Intel Software Optimization for Theano[12]、Intel neon Framework[13]、Intel Data Analytics Acceleration Library (DAAL) などからも利用できる。類似したライブラリとしてIntel MKL-DNN[14]があり、こちらを利用した物としてはIntel Chainer[15]などがある。)
対応デバイス
対応デバイスは以下の通り[2]。
- CPU
- 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[16] で終了し、Xeon Phi x100のサポートは2017 Update 4[17]で終了した。
また、AMDなどインテル以外の会社のCPUはサポートしていない。AMD からも同様の物として AMD Optimizing CPU Libraries (AOCL) がリリースされているほか[18]、BLASに関してはOpenBLASがAMDのCPUをサポートしている。
批判
インテルはインテルのプロセッサと非インテルのプロセッサ上でオープンソースのライブラリやAMDのライブラリよりもパフォーマンスが優位であるとの主張を実証するため、ベンチマークを公開した。にもかかわらず64ビットバージョンのMKLは非インテルプロセッサでの最適化があまりなされていないとの批判が根強い。関連する議論は英語版ウィキペディアの記事 "criticism of Intel C++ compiler" を参照のこと。
oneMKL インターフェイス
oneAPI Math Kernel Library (oneMKL) Interfaces を Apache License 2.0 のオープンソースで配布している[19]。こちらから、Intel の CPU, GPU に加えて、NVIDIA と AMD の GPU に対して、oneMKL での API で呼び出しが可能になる。AMD の CPU (AMD Optimizing CPU Libraries) には非対応。対応 OS は Linux と Windows。
脚注
関連項目
外部リンク