| 開発者 | インテル |
|---|---|
| 初回リリース | 1994年11月 |
| 安定版リリース | 2024.2 / 2024年6月14日[1] |
| 書かれた | C / C++、DPC++、Fortran |
| オペレーティング·システム | マイクロソフトウィンドウズ、Linux |
| プラットフォーム | CPU [2]
グラフィックプロセッサ
|
| タイプ | ライブラリとフレームワーク |
| ライセンス | ISSLフリーウェア[3] [4] |
| Webサイト | www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html |
インテルoneAPI数学カーネル ライブラリ(インテルoneMKL ) は、以前はインテル 数学カーネル ライブラリと呼ばれていましたが、科学、工学、金融アプリケーション向けに最適化された数学ルーチンのライブラリです。コアとなる数学関数には、 BLAS、LAPACK、ScaLAPACK、スパース ソルバー、高速フーリエ変換、ベクトル数学などがあります。[5] [6]
このライブラリはx86 CPUとIntel GPU [2]をサポートしており、 WindowsおよびLinux オペレーティングシステムで利用できます。[5] [6] [7]
Intel oneAPI Math Kernel Libraryは、DPC++アプリケーションが実行時に定義された複数のハードウェアアーキテクチャとベンダーにオフロードできるoneMKLルーチンを呼び出すことを可能にするオープンソースのラッパーライブラリであるoneMKLインターフェイスと混同しないでください。[8]
歴史とライセンス
インテルは1994年11月にoneAPI Math Kernel Libraryをリリースし、これをIntel BLAS Libraryと名付けました。[9] 1996年にライブラリはIntel Math Kernel Libraryに改名されましたが、2020年4月にIntel oneMKLが複数のハードウェアアーキテクチャをサポートするためにoneAPIイニシアチブの一部となり、現在の名前はIntel oneAPI Math Kernel Libraryとなっています。
このライブラリは、oneAPIツールキットの一部として、またスタンドアロン形式で、再配布を許可するIntel Simplified Software License [3]の条件に基づいて無料で利用できます。[10] Intel oneMKLの商用サポートは、 oneAPI Base Toolkit の一部として購入すると利用できます。
Apple が x86 CPU から移行したことに伴い、macOSで利用できる Intel oneMKL の最終リリースはバージョン 2023.2.2 となり、2024 年末までに削除される予定です。
パフォーマンスとベンダーロックイン
MKLや、Intel C++コンパイラ およびIntel DPC++コンパイラによって生成された他のプログラムは、関数マルチバージョン化と呼ばれる手法によってパフォーマンスを改善している。関数は多くのx86命令セット拡張用にコンパイルまたは記述され、実行時に「マスター関数」はCPUID命令を使用して現在のCPUに最も適したバージョンを選択する。ただし、マスター関数がIntel以外のCPUを検出する限り、CPUがサポートすると主張する命令セットに関係なく、ほとんどの場合、最も基本的な(そして最も遅い)関数が使用される。このため、2009年以来、このシステムは「AMDの機能不全」ルーチンというニックネームで呼ばれている。 [11] 2020年現在、IntelのMKLは、Windows上の多くのコンパイル済み数学アプリケーション( NumPy、SymPy[アップデート]など)とともにデフォルトでインストールされる数値ライブラリのままである。[12] [13] MATLABはMKLに依存しているものの、リリース2020aから回避策を実装し、Intel以外の(AMD)CPUでもMKLによるAVX2の完全なサポートを保証しています。[14]
詳細
機能カテゴリ
Intel oneMKLには以下の機能カテゴリがあります。[15]
- 線形代数: BLAS ルーチンは、実数および複素数の単精度および倍精度データのベクトル-ベクトル (レベル 1)、行列-ベクトル (レベル 2)、行列-行列 (レベル 3) 演算です。LAPACK は、調整された LU、コレスキー、QR 分解、固有値、最小二乗ソルバーで構成されています。MKL には、スパース BLAS、 ScaLAPACK、スパース ソルバー、拡張固有値ソルバー(FEAST、PARDISO)、 PBLAS、BLACS も含まれています。MKL は、小さな次元では libxsmm よりも優れています。
- oneMKL は BLAS および LAPACK の標準インターフェースを使用するため、他の実装を使用するアプリケーションは、MKL ライブラリと再リンクすることで、Intel および互換プロセッサでより優れたパフォーマンスを得ることができます。
- oneMKL には、1 次元から多次元、複素数から複素数、実数から複素数、実数から実数まで、任意の長さのさまざまな高速フーリエ変換(FFT)が含まれています。オープン ソースのFFTWで作成されたアプリケーションは、MKL の一部として提供されるインターフェイス ラッパー ライブラリとリンクすることで、簡単に MKL に移植でき、移行が容易になります。
- LAPACK と FFT のクラスター バージョンも MKL の一部として利用可能であり、マルチスレッドによる単一ノード並列処理に加えて MPI 並列処理も利用できます。
- ベクトル数学関数には、単精度および倍精度の実数と複素数データ型に対する計算集約型のコア数学演算が含まれます。これらはコンパイラ ライブラリの libm 関数に似ていますが、スカラーではなくベクトルを操作してパフォーマンスを向上させます。ルーチンの動作をカスタマイズするために、精度、エラー モード、非正規化数の処理を設定するためのさまざまなコントロールがあります。
- 統計関数には、マルチコア プロセッサ向けに最適化された乱数ジェネレータと確率分布が含まれます。また、基本的な統計、依存関係の推定などを計算する、計算集約型のコア内およびコア外ルーチンも含まれています。
- データ フィッティング関数には、データ分析、幾何学的モデリング、および表面近似アプリケーションで使用できる 1 次元補間用のスプライン (線形、二次、三次、ルックアップ、ステップワイズ定数) が含まれます。
- 偏微分方程式
- 非線形最適化問題ソルバー
かつてoneMKLにはディープニューラルネットワーク関数が含まれていましたが、オープンソースのIntel oneAPIディープニューラルネットワークライブラリの起源となったスピンオフとしてバージョン2020で削除されました。[16]
参照
- OneAPI (コンピューティングアクセラレーション)
- 数値ライブラリのリスト
- 自動調整線形代数ソフトウェア(ATLAS)
- GotoBLASとOpenBLAS
- 統合パフォーマンスプリミティブ
- 数値ライブラリコレクション– NECのベクトルプロセッサ用
参考文献
- ^ 「Intel® Math Kernel Library リリースノートと新機能」. software.intel.com .
- ^ ab インテル® oneAPI マス・カーネル・ライブラリー (oneMKL) | インテル® ソフトウェア
- ^ ab 「Intel Simplified Software License」。
- ^ 「OneMKL — oneAPI 仕様 1.1-rev-1 ドキュメント」。
- ^ ab "Intel Math Kernel Library"。
- ^ ab "Intel Math Kernel Library (MKL)"。
- ^ 「MKL - Intel Math Kernel Library」. 2012年4月23日.
- ^ "oneapi-src/oneMKL". oneAPI-SRC. 2021年3月19日.
oneMKL インターフェースは、oneMKL 仕様に準拠した oneMKL データ並列 C++ (DPC++) インターフェースのオープンソース実装です。デバイス固有のライブラリを使用して、複数のデバイス (バックエンド) で動作します。
- ^ 「Intel Math Kernel Library、リファレンス・マニュアル、バージョン情報」(PDF) . c. 2004. p. ii . 2024年7月25日閲覧。
- ^ 「Intel Math Kernel Library ライセンスに関する FAQ」。
- ^ アグナー・フォグ。 「AgnerのCPUブログ - Intelの「不自由なAMD」機能」。
- ^ 「コメント チェーン: r/matlab - AMD Ryzen/TR CPU で Matlab に高速コードパスを使用させる方法 - 最大 250% のパフォーマンス向上」reddit。 2020 年 3 月 31 日。 2020 年 6 月6 日閲覧。
- ^ 「High-Performance Computing Center Stuttgart - Knowledge Base - Libraries(Hawk)」2020年6月6日閲覧。
- ^ 「もはや不自由ではない: Matlab が AMD CPU 上でフルスピードで動作するようになりました - ExtremeTech」www.extremetech.com 。 2020 年 10 月 29 日閲覧。
- ^ admin (2019-11-14). 「Intel® Math Kernel Library - C の開発者リファレンス」. software.intel.com . 2019-11-27に閲覧。
- ^ 「Intel MKL-DNN からoneDNN への移行」 。Intel 。2024 年7 月 25 日閲覧。
外部リンク
- 公式サイト
- ドキュメント
- oneMKL ユーザーフォーラム
- oneAPI oneMKL 仕様
- oneMKL ベンチマーク スイート
