如果在 xrt.ini 中随
opencl_trace
同时启用剖析,则会增加运算开销,并且时间线中的事件之间可能出现更长的延迟。但 XRT 提供了无开销选项用于转储时间线上的 OpenCL 事件。这种简单方法可以在时间线上显示事件而不产生任何开销。 提示: 您不得指定任何主机侧剖析,否则会覆盖无开销方法。但您可将此方法与
device_trace
搭配使用,这样即可剖析器件但不增加主机应用开销。因为目标是在绝对零开销的情况下提供事件可视性,所以可记录的事件数量存在限制。此外,该视图中不显示任何命令队列信息,因此该视图并不能取代更详细的Timeline Trace。
您可以使用“无开销”视图来确认 OpenCL 命令的依赖关系以及观察来自主机应用的命令执行的实际事件开销。
在 xrt.ini 中添加以下开关以启用 OpenCL 事件。可如下所示控制事件捕获的开始和结束:
[Debug]
xocl_debug=true
#xocl_event_begin= 0 (default)
#xocl_event_end=1000 (default)
默认情况下,只能可视化 1000 个事件。
运行后,如未生成任何
xrt.run_summary
,则可使用以下步骤来生成 .wdb 文件以供在 Vitis 分析器内查看:vp_analyze xocl -i xocl.log // generates debug_log.csv
vp_analyze trace -i debug_log.csv // generates debug_log.wdb
vitis_analyzer debug_log.wdb // loads the wdb file in Vitis analyzer
图 1. 无开销时间线
捕获的追踪信息 | 剖析开销 | 用例 | xrt.ini 开关 |
---|---|---|---|
完整 | 高 | 用于调试目的,例如在应用开发的早期阶段。 |
opencl_trace = true
|
部分 | 低 | 当剖析开销为“高”且遇到意外的延迟时。 |
lop_trace = true
|
最小值 | 否 | 仅用于确认导致事件间延迟的原因。 |
xocl_debug = true
|