Oracle® Solaris Studio 12.4: Fortran ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

3.4.23 –fast

実行パフォーマンスを最適化するオプションを選択します。


注 -  このオプションは、リリースごと、またはコンパイラごとに変更されることのあるほかのオプションを選択する機能として定義されています。-fast により選択されるいくつかのオプションはすべてのプラットフォームで使用できない可能性があります。-fast の展開を表示するには、-dryrun フラグを使用してコンパイルしてください。

-fast は、特定のベンチマークアプリケーションのパフォーマンスを引き上げます。しかし、オプションによっては、アプリケーションで使用できない場合があります。-fast を使用して、最大のパフォーマンスを得るためにアプリケーションをコンパイルしてください。しかし、さらに調整が必要な場合があります。-fast を指定してコンパイルしたプログラムが正しく動作しない場合、-fast を形成している個々のオプションを調査して、プログラムを正しく動作させるオプションだけを呼び出してください。

また、-fast でコンパイルされたプログラムは、使用するデータセットにより、高いパフォーマンスと正確な結果を実現できないことがあります。浮動小数点演算の特定プロパティーに依存しているプログラムは、-fast を使用してコンパイルしないでください。

-fast で選択されたオプションの一部は暗黙的にリンクするため、コンパイルとリンクを別々に行う場合は、リンク時も必ず -fast を指定してください。

-fast では次のオプションが選択されます。

  • -xtarget=native ハードウェアターゲット

    コンパイルするマシンと異なるターゲットでプログラムを実行する場合は、-fast のあとにコードジェネレータオプションを続けてください。例: f95 -fast -xtarget=ultraT2 ...

  • -O5 最適化レベルオプション。

  • -depend オプションは、データの依存関係と再構築についてループを解析します。(このオプションは最適化レベル -xO3 以上でコンパイルすると、常に有効になります。)

  • システムが提供するインライン展開テンプレート用の -libmil オプション。

    例外処理を使用する C モジュールでは、-fast のあとに -nolibmil を付けます (-fast -nolibmil のように)-libmil を使うと errno の設定や、matherr(3m) の呼び出しによって、例外を検出することができなくなります。

  • 積極的に浮動小数点を最適化しようとする -fsimple=2 オプション。

    厳密に IEEE 754 標準に準拠する必要がある場合は –fsimple=2 は適していません。–fsimple[={1|2|0}]を参照してください。

  • 共通ブロックの倍および 4 倍データ用に倍長ロードとストアを生成する -dalign オプション。このオプションを使用すると、標準外の形式で共通ブロックの Fortran データの境界整列が行われる可能性があります。

  • -xlibmopt オプションは、最適化された数学ライブラリルーチンを選択します。

  • -pad=local は、キャッシュの利用率を改善するために、適宜共通ブロック内の変数の間にパディングを挿入します。(SPARC)

  • -xvector=lib は、DO ループ内のある特定の数学ライブラリ呼び出しを、同等のベクトル化されたライブラリルーチンの単一呼び出しに変換します。(SPARC)

  • -fma=fused は、浮動小数点の積和演算 (FMA) 命令の自動生成を有効にします

  • –fns は、標準外の浮動小数点演算の例外ハンドリングおよび段階的アンダーフローを選択します。–fns[={yes|no}]を参照してください。

  • -xvector および -xlibmopt で必要なため、-fround=nearest が選択されます。(Oracle Solaris)

  • 共通の浮動小数点例外のトラッピング -ftrap=common は、f95 で有効です。

  • -nofstore は、式の精度を強制的に結果の精度にする設定を取り消します。(x86)

  • x86 で -xregs=frameptr を使用すると、コンパイラは汎用レジスタとしてフレームポインタレジスタを使用できます。特に C、C++、Fortran が混在するソースコードをコンパイルする場合は、詳細について —xregs=frameptr の説明を参照してください。-fast のあとに -xregs=no%frameptr を指定すると、フレームポインタレジスタは通常の用途でのレジスタとして使用されません。(x86)

次に示すように、-fast オプションのあとに別のオプションを付けて、このリストに追加したり削除したりできます。

f95 -fast -fsimple=1 -xnolibmopt ...

この例では、-fast で選択された -fsimple=2 の指定を変更し、-xlibmopt を無効にしています。

-fast-dalign-fns-fsimple=2 を呼び出すため、-fast でコンパイルされたプログラムは、標準外の浮動小数点演算、標準外のデータ整列、および標準外の式評価の配列を招くことがあります。これらの選択オプションは、ほとんどのプログラムに適していない可能性があります。

-fast フラグで選択する一連のオプションは、コンパイラのリリースによって変更されることがあります。-dryrun を指定してコンパイラを呼び出すと、-fast の展開値が表示されます。

<sparc>% f95 -dryrun -fast |& grep ###
          ###     command line files and options (expanded):
          ### -dryrun -xO5 -xarch=sparcvis2 -xcache=64/32/4:1024/64/4
              -xchip=ultra3i -xdepend=yes -xpad=local -xvector=lib
              -dalign -fsimple=2 -fns=yes -ftrap=common -xlibmil
              -xlibmopt -fround=nearest