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.
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

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.