インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド
デノーマル結果を 0 にフラッシュします。
Windows*: IA-32 アーキテクチャー: [Floating point (浮動小数点)] > [Flush Denormal Results to Zero (デノーマル結果のフラッシュ)]
インテル® 64 アーキテクチャー: なし
Linux*: なし
OS X*: [Floating point (浮動小数点)] > [Flush Denormal Results to Zero (デノーマル結果のフラッシュ)]
-ftz または /Qftz |
デノーマル結果は 0 にフラッシュされます。 最適化オプション O レベル (O0 を除く) を指定すると、-ftz と /Qftz がセットされます。 |
オプション -fpe0 と -fpe1 (Linux* および OS X*) は、-ftz をセットします。オプション /fpe:0 と /fpe:1 (Windows*) は、/Qftz をセットします。
このオプションは、アプリケーションが漸次アンダーフロー・モードの場合に、デノーマル結果をゼロにフラッシュします。デノーマル値がアプリケーションの動作に影響を与えない場合、アプリケーションのパフォーマンスが向上する場合があります。
このオプションは、FTZ ハードウェア・フラグと DAZ ハードウェア・フラグをセットまたはリセットします。FTZ をオンにすると、浮動小数点演算からデノーマル結果は、値 0 にセットされます。FTZ がオフの場合、デノーマル結果はそのままになります。DAZ をオンにすると、浮動小数点への入力として使用されるデノーマル値は、ゼロとして扱われます。DAZ がオフの場合、正規化されていない命令の入力はそのままになります。インテル® 64 アーキテクチャー・ベースのシステムでは、FTZ と DAZ の両方を利用できます。FTZ および DAZ は、すべての IA-32 アーキテクチャーでサポートされているわけではありません。
IA-32 アーキテクチャー・ベースのシステム上で、-ftz (Linux* および OS X*) または /Qftz (Windows*) が SSE を有効にするオプション (xN や QxN など) と組み合わせて使用されると、コンパイラーはメインルーチンにコードを挿入し、FTZ および DAZ をセットします。このようなオプションなしに -ftz または /Qftz を使用すると、コンパイラーは、ランタイム・プロセッサー・チェックに基づいて条件付きで FTZ/DAZ をセットするコードを挿入します。FTZ/DAZ をセットするコードを挿入しないようにするには、-no-ftz (Linux* および OS X*) または /Qftz- (Windows*) を指定します。
このオプションは、メインプログラムをコンパイルするときにのみ効果があります。このオプションは、プロセスに FTZ/DAZ モードをセットします。初期スレッドおよびそのプロセスによってその後に作成されるあらゆるスレッドは、FTZ/DAZ モードで動作します。
このオプションがプログラムの数値動作で好ましくない結果を出力した場合、コマンドラインで -no-ftz または /Qftz- を使用することで、O3 最適化の利点を活用したままで、FTZ/DAZ モードをオフにできます。
オプション -ftz と /Qftz はパフォーマンス・オプションです。これらのオプションを設定しても、プログラム中のすべてのデノーマル数がゼロにフラッシュされるとは限りません。ランタイム時に生成されるデノーマル数をゼロにフラッシュするだけです。