インテル® oneAPI マス・カーネル・ライブラリー (oneMKL)
インテル® oneAPI マス・カーネル・ライブラリー(oneMKL)は、最大限のパフォーマンスを必要とするアプリケーション向けに最適化され、広範囲に並列化されたルーチンの数学計算ライブラリーです。oneMKL には、C/Fortran プログラミング言語インターフェイスを備えた CPU アーキテクチャー向けのインテル® マス・カーネル・ライブラリー(インテル® MKL)のハイパフォーマンスな最適化が含まれており、各種 CPU アーキテクチャーとインテル® グラフィックス・テクノロジーでパフォーマンスを高める SYCL* インターフェイスが追加されています。oneMKL は、BLAS および LAPACK 線形代数ルーチン、高速フーリエ変換、ベクトル化された数学関数、乱数生成関数、およびその他の機能を提供します。
OpenMP* オフロードを使用して、インテル® GPU で標準の oneMKL 計算を実行できます。詳細については、「C インターフェイスの OpenMP* オフロード」(英語) および「Fortran インターフェイスの OpenMP* オフロード」(英語) を参照してください。
CPU と GPU アーキテクチャー向けに最適化された新しい SYCL* インターフェイスには、次のような計算機能が追加されています:
BLAS と LAPACK 密線形代数ルーチン
スパース BLAS 疎線形代数ルーチン
乱数ジェネレーター (RNG)
ベクトル演算が最適化されたベクトル数学 (VM) ルーチン
高速フーリエ変換 (FFT)
機能一覧、ドキュメント、サンプルコード、ダウンロードについては、インテル® oneAPI マス・カーネル・ライブラリーのウェブサイト (英語) をご覧ください。oneMKL をインテル® oneAPI ベース・ツールキット (英語) の一部として利用する場合、有償オプションとしてプライオリティー・サポート (英語) を考慮してください。インテルのコミュニティー・サポートについては、oneMKL フォーラム (英語) を参照してください。オープンソースの oneMath プロジェクトについては、oneMath GitHub* ページをご覧ください。
以下の表は、これらのサイトの違いを説明しています:
oneMath の oneAPI 仕様 (英語) |
パフォーマンス算術ライブラリー関数の SYCL* インターフェイスを定義します。oneMath 仕様は、仕様の実装に先行して、より頻繁に進化する可能性があります。 |
仕様のオープンソース実装。このプロジェクトの目標は、oneMath 仕様に記載されている SYCL* インターフェイスを任意の数学ライブラリーに実装し、任意のターゲット・ハードウェアで動作させる方法を示すことです。ここで示す実装はまだ仕様を完全に実装していないかもしれませんが、時間をかけて構築していくことを目標としています。コミュニティーがこのプロジェクトに貢献し、複数のハードウェア・ターゲットやその他の数学ライブラリーへのサポートの拡張に協力することを奨励します。 |
|
インテルの製品には、oneMath 仕様に非常に類似した SYCL* インターフェイスと、C および Fortran インターフェイスと同様の機能があり、インテル® oneAPI ベース・ツールキットの一部として提供されます。これは、インテル® CPU およびインテル® GPU ハードウェア向けに高度に最適化されており、oneMath オープンソース・プロジェクトのインテル・バックエンドに使用されます。 |