次のインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) 関数ドメインは、OpenMP* テクノロジーによってスレッド化されています。
直接法スパースソルバー
LAPACK
スレッド化されるルーチンのリストは、LAPACK ルーチンを参照してください。
レベル 1 BLAS とレベル 2 BLAS
スレッド化されるルーチンのリストは、レベル 1 BLAS ルーチンとレベル 2 BLAS ルーチンを参照してください。
レベル 2 スパース三角ソルバーを除くすべてのレベル 3 BLAS ルーチンとスパース BLAS ルーチン
すべてのベクトルマス関数 (サービス関数を除く)
FFT
スレッド化できる FFT 変換のリストは、スレッド化された FFT 問題を参照してください。
製品および性能に関する情報 |
---|
性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。 改訂 #20201201 |
このセクションで、? は各ルーチンの精度接頭辞を表します。値は、s、d、c、または z になります。
以下の LAPACK ルーチンは OpenMP* によってスレッド化されます。
スレッド化される LAPACK ルーチンまたは BLAS ルーチンに基づいて OpenMP* によるスレッド化を効果的に利用する LAPACK ルーチン:
?gesv、?posv、?gels、?gesvd、?syev、?heev、cgegs/zgegs、cgegv/zgegv、cgges/zgges、cggesx/zggesx、cggev/zggev、cggevx/zggevxなど ...
以下のリストで、? は各ルーチンの精度接頭辞を表します。値は、s、d、c、または z になります。
以下のルーチンは OpenMP* によってスレッド化されます。
問題の以下の特性によって、FFT 計算が OpenMP* によりスレッド化されるかどうか決定されます。
多くの FFT 問題はスレッド化されています。特に、1 回の呼び出しでの複数の変換の計算 (変換の数 > 1) を行う場合、スレッド化されます。どの変換がスレッド化されるかは、次のとおりです。
1 次元 (1D) 変換
1D 変換は多くの場合スレッド化されます。
インターリーブ複素数データレイアウトを使用するサイズ N の 1 次元複素数-複素数 (c2c) 変換は、以下の条件下でスレッド化されます (アーキテクチャーに依存します)。
アーキテクチャー |
状態 |
---|---|
インテル® 64 |
N が 2 の累乗、log2(N) > 9、変換が倍精度アウトオブプレース、入力/出力ストライドが 1。 |
任意 |
N がコンポジット (複合)、log2(N) > 16、入力/出力ストライドが 1。 |
分割複素レイアウトを使用した 1D 複素数から複素数への変換はスレッド化されません。
多次元変換
大容量データの多次元変換はスレッド化されます。