The Timeline Trace collects and displays host and kernel events on a common timeline to help you understand and visualize the overall health and performance of your systems. The graphical representation lets you see issues regarding kernel synchronization and efficient concurrent execution. The displayed events include:
- OpenCL API calls from the host code.
- Device trace data including compute units, AXI transaction start/stop.
- Host events and kernel start/stops.
While this is useful for debugging and profiling the application, the timeline
and device trace data are not collected by default, which can affect performance by
adding time to the application execution. However, the trace data is collected with
dedicated resources in the kernel, and does not affect kernel functionality. By default,
the data is offloaded at the end of the run (
--profile.trace_memory option). When continuous offload is enabled, it
changes the default.
The following is a snapshot of the Timeline Trace window which displays host and device events on a common timeline. Host activity is displayed at the top of the image and kernel activity is shown on the bottom of the image. Host activities include creating the program, running the kernel and data transfers between global memory and the host. The kernel activities include read/write accesses and transfers between global memory and the kernel(s). This information helps you understand details of application execution and identify potential areas for improvements.
Timeline data can be enabled and collected through the command line flow. However, viewing must be done in the Vitis analyzer as described in Using the Vitis Analyzer.