このセクションには、インテル® Advisor を使用してアプリケーションで解析を実行する前に行うべき手順が含まれています。以下を行います。
最も正確で完全な解析結果を得られる設定を使用して、リリースモードでアプリケーションの最適化バイナリーをビルドします。
インテル® Advisor で解析を始める前に実行結果を確認してください。
説明 |
対象 |
最適な C/C++ 設定 |
|---|---|---|
完全なデバッグ情報を生成する (コンパイラーとリンカ―) |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 オフロードのモデル化 スレッド化 |
Linux* コマンドライン: -g Windows* コマンドライン:
Microsoft* Visual Studio* IDE:
|
適度な最適化を適用する。 |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 スレッド化 オフロードのモデル化 |
Linux* コマンドライン: -O2 以上 Windows* コマンドライン:
Visual Studio* IDE:
|
インテル® Advisor のパフォーマンス・データ収集を妨げる可能性がある、プロシージャー間の最適化を無効にします インテル® oneAPI DPC++/C++ コンパイラーのみ |
オフロードのモデル化 |
Linux* コマンドライン: -no-ipo Windows* コマンドライン: /Qipo- |
コンパイラーの診断を生成する (オプション) |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -qopt-report=5 Windows* コマンドライン: /Qopt-report:5 Visual Studio* IDE: [C/C++] > [診断 [Intel C++]] > [最適化診断レベル] > [レベル 5 (/Qopt-report:5)] |
ベクトル化を有効にします |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -vec Windows* コマンドライン: /Qvec |
SIMD ディレクティブを有効にします |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -simd Windows* コマンドライン: /Qsimd |
OpenMP* ディレクティブに基づいてマルチスレッド・コードを生成できるようにする |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -qopenmp Windows* コマンドライン: /Qopenmp Visual Studio* IDE: [C/C++] > [言語 [Intel C++]] > [OpenMP* サポート] > [並列コードの生成 (/Qopenmp)] |
インテル® Advisor のアノテーション定義に関連する追加ディレクトリーを検索する |
スレッド化が主ですが、リファインメント解析にも役立ちます |
Linux* コマンドライン: - I${ADVISOR_[product_year]_DIR}/include Windows* コマンドライン: /I"%ADVISOR_[product_year]_DIR%"\include Visual Studio* IDE: [C/C++] > [全般] > [追加のインクルード・ディレクトリー] > [$(Advisor[product_year]_DIR)\include;%(AdditionalIncludeDirectories)] |
マルチスレッド化されたダイナミック・リンク・ライブラリーで未定義の参照を検索します |
スレッド化のみ |
Linux* コマンドライン: -Bdynamic Windows* コマンドライン: /MD または /MDd Visual Studio* IDE: [C/C++] > [コード生成] > [ランタイム・ライブラリー] > [マルチスレッド DLL (/MD)] または [マルチスレッド・デバッグ DLL (/MDd)] |
動的ロードを有効にする |
スレッド化のみ |
Linux* コマンドライン: -ldl |
説明 |
対象のツール |
最適な Fortran の設定 |
|---|---|---|
完全なデバッグ情報 (コンパイラーとリンカー) を生成します |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 スレッド化 |
Linux* コマンドライン: -g Windows* コマンドライン:
Visual Studio* IDE:
|
適度な最適化を適用する |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 スレッド化 |
Linux* コマンドライン: -O2 以上 Windows* コマンドライン:
Visual Studio* IDE:
|
コンパイラーの診断レポートを生成する (インテル® Fortran コンパイラー・クラッシックのバージョン 15.0 で必要です。16.0 以降では必要ありません) |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -qopt-report=5 Windows* コマンドライン: /Qopt-report:5 Visual Studio* IDE: [Fortran] > [診断 [Intel C++]] > [最適化診断レベル] > [レベル 5 (/Qopt-report:5)] |
ベクトル化を有効にする |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -vec Windows* コマンドライン: /Qvec |
SIMD ディレクティブを有効にします |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -simd Windows* コマンドライン: /Qsimd |
OpenMP* ディレクティブに基づいてマルチスレッド・コードを生成できるようにする |
ベクトル化とコードの調査 CPU / メモリー・ルーフラインの調査 GPU ルーフラインの調査 |
Linux* コマンドライン: -qopenmp Visual Studio* IDE: [Fortran] > [言語] > [OpenMP ディレクティブの処理] > [並列コードの生成 (/Qopenmp)] |
インテル® Advisor のアノテーション定義に関連する追加ディレクトリーを検索する |
スレッド化が主ですが、リファインメント解析にも役立ちます |
Linux* コマンドライン:
Windows* コマンドライン:
Visual Studio* IDE:
|
マルチスレッド化されたダイナミック・リンク・ライブラリーで未定義の参照を検索する |
スレッド化のみ |
Linux* コマンドライン: -shared-intel Windows* コマンドライン: /MD または /MDd Visual Studio* IDE: [Fortran] > [ライブラリー] > [ランタイム・ライブラリー] > [マルチスレッド DLL (/libs:dll /threads)] または [デバッグ用マルチスレッド DLL (/libs:dll /threads /dbglibs)] |
動的ロードを有効にする |
スレッド化のみ |
Linux* コマンドライン: -ldl |