Report


Generating a New Report

Users can generate a new report by stopping a profiling session. If a profiling session has been canceled, a report will not be generated, and all collected data will be discarded.

A new .qdrep file will be created and put into the same directory as the project file (.qdproj).

Opening an Existing Report

An existing .qdrep file can be opened using File > Open....

Sharing a Report File

Report files (.qdrep) are self-contained and can be shared with other users of NVIDIA System Profiler. The only requirement is that the same or newer version of SP is always used to open report files.

Project files (.qdproj) are currently not shareable, since they contain full paths to the report files.

To quickly navigate to the directory containing the report file, right click on it in the Project Explorer, and choose Show in folder... in the context menu.

Report Tab

While generating a new report or loading an existing one, a new tab will be created. The most important parts of the report tab are:

Additionally, the following controls are available:

Analysis Summary View

This view shows a summary of the profiling session. In particular, it is useful to review the project configuration used to generate this report. Information from this view can be selected and copied using the mouse cursor.

Timeline View

The timeline view consists of two main controls: the timeline at the top, and the function table at the bottom. In some cases, when sampling of a process has not been enabled, the function table might be empty and hidden.

Timeline

Timeline is a versatile control that contains a tree-like hierarchy on the left, and corresponding charts on the right.

Contents of the hierarchy depend on the project settings used to collect the report. For example, if a certain feature has not been enabled, corresponding rows will not be show on the timeline.

Function Table Modes

Function table modes

The function table can work in three modes:

Each of the views helps understand particular performance issues of the application being profiled. For example:

The Top-Down and Bottom-Up views have Self and Total columns, while the Flat view has a Flat column. It is important to understand the meaning of each of the columns:

Note that if low-impact functions have been filtered out, values may not add up correctly to 100%, or to the value of the parent row. This filtering can be disabled.

Contents of the symbols table is tightly related to the timeline. Users can apply and modify filters on the timeline, and they will affect which information is displayed in the symbols table:

Note that if too little sampling data is being used to build the symbols table (for example, when the sampling rate is configured to be low, and a short period of time is used for time-based filtering), the numbers in the symbols table might not be representative or accurate in some cases.

Filter Dialog

Filter dialog

Diagnostics Summary View

This view shows important messages. Some of them were generated during the profiling session, while some were added while processing and analyzing data in the report. Messages can be one of the following types:

To draw attention to important diagnostics messages, a summary line is displayed on the timeline view in the top right corner:

Diagnostics messages

Information from this view can be selected and copied using the mouse cursor.

Symbol Resolution Logs View

This view shows all messages related to the process of resolving symbols. It might be useful to debug issues when some of the symbol names in the symbols table of the timeline view are unresolved.

OpenGL Trace

NVIDIA System Profiler has equal support for OpenGL and Open GL ES. For brevity, in this section OpenGL will be used instead of OpenGL and OpenGL ES.

On the Analysis Summary page, there is a list of all OpenGL functions requested to be traced.

On the timeline, new rows will appear within each CPU thread that uses OpenGL:

Ranges defined by the KHR_debug calls are represented similarly to OpenGL API and OpenGL GPU workload trace. GPU ranges in this case represent incremental draw cost. They cannot fully account for GPUs that can execute multiple draw calls in parallel. In this case, NVIDIA System Profiler will not show overlapping GPU ranges.

GPU Process Trace

GPU process trace

Gray ranges are contexts not related to the process being profiled, so that users may be able to distinguish between idle and time sharing with other contexts. This row is typically enough to let a user investigate if something is taking too long on the GPU, because of GPU context switching during a particular CUDA kernel or OpenGL workload batch.

If the Process Trace node is opened further, additional details appear. A Context Switch Request row shows the key events triggering a context save, if the context cannot finish its work within a short period of time. Following this is a row for each process or thread ID. For each thread, users can see the individual ranges for context restore (orange), work time (green), and context save (yellow). Other process IDs not being profiled will continue to appear as gray.

A second appearance of the thread ID related data will appear as a row under the thread itself, to improve locality to OpenGL GPU workload batch traces, so users may also be able to see when OpenGL workload batch processing may be interrupted by a GPU context switch, and extend its processing time.

Memory Bandwidth

If the report contains information about memory bandwidth consumption, it will appear on the timeline as separate rows:

Memory bandwidth on the timeline

Charts on the timeline are scaled based on the theoretic maximum memory bandwidth available on the Tegra device that is used to collect the data.

To see how much data has been transferred over a period of time, click and drag the left mouse button on a corresponding row in the timeline.


 

NVIDIA® System Profiler Documentation Rev. 3.9.170817 ©2017. NVIDIA Corporation. All Rights Reserved.