Intel Math Kernel Library

Intel oneAPI Math Kernel Library (oneMKL) は、インテルが開発している、科学・工学・金融アプリケーション向けに提供される最適化（高速化）された数学ルーチンを含むライブラリである。提供される中心的な数学関数にはBLAS、LAPACK、ScaLAPACK（英語版）、スパースソルバー（疎行列）、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" を参照のこと。 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® oneAPI Math Kernel Library (oneMKL) Bug Fixes”. Intel. 13 September 2023閲覧。 ^ a b c d e f Intel® Math Kernel Library (Intel® MKL) | Intel® Software ^ a b No Cost Options for Intel Math Kernel Library (MKL), Support Yourself, Royalty-Free | Intel® Developer Zone ^ “Intel launches library tool for developers.(Intel Math Kernel Library 6.0 )(Brief Article)”. Telecomworldwire. (2003年5月9日). http://www.accessmylibrary.com/article-1G1-101517042/intel-launches-library-tool.html 2009年11月29日閲覧。  ^ “Intel® oneAPI Math Kernel Library (oneMKL) 2021 Release Notes”. Intel. 13 September 2023閲覧。 ^ Developer Reference for Intel® Math Kernel Library 2018 - C ^ “Intel® Math Kernel Library Release Notes and New Features”. Intel. 10 October 2023閲覧。 ^ TensorFlow* Optimizations on Modern Intel® Architecture | Intel® Software ^ Intel Optimized Tensorflow Wheel Now Available | Intel® Software ^ Installing and Building MXNet with Intel® MKL | Intel® Software ^ intel/caffe: This fork of BVLC/Caffe is dedicated to improving performance of this deep learning framework when running on CPU, in particular Intel® Xeon processors (HSW+) and Intel® Xeon Phi processors ^ intel/Theano: This fork of Theano/Theano is dedicated to improve its performance on CPU device, in particular Intel® Xeon® processors and Intel® Xeon Phi™ processors. ^ NervanaSystems/neon: Intel® Nervana™ reference deep learning framework committed to best performance on all hardware ^ 01org/mkl-dnn: Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN) ^ intel/chainer: A flexible framework of neural networks for deep learning ^ Intel® MKL 10.3 Release Notes | Intel® Software ^ Intel® Math Kernel Library (Intel® MKL) 2018 Release Notes | Intel® Software ^ “AMD Optimizing CPU Libraries (AOCL)”. AMD. 13 September 2023閲覧。 ^ oneapi-src/oneMKL: oneAPI Math Kernel Library (oneMKL) Interfaces - GitHub Intel Software Network（英語版）（サポートと議論用フォーラムがある。） 数値解析ソフトウェア Intel C++ Compiler Intel Parallel Studio Intel Threading Building Blocks Intel Integrated Performance Primitives OpenBLAS 公式ウェブサイト