このトピックは、自動ルーフライン・グラフを使用して、優先度の高い最適化を決定する方法を紹介するチュートリアルの一部です。
インテル® Advisor の Visual Studio* IDE プラグインを使用して、roofline_demo_samples サンプル・アプリケーションを試す場合は、以下の手順に従ってください。
次のツールが必要です。
インテル® Advisor のインストール・パッケージとライセンス
インテル® C++ コンパイラー・クラシック 15.x 以降、またはサポートされるほかのコンパイラー
インテル® コンパイラーを使用すると、ベクトル化アドバイザーのサーベイレポートからより多くの利点が得られます (最大限に活用するには、バージョン 17.x 以降が必要です)。サポートされるほかのコンパイラーについては、「リリースノート」を参照してください。
.zip ファイルの展開ユーティリティー
まだインテル® Advisor やインテル® C++ コンパイラー・クラシックをお持ちでない場合は、インテル® oneAPI ベース・ツールキット (英語) をダウンロードしてください。
roofline_demo_samples サンプル・アプリケーションを設定するには、次の操作を行います。
サンプルコードとサンプル結果の両方を、書き込み可能なディレクトリーまたは共有フォルダーにダウンロード (英語) します。
サンプルコードとサンプル結果の .zip ファイルを展開します。
Visual Studio* IDE を起動します。
必要に応じて、[表示] > [ソリューション エクスプローラー] を選択します。
[ファイル] > [開く] > [プロジェクト/ソリューション] を選択します。
[Open Project] ダイアログボックスで roofline_demo_samples.sln ファイルを開きます。
このチュートリアルで使用するため、サンプル・アプリケーションを準備します。
[Solution Explorer] のプロジェクト名が roofline_demo_samples (Intel C++ [version]) であることを確認します。そうでない場合は、[ソリューション エクスプローラー] で roofline_demo_samples プロジェクトを右クリックして、[Intel Compiler] > [Use Intel C++] を選択します。
Visual Studio* のツールバーで [ソリューション エクスプローラー] ドロップダウンが Debug に設定されている場合は、Release に変更します。
[ソリューション エクスプローラー] で roofline_demo_samples を右クリックして、[プロパティ] を選択します。
[構成プロパティ] > [C/C++] > [General] を選択します。[Debug Information Format] が [Program Database (/ZI)] に設定されていることを確認します。
[構成プロパティ] > [C/C++] > [Optimization] を選択します。[Optimization] が [Maximum Optimization (Favor Speed) (/O2)] に設定されていることを確認します。
[構成プロパティ] > [C/C++] > [Optimization [Intel C++]] を選択します。[Parallelization] が [No] に設定されていることを確認します。
[構成プロパティ] > [C/C++] > [Code Generation] を選択します。[Enable Enhanced Instruction Set] が [Intel(R) Advanced Vector Extensions 2 (/arch:CORE-AVX2)] に設定されていることを確認します。
[Apply] ボタンをクリックしてから、[OK] ボタンをクリックします。
[ビルド] > [ソリューションのクリーン] を選択します。
[ビルド] > [ソリューションのリビルド] を選択します。
注インテル® Advisor のワークフローと解析結果を表示するには、インテル® Advisor ツールバーの アイコンをクリックするか、[ツール] > [Intel Advisor] > [Vectorization and Threading Advisor Analysis] を選択します。
独自のアプリケーションをビルドして、正確で完全なベクトル化アドバイザーの結果を生成するには、以下の設定でリリースモードの最適化されたバイナリーをビルドします。
操作 |
最適な C/C++ 設定 |
---|---|
完全なデバッグ情報を生成する (コンパイラーとリンカ―) |
Linux* コマンドライン: -g Windows* コマンドライン:
Microsoft* Visual Studio* IDE:
|
適度な最適化を適用する |
Linux* コマンドライン: -O2 以上 Windows* コマンドライン: /O2 以上 Visual Studio* IDE: [C/C++] > [最適化] > [最適化] > [実行速度の最大化 (/O2)] 以上 |
コンパイラー診断を生成する (インテル® コンパイラー 15.0 では必要、16.0 以降では不要) |
Linux* コマンドライン: -qopt-report=5 Windows* コマンドライン: /Qopt-report:5 Visual Studio* IDE: [C/C++] > [診断 [Intel C++]] > [最適化診断レベル] > [レベル 5 (/Qopt-report:5)] |
ベクトル化を有効にする |
Linux* コマンドライン: -vec Windows* コマンドライン: /Qvec |
SIMD ディレクティブを有効にする |
Linux* コマンドライン: -simd Windows* コマンドライン: /Qsimd |
OpenMP* ディレクティブに基づいてマルチスレッド・コードを生成できるようにする |
Linux* コマンドライン: -qopenmp Windows* コマンドライン: /Qopenmp Visual Studio* IDE: [C/C++] > [言語 [Intel C++]] > [OpenMP* サポート] > [並列コードの生成 (/Qopenmp)] |