主机应用的定制剖析 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

来自主机应用的所有 XRT 相关操作均通过 OpenCL API 调用或 XRT API 调用来进行自动追踪以供剖析之用。但您也可以对超出 XRT 相关事件范围的主机应用进行剖析,即,基于用户指定的操作或事件来捕获事件数据。

该功能可提供两种类型的定制剖析:
用户范围
对某一范围内指定的代码开始/结束时间进行剖析。这样即可捕获主机应用中发生某项操作的时间段。
用户事件
在时间线中标记某一事件。在发生用户事件的任意时间点,将其添加到时间线波形中。

user_rangeuser_event 数据均可捕获到Profile Summary(剖析汇总)报告和Timeline Trace(时间线轨迹)报告中,以便显示在 Vitis 分析器内。如下图所示,Profile Summary显示了给定事件的发生次数和范围。“User Ranges”(用户范围)表还可报告主机代码中用户定义的范围的“Min/Max/Avg/Total”(最小/最大/平均/总计)持续时间。在Timeline Trace(时间线轨迹)报告中,主机代码中的 user_range 元素单独显示在一行中,user_event 标记则被添加到时间线上的各特定时间点上。

图 1. 剖析汇总 - 用户范围

使用定制剖析需要对主机应用源代码和构建进程进行些许更改。您必须在代码中使用 C 或 C++ API(如下所述),并且链接主机应用时,必须包含 xrt_coreutil 库。

提示: 如需获取 user_rangeuser_event 的示例,请参阅以下主机代码:https://github.com/Xilinx/Vitis_Accel_Examples/blob/master/host/debug_profile/src/host.cpp