The Vitis software platform supports low overhead profiling that provides minimal information with little effect on execution time. Using this option during runtime, the timeline trace is still available but with a reduced amount of information. Low overhead profiling captures minimal information on OpenCL events and dumps a CSV file called lop_trace.csv at the end of execution. Low overhead profiling can be run in all three flows (hardware, hardware emulation, and software emulation).
To enable low overhead profiling, there is a new flag in the "Debug"
section of the xrt.ini File called lop_trace
. By default, lop_trace
is FALSE and must be enabled by setting the ini
parameter to TRUE.
xrt.ini file
[Debug]
lop_trace=true
lop_trace
parameter can be enabled alongside other profiling parameters,
but doing so eliminates any benefit of low overhead profiling by capturing all profiling
data as well.When lop_trace=true
is enabled, the
runtime will generate lop_trace.csv which can be
viewed in the Run Summary within Vitis analyzer.
vitis_analyzer xrt.run_summary
To obtain the lowest possible overhead, information collected in normal OpenCL profiling is omitted. Specifically, the following information is expected to not be available in the low overhead profiling trace:
- Device events, such as compute unit executions or kernel memory transfers
- Information about memory reads or writes, such as destination address or size
- Information about kernel enqueues, such as kernel name or NDRange sizes
- Dependencies between buffer transfers and kernel enqueue