User Guide

Contents

Profile-Guided Optimization Report (Preview)

Intel® VTune™
Profiler
provides an option to generate a Profile-Guided Optimization (PGO) report for Intel® Compiler (Linux* only), Clang* compiler, and GCC* compiler. Using this information the compilers can provide a better performance optimization when compiling your code.
This is a
PREVIEW FEATURE
. A preview feature may or may not appear in a future production release. It is available for your use in the hopes that you will provide feedback on its usefulness and help determine its future. Data collected with a preview feature is not guaranteed to be backward compatible with future releases. Please send your feedback to parallel.studio.support@intel.com or to intelsystemstudio@intel.com.
To generate a PGO report, use the
vtune
-pgo-report.sh
utility located, by default, in the
<install-dir>/bin64
.

Generate a PGO Report

Use the following
vtune
-pgo-report
syntax to generate a report:
vtune
-pgo-report.sh [
options
] -- app arg1 arg2...
where
[
options
]
are the following:
Option
Description
-r | --result <
name
>
Specify a result directory and PGO report name template. Default template is
r@@@pgo
.
-c | --compiler <
compiler
>
Specify a compiler for PGO output format. Supported values are the following:
  • icc
    for Intel C/C++ and Intel Fortran compilers version 2018 beta and higher
  • clang
    for Clang* compiler version 3.8 and higher
  • clang-old
    for Clang* compiler versions 3.5-3.7
Default value is
icc
.
-h | --help
Show help.
Example:
vtune-pgo-report.sh -r r@@@pgo -c icc -- /home/sample/myapp
This command line generates a PGO report based on the hardware event-based sampling analysis for the Intel C++ compiler (
icc
). When the report is generated, the
VTune
Profiler
provides a message specifying the output file name and location on your system, for example:
PGO report file was created: /home/foo/r000pgo_icc.pgo
.

Use the PGO Report with Your Compiler

Use the
*.pgo
file generated by the
VTune
Profiler
for the profile-guided optimization with your compiler by adding the following options during compilation:
  • -prof-use-sampling=<
    pgo-file
    >
    for the
    icc
    compiler
  • -fprofile-sample-use=<
    pgo-file
    >
    for the
    clang
    compiler
  • -fauto-profile=<
    pgo-file
    >
    for the
    gcc
    compiler
For more details on the PGO support from the compiler side, explore the compiler documentation:

Limitations

  • Generating a PGO report for remote Linux applications is not supported.
  • Generating a PGO report is supported for the Launch Application mode.
    Profile System
    and
    Attach to Process
    modes are not supported.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804