関数に多数のパラメーターがある場合や、内部でパラメーター・エラーをチェックする場合、問題のサイズが小さいとインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) 関数を呼び出すオーバーヘッドが大きくなる可能性があります。そのような小規模な問題のパフォーマンス・オーバーヘッドを削減するため、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) の直接呼び出し機能は、コンパイラーと連携して、サポートされているインテル® oneAPI マス カーネル ライブラリー (oneMKL) 関数への呼び出しパラメーターを前処理し、エラーチェックをバイパスする特別に最適化された小規模行列カーネルを直接呼び出すか、インライン展開します。直接呼び出しをサポートする関数の一覧については、直接呼び出しの制限事項を参照してください。
この機能をアクティブするには、次の操作を行います。
以下に説明するコンパイラー・オプションを指定して、インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のスレッドモードまたはシーケンシャル・モードに応じて、プリプロセッサー・マクロを使用して C または Fortran コードをコンパイルします。
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) のモード |
マクロ |
コンパイラー・オプション |
|---|---|---|
スレッド化 |
MKL_DIRECT_CALL | /DMKL_DIRECT_CALL |
シーケンシャル |
MKL_DIRECT_CALL_SEQ | /DMKL_DIRECT_CALL_SEQ |
Fortran アプリケーション:
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) は、問題サイズが小さい場合 (例: 行列のランクが 50 未満の dgemm などの直接呼び出しをサポートする関数の呼び出し)、エラーチェックと中間関数呼び出しをスキップします。
製品および性能に関する情報 |
|---|
性能は、使用状況、構成、およびその他の要因によって異なります。詳細については、www.Intel.com/PerformanceIndex (英語) をご覧ください。 改訂 #20201201 |