インテル® VTune™ Amplifier 2019 のプロファイルに基づく最適化レポート (プレビュー機能)

インテル® DPC++/C++ コンパイラーインテル® Fortran コンパイラーインテル® VTune™ プロファイラー

この記事は、インテル® デベロッパー・ゾーンに掲載されている『Intel® VTune™ Amplifier 2019 User Guide』の「Profile-Guided Optimization Report (Preview)」(https://software.intel.com/en-us/vtune-amplifier-help-profile-guided-optimization-report) セクションの日本語参考訳です。


これまで、インテル® VTune™ Amplifier を使用した最適化データをソースコードへフィードバックするには、解析結果を理解して手動でソースコードやコンパイルオプションを変更する必要がありました。

インテル® VTune™ Amplifier 2019 は、インテル® コンパイラー (現在は Linux* でのみ)、Clang コンパイラー、および GCC コンパイラー向けのプロファイルに基づく最適化 (PGO) レポートを生成するオプションを提供します。この情報を使用すると、コンパイラーはコードをコンパイルする際にパフォーマンスをさらに最適化することができます。

PGO レポートを生成するには、amplxe-pgo-report.sh ユーティリティーを使用します。このユーティリティーは、デフォルトでは <install-dir>/bin64 にインストールされています。

PGO レポートの生成

レポートを生成するには、次のように amplxe-pgo-report スクリプトを使用します。

$ amplxe-pgo-report.sh [options] — app arg1 arg2…

ここで、[options] は次のいずれかです。

オプション 説明
-r | –result <name> 結果ディレクトリーと PGO レポート名のテンプレートを指定します。デフォルトのテンプレートは、r@@@pgo です。
-c | –compiler <compiler> PGO 出力形式のコンパイラーを指定します。次の値がサポートされます。
  • icc: ベータ版 インテル® C/C++ および Fortran コンパイラー 2018 以降
  • clang: Clang コンパイラー 3.8 以降
  • clang-old: Clang コンパイラー 3.5-3.7

デフォルト値は、icc です。

-h | –help ヘルプを表示します。

例:

$ amplxe-pgo-report.sh -r r@@@pgo -c icc -- /home/sample/myapp

このコマンドラインは、インテル® C++ コンパイラー (icc) 向けにハードウェア・イベントベース・サンプリング解析による PGO レポートを生成します。レポートが生成されると、インテル® VTune™ Amplifier は出力されたファイル名とシステム上の場所を示すメッセージを表示します。例えば、次のようなメッセージです。
PGO レポートファイルが生成されました: /home/foo/r000pgo_icc.pgo

コンパイラーで PGO レポートを使用

コンパイル時に次のオプションを指定して、インテル® VTune™ Amplifier が生成した *.pgo ファイルを使用してプロファイルに基づく最適化を行います。

  • -prof-use-sampling=<pgo-file>: これは、icc コンパイラー向けです。
  • -fprofile-sample-use=<pgo-file>: これは、clang コンパイラー向けです。
  • -fauto-profile=<pgo-file>: これは、gcc コンパイラー向けです。

それぞれのコンパイラーの PGO サポートに関する詳細は、コンパイラーのドキュメントを参照してください。

  • https://software.intel.com/en-us/cpp-compiler-developer-guide-and-reference-profile-guided-optimization-via-hw-counters
  • https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Optimize-Options.html#Optimize-Options (英語)
  • https://clang.llvm.org/docs/UsersManual.html#using-sampling-profilers (英語)

制限事項

  • この機能は現在 Linux* 環境でのみサポートされます。
  • リモート Linux* アプリケーションでの PGO レポートの生成はサポートされません。
  • PGO レポートの生成は、[アプリケーションを起動] (英語) モードでサポートされます。[システムをプロファイル] および [プロセスにアタッチ] モードではサポートされません。

関連情報

インテル® C++ コンパイラーを使用するプロファイルに基づく最適化
https://software.intel.com/en-us/cpp-compiler-developer-guide-and-reference-profile-guided-optimization-via-hw-counters

これは、プレビュー機能です。正式リリースに含まれるかどうかは未定です。皆さんが有用性に対するフィードバックを送ることで、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換が提供される保証はありません。parallel.studio.support@intel.com または intelsystemstudio@intel.com までご意見をお送りください。

タイトルとURLをコピーしました