Intel Math Kernel Library (Intel MKL) は、インテルが開発している、科学・工学・金融アプリケーション向けに提供される最適化(高速化)された数学ルーチンを含むライブラリである。提供される中心的な数学関数にはBLAS、LAPACK、(ScaLAPACK)、スパースソルバー(疎行列)、FFT、ベクトル演算が含まれている。CPUはインテルプロセッサのみサポートしている[2]。オペレーティングシステムはWindows、Linux、macOSで利用可能である[2]。対応プログラミング言語は、C言語、、Fortran、 Intel Distribution for PythonのPython[2]。
歴史
インテルは2003年5月9日にMath Kernel Libraryを公開し[4]、それをblas.libと名づけた。ロシアと米国に存在する開発グループが開発を行った。ライブラリはスタンドアローンとバンドルされたバージョンの双方が存在する。
提供機能
下記機能を提供している[5]。
- BLASとSparse BLAS
- LAPACK
- (ScaLAPACK)
- ディープラーニング(これをTensorFlowから利用できるようにした物をインテルは配布している[6][7]。Apache MXNet[8]、Intel Optimized Caffee[9]、Intel Software Optimization for Theano[10]、Intel neon Framework[11]、Intel Data Analytics Acceleration Library (DAAL) などからも利用できる。類似したライブラリとしてIntel MKL-DNN[12]があり、こちらを利用した物としてはIntel Chainer[13]などがある。)
- スパースソルバー
- 拡張固有値ソルバー
- ベクトル数学関数
- 統計
- フーリエ変換
- PBLAS
- 偏微分方程式
- 非線形最適化問題
- BLACS
- データフィッティング
互換インターフェイス
対応CPU
古いCPUは対応しておらず、例えば、Itaniumのサポートは10.2[14] で終了し、Xeon Phi x100のサポートは2017 Update 4[15]で終了した。
また、AMDなどインテル以外の会社のCPUはサポートしていない。BLASに関してはOpenBLASがAMDのCPUをサポートしている。
批判
インテルはインテルのプロセッサと非インテルのプロセッサ上でオープンソースのライブラリやAMDのライブラリよりもパフォーマンスが優位であるとの主張を実証するため、ベンチマークを公開した。にもかかわらず64ビットバージョンのMKLは非インテルプロセッサでの最適化があまりなされていないとの批判が根強い。関連する議論は英語版ウィキペディアの記事 "criticism of Intel C++ compiler" を参照のこと。
脚注
- ^ Gennady Fedorov, Khang T Nguyen, Pamela Harrison, and Abhinav Singh (2020年8月31日). “Intel® Math Kernel Library Release Notes and New Features”. Intel® Software. 2020年10月19日閲覧。
- ^ 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日)2009年11月29日閲覧。
- ^ Developer Reference for Intel® Math Kernel Library 2018 - C
- ^ 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
関連項目
- (Intel Software Network)(サポートと議論用フォーラムがある。)
- 数値解析ソフトウェア
- Intel Parallel Studio
- Intel Threading Building Blocks
- Intel Integrated Performance Primitives
- OpenBLAS
外部リンク
- 公式ウェブサイト