Filtering to Minimize Analysis Overhead

Issue

Running your target application with the Intel® Advisor can take substantially longer than running your target application without the Intel Advisor. Depending on an accuracy level and analyses you choose for a perspective, different overhead is added to your application execution time. For example:

Runtime Overhead / Analysis

Survey

Characterization

Dependencies

MAP

Target application runtime with Intel® Advisor compared to runtime without Intel® Advisor

1.1x longer

2 - 55x longer

5 - 100x longer

5 - 20x longer

Solution

Use the following techniques to skip uninteresting modules and/or analyze only interesting modules.

Filter Modules

Minimize collection and finalization overhead.

Applicable analyses: Survey, Characterization with Trip Counts and FLOP collection enabled.

Use to...

Note: In the commands below, make sure to replace the myApplication with your application executable path and name before executing a command. If your application requires additional command line options, add them after the executable name.

To implement, do one of the following before/while running the desired analysis:

Filter GPU Kernels

Filtering capability allows you to analyze only the GPU kernels of interest, minimizing data collection and finalization overhead.

Applicable analyses: Survey, Characterization with Trip Counts and FLOP collection enabled.

To filter for your GPU kernels of interest, do the following before running the desired analysis:

  1. Select Project Properties > Analysis Target > [Name] Analysis where [Name] is Survey or Trip Counts and FLOP.

  2. Then in the analysis properties click Modify for the GPU kernels of interest list and specify the kernels you need. Alternatively, you can use the advisor CLI action option --gpu-kernel-of-interest =<kernel_names>. For example:

    advisor --collect=survey --profile-gpu -gpu-kernel-of-interest=test* -- ./myScript

NOTE: Before running this command, make sure to replace myScript with the appropriate executable path and add other options you need.

See Also