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 Nsight Systems. The only requirement is that the same or newer version of Nsight Systems 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 a bottom pane that contains the events view and the function table. In some cases, when sampling of a process has not been enabled, the function table might be empty and hidden.

The bottom view selector sets the view that is displayed in the bottom pane.

Bottom view selection

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.

To display trace events in the Events View right-click a timeline row and select the “Show in Events View” command. The events of the selected row and all of its sub-rows will be displayed in the Events View.

If a timeline row has been selected for display in the Events View then double-clicking a timeline item on that row will automatically scroll the content of the Events View to make the corresponding Events View item visible and select it.

Events View

The Events View provides a tabular display of the trace events. The view contents can be searched and sorted.

Double-clicking an item in the Events View automatically focuses the Timeline View on the corresponding timeline item.

API calls, GPU executions and debug markers that occurred within the boundaries of a debug marker are displayed nested to that debug marker. Multiple levels of nesting are supported.

Events view recognizes these types of debug markers: - NVTX - Vulkan VKEXTdebugmarker markers, VKEXTdebugutils labels - PIX events and markers - OpenGL KHR_debug markers

Events View nested debug markers

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

Nsight Systems has equal support for OpenGL and OpenGL 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, Nsight Systems will not show overlapping GPU ranges.

CUDA Trace

See CUDA Trace for more information.


Copyright (c) 2012-2019, NVIDIA Corporation. All rights reserved.