The visualization of Data Parallels C++ (DPC++) applications is similar to data from other run-times, such as
Intel® oneAPI Threading Building Blocks(
oneTBB) or OpenMP*. The graph in DPC++ represents the asynchronous task graph created from the end-user construct such as buffer accessors, command group handler, and data parallel constructs such as
The data from the sample viewed in Flow Graph Analyzer is shown above. As with other runtimes, the graph view is correlated with the execution trace views. The workflows will provide similar information for DPC++. To better visualize the overlapping tasks in the execution trace view, select the
Stacked Viewattribute from the pull-down menu as shown below:
This will change the view to an icicle chart that displays everything in detail, and you can see the calls to the OpenCL™ stack.
Clicking on a task in the timeline views will highlight a node in the graph if that task belongs to the graph. If you want to highlight all the tasks that belong to a graph node, you should enable task highlighting button and select a node on the graph to see the associations.
The screenshot below shows the tasks that belong to the
memory_transfer_nodeare highlighted in a different color. Using the correlation features, one can debug the execution profile of the application to get a better understanding of the execution. Flow Graph Analyzer also includes features that target specific performance-related issues and the other sections go into detail for each one of these potential performance problems.