数学ライブラリー

インテル® Fortran コンパイラーには、次の数学ライブラリーが含まれています。

ライブラリー名

説明

libimf.a (Linux* および macOS*)

インテルの数学ライブラリー。gcc により提供されている数学ライブラリーlibm.a への追加ライブラリーです。

両方のライブラリーともデフォルトでリンクされます。これは、GNU* 数学ライブラリーによりサポートされるいくつかの数学関数が、インテルの数学ライブラリーでは利用できないためです。このリンク処理により GNU* ユーザーは ifort の使用時にすべての関数を利用できるようになり、サポートされている場合にはインテルの最適化バージョンが有効になります。

libimf.a は、libm.a の前にリンクされます。最初に libm.a をリンクすると、使用される数学関数のバージョンが変更されます。

libimfライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより最適化されます。

libm.lib (スタティック・ライブラリー) と libmmd.dll (DLL バージョン) (Windows*)

インテル提供の数学ライブラリー。

libimfライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより最適化されます。

数学ライブラリー関数の超越関数を呼び出し、デフォルトの最適化オプション以上でコンパイルする場合は、デフォルトの丸めモード (最も近い偶数に丸める) を使用することを推奨します。これらの関数のレイテンシーやスループットが高速な実装では、デフォルトの最も近い偶数に丸めるモードで処理されます。ほかの丸めモードを使用すると、高速な実装で生成される結果は精度が落ちるか、予期しない浮動小数点ステータスフラグが設定されます。これは、数学ライブラリーの高速な実装への呼び出しを無効にする -no-fast-transcendentals か、あるいは浮動小数点環境でデフォルトの設定を仮定できないことをコンパイラーに知らせる-fp-model strict により回避できます。

インテルの数学ライブラリーの多くのルーチンは、互換マイクロプロセッサーよりもインテル製マイクロプロセッサーでより最適化されます。

インテル® マス・カーネル・ライブラリー (インテル® MKL)

ベクトルと行列でさまざまな演算を行う Fortran ルーチンと関数の数学ライブラリー。ライブラリーには、高速フーリエ変換 (fft) 関数やベクトル演算関数およびベクトル統計関数が含まれています。詳細は、「Microsoft* Visual Studio* でのインテル® パフォーマンス・ライブラリーの使用」とインテル® MKL ドキュメントを参照してください。

インテル® コンパイラーの数学ライブラリーには、さまざまなインテル® プラットフォーム向けにパフォーマンスが最適化された実装が含まれています。デフォルトでは、ハードウェアに最適な実装がランタイムに選択されます。ライブラリーがマルチスレッド・コードをディスパッチすると、データ競合が発生することがあります。これは、特定のソフトウェア解析ツールで検出できます。しかし、スレッドが同じ CPUID を持つコア上で実行されている限り、これらのデータ競合は無害であり、問題にはなりません。

製品および性能に関する情報

性能は、使用状況、構成、その他の要因によって異なります。詳細については、http://www.intel.com/PerformanceIndex/ (英語) を参照してください。

注意事項の改訂 #20201201