ランタイムチェック用に IA-32 アーキテクチャー・ベースのプロセッサーを対象にする

-ax (Linux* および Mac OS* X) オプションまたは /Qax (Windows*) オプションを指定すると、コンパイラーにより、IA-32 アーキテクチャーおよびインテル(R) 64 アーキテクチャーをベースとした新しいインテル(R) プロセッサーのパフォーマンスと機能を活用できる、複数の専用コードパスを生成できるかどうかが判断されます。このオプションでは、同じアプリケーションを多くのプロセッサーで実行できるように汎用コードパスも生成されます。ただし、用コードは、専用コードに比べると一般的に実行速度は遅くなります。

コンパイラーは、どのバージョンのコードを実行するかを決定するランタイム・チェック・コードを挿入します。プロセッサー固有のコードバージョンと汎用のコードバージョンの両方が含まれるため、コンパイルされたバイナリーのサイズは大きくなります。アプリケーション・パフォーマンスは、使用するコードを決定するランタイムチェックによって多少変わります。実行されるコードパスは、実行時に検出されるプロセッサーによって決まります。

汎用コードパスのプロセッサー・サポートは、-x (Linux および Mac OS X) オプションまたは /Qx (Windows) オプション (デフォルトのアーキテクチャー値が含まれる) で決まります。汎用コードパスのアーキテクチャーの最小要件をデフォルトレベルよりも上にすることはできますが、デフォルトよりも低い値を設定することはできません。汎用コードは、x オプションで指定された最小アーキテクチャーと互換性のないプロセッサーでは正しく動作しません。

専用コードパスの最適化には、インテル(R) ストリーミング SIMD 拡張命令 4 (SSE4)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3)、ストリーミング SIMD 拡張命令 3 (SSE3)、ストリーミング SIMD 拡張命令 2 (SSE2) またはストリーミング SIMD 拡張命令 (SSE) の生成とその使用が含まれます。ただし、ランタイムチェックでこれらの命令セットがサポートされていることが確認されたプロセッサーでのみ実行されます。

特に記述がない限り、次の processor 値が IA-32 アーキテクチャーとインテル 64 アーキテクチャーで有効です。

Linux および Mac OS X

Windows

説明

-axS

/QaxS

SSE4 ベクトル化コンパイラー命令およびメディア・アクセラレーター命令がサポートされる予定の将来のインテル・プロセッサー向けに、専用コードパスを生成し、アーキテクチャーを最適化できます。

Mac OS X: IA-32 アーキテクチャーのみ。

-axT

/QaxT

インテル・プロセッサーの SSSE3、SSE3、SSE2、SSE 用の専用コードパスを生成し、インテル(R) Core(TM)2 Duo プロセッサー・ファミリー向けに最適化することができます。

Mac OS X: IA-32 アーキテクチャーとインテル 64 アーキテクチャー。

-axP

/QaxP

インテル・プロセッサーの SSE3、SSE2、SSE 用の専用コードを生成し、インテル Core マイクロアーキテクチャーと Intel Netburst(R) マイクロアーキテクチャーをベースにしたインテル・プロセッサー向けに最適化することができます。

Mac OS X: IA-32 アーキテクチャーとインテル 64 アーキテクチャー。

-axB

/QaxB

推奨されていないオプション (古いオプション)。インテル・プロセッサーの SSE2 と SSE 用の専用コードパスを生成し、インテル(R) Pentium(R) M プロセッサー向けにコードを最適化できます。

この値を使用するのが初めての場合は、代わりに N または W の使用を検討してください。

Linux および Windows: IA-32 アーキテクチャーのみ。

-axN

/QaxN

インテル・プロセッサーの SSE2 と SSE 用の専用コードを生成し、インテル Pentium 4 プロセッサーおよび SSE2 対応インテル(R) Xeon プロセッサー向けにコードを最適化できます。

Linux および Windows: IA-32 アーキテクチャーのみ。

-axW

/QaxW

インテル・プロセッサーの SSE2 と SSE 用の専用コードを生成し、インテル Pentium 4 プロセッサーおよび SSE2 対応インテル Xeon プロセッサー向けにコードを最適化できます。

インテル 64 アーキテクチャーの最小値です。

-axK

/QaxK

インテル・プロセッサーの SSE 用の専用コードパスを生成し、インテル Pentium III プロセッサーとインテル Pentium III Xeon プロセッサー向けに最適化できます。

Linux および Windows: IA-32 アーキテクチャーのみ。

-diag-disable cpu-dispatch (Linux および Mac OS X) または /Qdiag-disable:cpu-dispatch (Windows) を指定して、CPU ディスパッチの警告を無効にすることができます。

IA-32 またはインテル 64 アーキテクチャーをベースとした複数のプロセッサー上でアプリケーションを実行する必要がない場合は、-x (Linux および Mac OS X) オプションまたは /Qx (Windows) オプションを使用するか、または x オプションを組み合わせて使用することを検討してください。オプションを組み合わせると、特定のプロセッサーでのみ実行する最適化コードを生成するとともに、互換性のために複数のコードパスを生成できます。オプションを組み合わせる場合は、-x (Linux および Mac OS X) オプションまたは /Qx (Windows) オプションを前に配置して、最小 processor 値として指定された processor 値と互換性のあるプロセッサーでのみ汎用コードを実行させるようにします。

次の組み合わせ例は、インテル Core 2 Duo プロセッサー (パフォーマンス・ゲインがある限り) の最適化バージョン、インテル Core Duo プロセッサー (パフォーマンス・ゲインがある限り) の最適化バージョン、および汎用バージョン (OS とアーキテクチャーの最小要件の命令セットがサポートされている IA-32 アーキテクチャーで実行される) を生成する方法を示します。

プラットフォーム

Linux

icpc -axPT sample.cpp

Windows

icl /QaxPT sample.cpp

関連情報

プロセッサー固有の最適化アプリケーションを生成するその他のオプション

-mtune (Linux および Mac OS X) オプションまたは /G{n} (Windows) オプションは、同じプロセッサー・ファミリーに属する前世代のインテル・プロセッサーと互換性のあるコードを生成します。互換性動作とは、-mtune=pentium4 (Linux および Mac OS X) または /G7 (Windows) で生成されたコードが、IA-32 アーキテクチャー・ベースの前世代プロセッサーで実行できることを意味します。ただし、-mtune=pentium (Linux および Mac OS X) または /G5 (Windows) でコンパイルされたコードの場合は、コード実行が遅くなる可能性があります。

次のオプションで、IA-32 アーキテクチャーまたはインテル 64 アーキテクチャーをベースとした特定のプロセッサー向けにアプリケーション・パフォーマンスを最適化できます。

Linux および Mac OS X

Windows

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

-mtune=pentium4

/G7

デフォルト。インテル Pentium 4 プロセッサー、インテル Core Duo プロセッサー、インテル Core Solo プロセッサー、インテル Xeon プロセッサー、インテル Pentium M プロセッサー、およびストリーミング SIMD 拡張命令 3 (SSE3) 対応インテル Pentium 4 プロセッサー

-mtune=pentiumpro

/G6

インテル Pentium Pro プロセッサー、インテル Pentium II プロセッサー、およびインテル Pentium III プロセッサー

-mtune=pentium

-mtune=pentium-mmx

/G5

インテル Pentium プロセッサーおよび MMX(R) テクノロジー インテル(R) Pentium(R) プロセッサー

Windows: 本リリースでは、/G5/G6/G7 は削除されていませんが、推奨されていないオプションです。

関連情報

次のコマンド例は、ソースプログラム sample.cpp から、デフォルトでインテル Pentium 4 プロセッサーおよびインテル Xeon プロセッサー向けに最適化されたコンパイル済みバイナリーを 1 つ生成します。このバイナリーはインテル Pentium プロセッサー、インテル Pentium III プロセッサー、および最新のプロセッサー上でも実行できます。次の例では、デフォルトのオプションを使用する方法を示します。

プラットフォーム

Linux および Mac OS X

icpc -mtune=pentium4 sample.cpp

Windows

icl /G7 sample.cpp