要在应用执行期间启用剖析和捕获事件追踪数据,您必须指令自己的应用执行此任务。您必须启用额外逻辑、耗用额外的器件资源来跟踪主机和内核执行步骤,并捕获事件数据。(可选)此进程要求修改您的主机应用,以捕获定制数据、在编译期间修改内核 XO 并在链接期间修改 xclbin 以从器件侧活动中捕获不同类型的剖析数据,并按 xrt.ini 文件 中所述方式配置 Xilinx Runtime (XRT) 以在应用运行时期间捕获数据。
根据系统所包含的元素以及要捕获的数据类型,对于应用而言,有多种不同类型的剖析可供使用。下表显示了可启用的部分剖析级别,并探讨了各自的实用性。
剖析/轨迹 | 描述 | 注释 |
---|---|---|
主机应用 OpenCL API 和部分受限的器件侧(内核)剖析。 | 通过在 xrt.ini 文件中使用 opencl_trace 选项来指定。 |
生成 opencl_trace.csv 文件和 xrt.run_summary 以供在 Vitis 分析器中查看。 |
主机应用 XRT 本机 API | 通过在 xrt.ini 文件中使用 native_xrt_trace 选项来指定。 |
为 XRT API 生成剖析汇总和追踪事件,如 编写软件应用 中所述。 |
主机应用用户事件剖析 | 要求在主机应用中添加额外代码,如 主机应用的定制剖析 中所述。 | 为主机应用生成用户范围数据和用户事件。 提示: 可用于捕获事件数据,以供用户管理的内核使用,如 使用用户管理的内核 中所述。
|
低开销剖析 | 通过在 xrt.ini 文件中使用 lop_trace 选项来指定。 |
生成 lop_trace.csv 文件,如 启用低开销剖析 中所述。 |
器件侧剖析 | 在 v++ 编译和链接期间使用 --profile 选项(如 --profile 选项 中所述)来启用,在 xrt.ini 文件中使用 device_trace 来启用。 |
启用对主机与内核之间的数据流量、内核停滞、内核与计算单元 (CU) 的执行时间以及 AMD Versal™ AI 引擎中的监控活动进行捕获。 |
AI 引擎计算图与内核 | 通过在 xrt.ini 文件中使用 aie_profile 和 aie_trace 选项来指定。这些选项可以结合在一起指定,也可以各自单独指定。 |
生成 default.aierun_summary 报告,其中包含剖析报告和/或追踪报告。aierun_summary 位于 AI 引擎计算图构建目录的 aiesimulator_output 文件夹内。如需了解更多信息,请参阅 AI 引擎工具和流程用户指南(UG1076) 中的“基于 AI 引擎仿真的剖析”章节。 |
功耗剖析 | 通过在 xrt.ini 文件中使用 power_profile 选项来指定。 |
生成 power_profile_<device>.csv 报告。 注释: 在嵌入式平台或 AWS 上不支持此功能。
|
Vitis AI 剖析 | 通过在 xrt.ini 文件中使用 vitis_ai_profile 选项来指定。 |
启用 DPU 计数器剖析,以生成 opencl_summary.csv 文件和 xrt.run_summary,以供在 Vitis 分析器中查看。 |
默认情况下,器件二进制文件 (xclbin) 配置为捕获有限的器件侧剖析数据。但在 Vitis 编译器链接期间使用 --profile
选项则会对器件二进制文件进行检测,方法是在系统中添加 Acceleration Monitor、AXI Performance Monitor 和 Memory Monitor。该选项还具有多个检测选项:--profile.data
、--profile.stall
和 --profile.exec
,如 --profile 选项 中所述。
--profile.data
添加到 v++
链接命令行中:v++ -g -l --profile.data all:all:all ...
v++ -g
选项。在 v++
编译和链接进程中启用应用剖析后,还必须通过编辑 xrt.ini 文件,在 XRT 中启用应用运行时期间的数据收集,如上文所述。例如,以下 xrt.ini 文件支持在运行应用时进行 OpenCL 剖析、功耗剖析以及事件和停滞追踪捕获:
[Debug]
opencl_trace=true
power_profile=true
device_trace=fine
stall_trace=all
要启用内核内部数据剖析,还必须在 xrt.ini 的 [Emulation]
部分中添加 debug_mode
标签:
[Emulation]
debug_mode=batch
如果要收集大量追踪数据,可以通过在 v++
链接期间指定 --profile.trace_memory
选项并在 xrt.ini 文件中添加 trace_buffer_size
关键字来增加可用于捕获数据的存储空间量。
-
--profile.trace_memory
- 表示用于捕获追踪数据的存储器类型。
-
trace_buffer_size
- 指定应用运行时期间用于捕获追踪数据的存储空间量。
--profile.trace_memory
,但在 xrt.ini 文件 中启用 device_trace
,则将捕获剖析数据并存入默认平台存储器,为该存储器分配了 1 MB 作为追踪缓冲器大小。最后,如 连续追踪捕获 中所述,您可以启用连续追踪捕获以在运行应用时连续卸载器件追踪数据,以便在发生应用或系统崩溃的情况下,有部分追踪数据可用于帮助调试应用。