A newer version of this document is available. Customers should click here to go to the newest version.
select
Select loops (by file and line number, ID, or criteria) for deeper analysis.
GUI Equivalent
To select individual loops/functions: Vectorization and Code Insights > Survey & Roofline >
To select loops/functions with markup strategy for Offload Modeling: Offload Modeling > Analysis Workflow > Dependencies > Markup type
Syntax
--select=<string> |
Arguments
<string> is a comma-separated list of file name and line number, loop ID, and/or criteria in the [(r|recursive):]<id>|<file>:<line>|<criteria>[,<id>|<file>:<line>|<criteria>,..] format. Add r: (or recursive:) prefix to select all loops in call trees starting from heads selected by criteria, source location or ID. <criteria> can be one of the following:
Criteria |
Description |
---|---|
scalar |
Include scalar serial loops. |
total-time>N |
Include loops above N% of total CPU time. |
has-source |
Exclude loops without source location. |
has-issue |
Include loops with Vector Dependence Prevent Vectorization or Possible Inefficient Memory Access Pattern issue. |
loop-height=N |
Include loops at a specific hierarchical position. 0 = Innermost loops. |
markup=name |
Select loops using a pre-defined mark-up algorithm. Supported algorithms are:
|
Default
No default argument
Actions Modified
Usage
Use + to combine criteria with AND logic. For example, use --select=scalar+has-source to select all scalar loops that have source location.
Do not confuse the mark-up-loops action with the mark-up-list action option. The mark-up-loops action coupled with the select action option enables a GUI checkbox; therefore loop selection persists beyond the duration of the mark-up-loops action and applies to downstream analyses, such as Dependencies and Memory Access Patterns analyses. The collect action coupled with the mark-up-list action option simulates enabling a GUI
checkbox; therefore loop selection persists only for the duration of the collect action.
Example
Run a Survey analysis to identify loops of interest.
Select those loops for deeper analysis.
advisor --collect=survey --project-dir=./advi_results -- ./myApplication
advisor --mark-up-loops --select=foo.cpp:34,bar.cpp:192 --project-dir=./advi_results -- ./myApplication