インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

mtune、tune

特定のプロセッサー向けの最適化を実行しますが、(-march とは違い) 拡張命令セットは使用しません。

構文

Linux* および macOS*:

-mtune=processor

Windows*:

/tune:processor

引数

processor

このプロセッサー向けにコンパイラーは最適化を行います。設定可能な値は以下のとおりです。

generic

コンパイラーのデフォルト動作向けにコードを最適化します。

broadwell
haswell
ivybridge
knl
sandybridge
silvermont
skylake

指定した開発コード名のインテル® マイクロアーキテクチャーをサポートするプロセッサー向けに最適化されたコードを生成します。

キーワード knlsilvermont は Windows* および Linux* でのみ利用できます。

core-avx2

インテル® アドバンスト・ベクトル・エクステンション 2 (インテル® AVX2)、インテル® AVX、インテル® SSE4.2、インテル® SSE4.1、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令をサポートするプロセッサー向けにコードを最適化します。

core-avx-i

Float-16 変換命令および RDRND 命令、インテル® AVX、インテル® SSE4.2、インテル® SSE4.1、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令をサポートするプロセッサー向けにコードを最適化します。

corei7-avx

インテル® AVX、インテル® SSE4.2、インテル® SSE4.1、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令をサポートするプロセッサー向けにコードを最適化します。

corei7

インテル® SSE4 高効率および高速な文字列処理命令をサポートするプロセッサー向けにコードを最適化します。インテル® SSE4 ベクトル化コンパイラー命令およびメディア・アクセラレーター命令、インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令をサポートするプロセッサー向けのコードも生成します。

atom

-minstruction オプション (Linux* および macOS*) または /Qinstruction オプション (Windows*) の設定に応じて、MOVBE 命令をサポートするプロセッサー向けにコードを最適化します。インテル® SSSE3、インテル® SSE3、インテル® SSE2、インテル® SSE 命令をサポートするプロセッサー向けのコードも生成します。

core2

インテル® MMX®、インテル® SSE、インテル® SSE2、インテル® SSE3、インテル® SSSE3 命令セットをサポートしているインテル® Core™2 プロセッサー・ファミリー向けに最適化します。

pentium-mmx

インテル® MMX® テクノロジー対応インテル® Pentium® プロセッサー向けに最適化します。

pentiumpro

インテル® Pentium® Pro プロセッサー、インテル® Pentium® II プロセッサー、およびインテル® Pentium® III プロセッサー向けに最適化します。

pentium4m

インテル® MMX® テクノロジー対応インテル® Pentium® 4 プロセッサー向けに最適化します。

pentium-m
pentium4
pentium3
pentium

インテル® Pentium® プロセッサー向けにコードを最適化します。pentium3 は、Linux* でのみ利用できます。

デフォルト

generic

コンパイラーのデフォルト動作向けのコードが生成されます。

説明

このオプションは、特定のプロセッサー向けの最適化を実行しますが、(-march とは違い) 拡張命令セットは使用しません。

作成される実行ファイルは下位互換ですが、生成されるコードは特定のプロセッサー向けに最適化されます。例えば、-mtune=core2 または /tune:core2 で生成されたコードは、第 4 世代インテル® Core™ プロセッサー上でも正しく実行されますが、-mtune=haswell または /tune:haswell で生成されたコードよりも実行速度が遅い可能性があります。-mtune=haswell (/tune:haswell) または -mtune=core-avx2 (/tune:core-avx2) で生成されたコードは、インテル® Core™2 プロセッサーでも正しく実行されますが、-mtune=core2 または /tune:core2 で生成されたコードよりも実行速度が遅い可能性があります。-march=core-avx2 または /arch:core-avx2 で生成されたコードは、インテル® Core™2 プロセッサーなどの古いプロセッサーでは正しく実行されません。

IDE オプション

Visual Studio*: [Code Generation [Intel C++] (コード生成 [インテル® C++])] > [Intel Processor Microarchitecture-Specific Optimization (マイクロアーキテクチャー固有の最適化)]

Eclipse*: [Code Generation (コード生成)] > [Intel Processor Microarchitecture-Specific Optimization (マイクロアーキテクチャー固有の最適化)]

Xcode*: [Code Generation (コード生成)] > [Intel Processor Microarchitecture-Specific Optimization (マイクロアーキテクチャー固有の最適化)]

代替オプション

-mtune

Linux*: -mcpu (これは古いオプションです)

macOS*: なし

Windows*: なし

最適化に関する注意事項

インテル® コンパイラーでは、インテル® マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル® ストリーミング SIMD 拡張命令 2、インテル® ストリーミング SIMD 拡張命令 3、インテル® ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します。インテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル® マイクロプロセッサーでの使用を前提としています。インテル® マイクロアーキテクチャーに限定されない最適化のなかにも、インテル® マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー・リファレンス・ガイドを参照してください。

注意事項の改訂 #20110804

関連情報