View the Results
provides several ways to view the
Vectorization and Code Insights
You can print the results collected in the CLI and save them to a
Run the following command:
is the analysis you want to generate the results for. For example,
for the Survey report,
for the Survey report in a top-down view,
for the Memory Access Patterns, or
for the Dependencies report.
is a file format to save the results to.
For example, to generate the Survey report:
advisor --report=survey --project-dir=./advi
You should see a similar result:
ID Function Call Sites Total Self Type Why No Vectorization Vector ISA Compiler Average Min Max Call Count Transformations Source Location Module
and Loops Time Time Estimated Gain Trip Count Trip Count Trip Count
14 [loop in main at mmult_serial.cpp:79] 0.495s 0.495s Vectorized Versions 1 vectorization possible but seems inefficient... SSE2 <2.42x 127; 127; 1; 7 127; 127; 1; 7 128; 128; 1; 7 524252; 524324; 530432; 530432 Interchanged; Unrolled mmult_serial.cpp:79 1_mmult_serial.exe
6 -[loop in main at mmult_serial.cpp:79] 0.275s 0.275s Vectorized (Body) SSE2 2.42x 127 127 128 524252 Unrolled; Interchanged mmult_serial.cpp:79 1_mmult_serial.exe
3 -[loop in main at mmult_serial.cpp:79] 0.205s 0.205s Vectorized (Body) SSE2 2.42x 127 127 128 524324 Unrolled; Interchanged mmult_serial.cpp:79 1_mmult_serial.exe
7 -[loop in main at mmult_serial.cpp:79] 0.015s 0.015s Peeled 1 1 1 530432 Interchanged mmult_serial.cpp:79 1_mmult_serial.exe
11 -[loop in main at mmult_serial.cpp:79] 0s 0s Remainder vectorization possible but seems inefficient... 7 7 7 530432 Interchanged mmult_serial.cpp:79 1_mmult_serial.exe
4 [loop in main at mmult_serial.cpp:79] 0.510s 0.015s Scalar inner loop was already vectorized 1024 1024 1024 1024 Interchanged mmult_serial.cpp:79 1_mmult_serial.exe
12 [loop in main at mmult_serial.cpp:79] 0.510s 0s Scalar Versions 1 inner loop was already vectorized 1024 1024 1024 1 mmult_serial.cpp:79 1_mmult_serial.exe
5 -[loop in main at mmult_serial.cpp:79] 0.510s 0s Scalar inner loop was already vectorized 1024 1024 1024 1 mmult_serial.cpp:79 1_mmult_serial.exe
The result is also saved into a text file
You can also generate a report with the data from all analyses run and save it to a CSV file with the
action as follows:
advisor --report=joined --report-output=
is a path and a name for a
file to save the report to. For example,
. This option is required to generate a joined report.
When you run
CLI, a project is created automatically in the directory specified with
. All the collected results and analysis configurations are stored in the
project, that you can view in the
To open the project in GUI, you can run the following command:
If the report does not open, click
on the Welcome pane.
You first see a Vectorization Summary report that includes the overall information about vectorized and not vectorized loops/functions in your code and the vectorization efficiency, including:
Performance metrics of your program and the speedup for the vectorized loops/functions
Top five time-consuming loops and top five optimization recommendations with the highest confidence
Save a Read-only Snapshot
A snapshot is a read-only copy of a project result, which you can view at any time using the
GUI. To save an active project result as a read-only snapshot:
advisor --snapshot --project-dir=
[--cache-sources] [--cache-binaries] --
is an option to add application source code to the snapshot.
is an option to add application binaries to the snapshot.
is a path and a name for the snapshot. For example, if you specify
, a snapshot is saved in a
. You can skip this and save the snapshot to a current directory as
To open the result snapshot in the
GUI, you can run the following command:
You can visually compare the saved snapshot against the current active result or other snapshot results.