Itanium(R) ベース・システムの浮動小数点オプション

次のオプションは、Itanium(R) ベース・システムにおける浮動小数点計算用にコンパイラーの最適化を制御します。以下のオプションは IA-32 システムおよびインテル(R) EM64T 対応システムでは利用できません。

Mac OS*: ここで説明されているオプションはサポートされていません。

Windows*

Linux*

効果

/Qftz

-ftz

このオプションは、デノーマル値がアプリケーション動作に影響を与えない場合に使用します。アプリケーションが漸次アンダーフロー・モードの場合に、デノーマル結果をゼロにフラッシュします。このオプションでデノーマル値をゼロにフラッシュすると、アプリケーション全体のパーフォーマンスが向上する可能性があります。

FTZ モードをオンにするには、このオプションを main プログラムが含まれているソースに対してのみ使用する必要があります。初期スレッドおよびそのプロセスによってその後に作成されるあらゆるスレッドは、FTZ モードで動作します。

SSE 命令を使用すると、パフォーマンスの問題が発生します。その他の SSE 特有の効果については、この後のコンパイラー・オプション・トピックを参照してください。

  • -fp-model precise (Linux) または /fp:precise (Windows) を使用する場合は、このオプションを無効にします。デノーマル結果をゼロにフラッシュするには、このオプションと -fp-model precise (Linux) または /fp:precise (Windows) を組み合わせます。

  • このオプションは、浮動小数点アンダーフローをゼロ (0) に設定し、プログラムをそのまま実行することによって、突発アンダーフロー (abrupt underflow) の結果に影響を与えます。無効な浮動小数点例外が発生しないように、正規化されていない値を演算でゼロ (0) として扱うようコンパイラーに指示します。

  • -O3 (Linux) または /O3 (Windows) オプションを使用すると、(このオプションが有効になり) 突発アンダーフロー (abrupt underflow) がゼロに設定されます。より低い最適化レベルでは、漸次アンダーフロー (gradual underflow) がデフォルトになります。

  • ゼロへの漸次アンダーフロー (gradual underflow) が発生するとパフォーマンスが低下します。高い最適化レベルを使用してデフォルトを突発アンダーフロー (abrupt underflow) にするか、明示的にこのオプションを設定することで、パフォーマンスを改善することができます。このオプションを使用すると、特に単精度のコードの場合、実際にアンダーフローが発生しなくても、Itanium 2 プロセッサーのパフォーマンスが向上することがあります。

プログラムの数値動作で好ましくない結果が出力された場合、次のようにコマンドラインでこのオプションを使用して FTZ モードをオフに設定できます。これにより、他の最適化の利点をそのまま活用できます。

詳細は、次のトピックを参照してください。

  • -ftz コンパイラー・オプション

/QIPF-fma

-IPF-fma

浮動小数点積和/積差演算の 1 つの演算への縮約を有効または無効にします。-fp-model strict (Linux) または /fp:strict (Windows) が指定されている場合を除き、コンパイラーは可能な限りこれらの演算を縮約します。-fp-model strict (Linux) または /fp:strict (Windows) オプションは、縮約を無効にします。

例えば、-fp-model strict (Linux) または /fp:strict (Windows) と -IPF-fma (Linux) または /QIPF-fma (Windows) を共に使用すると、コンパイラーは縮約演算を有効にします。

  • icpc -fp-model strict -IPF-fma prog.cpp (Linux)

  • icl /fp:strict /QIPF-fma prog.cpp (Windows)

詳細は、次のトピックを参照してください。

  • -IPF-fma コンパイラー・オプション

/QIPF-fp-speculation

-IPF-fp-speculation

デフォルト。浮動小数点演算のスペキュレーションを有効にするようにコンパイラーに指示します

-fp-model strict または -fp-model except (Linux)、/fp:strict または /fp:except (Windows) オプションを使用すると、スペキュレーション・モードは strict に設定され、上書きすることはできません。ただし、-fp-model fast (Linux)、/fp:fast (Windows) オプションを使用すると、-IPF-fp-speculation (Linux)、/QIPF-fp-speculation (Windows) オプションを使用してスペキュレーションを制限することができます。

詳細は、次のトピックを参照してください。

/QIPF-fp-relaxed

-IPF-fp-relaxed

sqrt() 関数や divide 演算のような数値演算関数で、より高速な、しかし多少精度が低いコードシーケンスを使用します。厳密な IEEE* 精度と比較した場合、このオプションを使用すると、そのような関数による浮動小数点演算精度が少し低くなります (通常は、最下位の桁数に制限されます)。

-fp-model (Linux) または /fp (Windows) オプションを使用すると、-no-IPF-fp-relaxed (Linux) または /QIPF_fp_relaxed- (Windows) オプションが無効になります。しかし、-fp-model (Linux) または /fp (Windows) は、明示的な設定は上書きしません。

詳細は、次のトピックを参照してください。