プロセッサ固有の自動最適化 (IA-32 のみ)

-ax{K|W| N|B|P} オプションは、指定されたインテル® プロセッサ固有の機能を利用する関数バージョンを生成できるかどうかを確認するようにコンパイラに命令します。コンパイラはこのような箇所を検出すると、プロセッサ固有に生成する関数がパフォーマンスを向上するかどうかを検証します。パフォーマンスが向上すると判明した場合、コンパイラはプロセッサ固有のバージョンと汎用バージョンの関数を生成します。汎用バージョンは、どの IA-32 プロセッサ上でも実行することができます。

プログラムの実行時に、使用しているインテル・プロセッサに応じて、この 2 つのバージョンのどちらを実行するか選択されます。このため、プログラムは以前の IA-32 プロセッサでも正常に動作しながら、新しいインテル・プロセッサにおいてパフォーマンスの大幅な向上を実現できます。

ただし、-ax{K|W|N|B|P} を使用した場合には、次のような欠点があります:


この方法で特定のプロセッサ向けに最適化したアプリケーションは、あらゆるインテル IA-32 プロセッサ上で実行できます。-x-ax オプションの両方を指定した場合、-x オプションで指定されたプロセッサの種類と互換性のあるプロセッサでのみ実行できる汎用コードが生成されます。

オプション

最適化の対象となるプロセッサ

-axK

インテル® Pentium® III プロセッサおよび互換性のあるインテル・プロセッサ。

-axW

インテル Pentium 4 プロセッサおよび互換性のあるインテル・プロセッサ。

-axN

インテル Pentium 4 プロセッサおよび互換性のあるインテル・プロセッサ。このオプションは、インテル・プロセッサ固有の最適化に加えて、新しい最適化も有効にします。

-axB

インテル Pentium M プロセッサおよび互換性のあるインテル・プロセッサ。このオプションは、インテル・プロセッサ固有の最適化に加えて、新しい最適化も有効にします。

-axP

ストリーミング SIMD 拡張命令 3 (SSE3) をサポートするインテル Pentium 4 プロセッサ。このオプションは、インテル・プロセッサ固有の最適化に加えて、新しい最適化も有効にします。

下記のコンパイルは、次のような 1 つの実行ファイルを生成します:

ifort -axNB prog.f90