Intel Math Kernel Library
開発元 | インテル |
---|---|
初版 | 2003年5月9日 |
最新版 |
2023.2
/ 2023年7月[1] |
対応OS |
Windows Linux macOS[2] |
プラットフォーム |
CPU[2] GPU
|
種別 |
ライブラリ フレームワーク |
ライセンス |
プロプライエタリ フリーウェア[3] |
公式サイト |
software |
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]。
- BLASとSparse BLAS
- LAPACK
- ScaLAPACK
- スパースソルバー
- 拡張固有値ソルバー
- ベクトル数学関数
- 統計
- フーリエ変換
- PBLAS
- 偏微分方程式
- 非線形最適化問題
- BLACS
- データフィッティング
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。
脚注
[編集]- ^ “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日) 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