インテル® MKL 2017 デベロッパー・ガイド
次のサンプルコードとリンク行は、Fortran アプリケーションでインテル® MKL カーネルの直接呼び出しを有効にする方法を示します。
Fortran コンパイラーのプリプロセッサーによって前処理される mkl_direct_call.fi をインクルードします。
# include "mkl_direct_call.fi"
program DGEMM_MAIN
....
* インテル® MKL DGEMM の呼び出し
....
call sub1()
stop 1
end
* DGEMM を呼び出すサブルーチン
subroutine sub1
* インテル® MKL DGEMM の呼び出し
end
インテル® MKL をマルチスレッド・モードで使用するには、/fpp オプション (インテル® Fortran コンパイラー) または -Mpreprocess オプション (PGI コンパイラー) と MKL_DIRECT_CALL プリプロセッサー・マクロを指定してコンパイルします。
ifort /DMKL_DIRECT_CALL /fpp your_application.f mkl_intel_lp64.lib mkl_core.lib mkl_intel_thread.lib /Qopenmp -I%MKLROOT%/include
インテル® MKL をシーケンシャル・モードで使用するには、/fpp オプション (インテル® Fortran コンパイラー) または -Mpreprocess オプション (PGI コンパイラー) と MKL_DIRECT_CALL_SEQ プリプロセッサー・マクロを指定してコンパイルします。
ifort /DMKL_DIRECT_CALL_SEQ /fpp your_application.f mkl_intel_lp64.lib mkl_core.lib mkl_sequential.lib -I%MKLROOT%/include
最適化に関する注意事項 |
---|
インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。 注意事項の改訂 #20110804 |