-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 |
関連情報
-ax コンパイラー・オプション
-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 は削除されていませんが、推奨されていないオプションです。
関連情報
mtune コンパイラー・オプション
次のコマンド例は、ソースプログラム sample.cpp から、デフォルトでインテル Pentium 4 プロセッサーおよびインテル Xeon プロセッサー向けに最適化されたコンパイル済みバイナリーを 1 つ生成します。このバイナリーはインテル Pentium プロセッサー、インテル Pentium III プロセッサー、および最新のプロセッサー上でも実行できます。次の例では、デフォルトのオプションを使用する方法を示します。
プラットフォーム |
例 |
---|---|
Linux および Mac OS X |
icpc -mtune=pentium4 sample.cpp |
Windows |
icl /G7 sample.cpp |