高度な最適化オプション
このセクションでは、高度な最適化に関連するコンパイラー・オプションを説明します。
親トピック:
コンパイラー・オプションの詳細
ansi-alias、Qansi-alias
エイリアシングと配列の範囲に関する Fortran 標準の特定の規則を仮定するようにコンパイラーに指示します。
coarray、Qcoarray
Co-Array 機能を有効にします。
coarray-config-file、Qcoarray-config-file
メッセージ・パッシング・インターフェイス (MPI) 構成ファイルの名前を指定します。
coarray-num-images、Qcoarray-num-images
Co-Array 実行ファイルの実行に使用できるデフォルトのイメージの数を指定します。
complex-limited-range、Qcomplex-limited-range
COMPLEX 型のデータを使用するいくつかの算術演算で、基本代数展開の使用を有効にするかどうかを指定します。この機能は ifort でのみ利用できます。
guide、Qguide
自動ベクトル化、自動並列化、データ変換のアドバイスレベルを設定します。この機能は ifort でのみ利用できます。
guide-data-trans、Qguide-data-trans
データ変換のアドバイスレベルを設定します。この機能は ifort でのみ利用できます。
guide-file、Qguide-file
ガイド付き自動並列化の結果をファイルに出力します。この機能は ifort でのみ利用できます。
guide-file-append、Qguide-file-append
ガイド付き自動並列化の結果をファイルに追加します。この機能は ifort でのみ利用できます。
guide-opts、Qguide-opts
特定のコードを解析して、最適化を向上させるためのアドバイスを生成するようにコンパイラーに指示します。この機能は ifort でのみ利用できます。
guide-par、Qguide-par
自動並列化のアドバイスレベルを設定します。この機能は ifort でのみ利用できます。
guide-vec、Qguide-vec
自動ベクトル化のアドバイスレベルを設定します。この機能は ifort でのみ利用できます。
heap-arrays
自動配列および一時的な計算用に作成される配列を、スタックではなくヒープ上に割り当てます。
pad、Qpad
変数と配列のメモリーレイアウトの変更を有効にします。
qmkl、Qmkl
インテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) の特定のライブラリーにリンクするようにコンパイラーに指示します。Windows* システムでは、このオプションをコンパイル時に指定する必要があります。
qopt-args-in-regs、Qopt-args-in-regs
スタックではなく、レジスターで引数を渡すことで、ルーチンへの呼び出しを最適化するかどうかを指定します。これは古いオプション (非推奨) で、将来のリリースで削除される予定です。この機能は ifort でのみ利用できます。
qopt-assume-safe-padding、Qopt-assume-safe-padding
変数と動的に割り当てられたメモリーがオブジェクト境界を越えてパディングされているとコンパイラーが仮定するかどうかを制御します。この機能は ifort でのみ利用できます。
qopt-block-factor、Qopt-block-factor
ループ・ブロッキング係数を指定できます。この機能は ifort でのみ利用できます。
qopt-dynamic-align、Qopt-dynamic-align
動的にデータをアライメントする最適化を有効/無効にします。この機能は ifort でのみ利用できます。
qopt-for-throughput、Qopt-for-throughput
プログラムがシングルジョブ・モードで実行されるか、マルチジョブ・モードで実行されるかに応じて、コンパイラーがどのようにスループットを最適化するかを決定します。この機能は ifx でのみ利用できます。
qopt-jump-tables、Qopt-jump-tables
switch 文におけるジャンプテーブルの生成を有効/無効にします。この機能は ifort でのみ利用できます。
qopt-malloc-options
malloc() の代替アルゴリズムを指定できるようにします。この機能は ifort でのみ利用できます。
qopt-matmul、Qopt-matmul
コンパイラーで生成される行列乗算 (matmul) ライブラリー呼び出しを有効または無効にします。
qopt-mem-layout-trans、Qopt-mem-layout-trans
コンパイラーによって実行されるメモリーレイアウト変換のレベルを制御します。
qopt-multi-version-aggressive、Qopt-multi-version-aggressive
ポインター・エイリアシングとスカラー置換のチェックに強力なマルチバージョニングを使用するようにコンパイラーに指示します。この機能は ifort でのみ利用できます。
qopt-multiple-gather-scatter-by-shuffles、Qopt-multiple-gather-scatter-by-shuffles
複数の隣接するギャザー/スキャッター形式のベクトルメモリー参照の最適化を有効/無効にします。
qopt-prefetch、Qopt-prefetch
プリフェッチ挿入による最適化を有効/無効にします。この機能は ifort でのみ利用できます。
qopt-prefetch-distance、Qopt-prefetch-distance
ループ内でコンパイラーが生成するプリフェッチに使用されるプリフェッチの距離を指定します。この機能は ifort でのみ利用できます。
qopt-prefetch-issue-excl-hint、Qopt-prefetch-issue-excl-hint
インテル® マイクロアーキテクチャー Broadwell (開発コード名) 以降で prefetchW 命令をサポートします。この機能は ifort でのみ利用できます。
qopt-ra-region-strategy、Qopt-ra-region-strategy
レジスター・アロケーターが各ルーチンを領域に分配する方法を選択します。この機能は ifort でのみ利用できます。
qopt-streaming-stores、Qopt-streaming-stores
最適化のためのストリーミング・ストアの生成を有効にします。この機能は ifort でのみ利用できます。
qopt-subscript-in-range、Qopt-subscript-in-range
ループ内で "大きな" 整数が使用または計算されていないと仮定するかどうかを指定します。この機能は ifort でのみ利用できます。
qopt-zmm-usage、Qopt-zmm-usage
zmm レジスターの使用レベルを定義します。
qoverride-limits、Qoverride-limits
大規模で複雑なコンパイル単位の過度のメモリー使用やコンパイル時間を防ぐため、特定の内部コンパイラー制限をオーバーライドします。この機能は ifort でのみ利用できます。
reentrancy
マルチスレッド・アプリケーションをサポートする再入力可能コードを生成するようにコンパイラーに指示します。
safe-cray-ptr、Qsafe-cray-ptr
CRAY* ポインターが他の変数とエイリアスしないようにコンパイラーに指示します。
scalar-rep、Qscalar-rep
ループ変換中にコンパイラーによって実行されるスカラー置換の最適化を有効/無効にします。この機能は ifort でのみ利用できます。
simd、Qsimd
コンパイラーによる SIMD ディレクティブの解釈を有効/無効にします。この機能は ifort でのみ利用できます。
unroll、Qunroll
ループアンロール回数の上限を設定します。
unroll-aggressive、Qunroll-aggressive
特定のループに、より強力なアンロールを使用するかどうかを指定します。この機能は ifort でのみ利用できます。
vec、Qvec
ベクトル化を有効/無効にします。
vec-guard-write、Qvec-guard-write
ベクトル化されたループの条件チェックを実行するようにコンパイラーに指示します。この機能は ifort でのみ利用できます。
vec-threshold、Qvec-threshold
ループのベクトル化のしきい値を設定します。
vecabi、Qvecabi
ベクトル関数の作成および呼び出し時に、コンパイラーが使用するアプリケーション・バイナリー・インターフェイス (ABI) を指定します。この機能は ifort でのみ利用できます。