Intel Math Kernel Library

インテルが開発している科学・工学・金融アプリケーション向けライブラリ

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

Intel oneAPI Math Kernel Library
開発元インテル
初版2003年5月9日 (21年前) (2003-05-09)
最新版
2023.2 / 2023年7月 (11 か月前) (2023-07)[1]
対応OSWindows
Linux
macOS[2]
プラットフォーム

CPU[2]

GPU

  • Intel UHD Graphics
  • Intel Iris Xe graphics
  • Intel Arc graphics
  • Intel Data Center GPU Flex シリーズ
  • Intel Data Center GPU Max シリーズ
種別ライブラリ
フレームワーク
ライセンスプロプライエタリ
フリーウェア[3]
公式サイトsoftware.intel.com/mkl
テンプレートを表示

歴史

インテルは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は対応しておらず、例えば、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。

脚注

関連項目

外部リンク