在硬件中对事件追踪进行故障排除 - 2022.1 简体中文

Versal ACAP AI 引擎编程环境 用户指南 (UG1076)

Document ID
UG1076
Release Date
2022-05-25
Version
2022.1 简体中文
表 1. 在硬件中对事件追踪进行故障排除
问题 解决办法
在某些串流中,追踪包被丢弃。(这可通过观察 Vitis 分析器 GUI 中的事件追踪串流上的黑条来确定。) 选项 1:在构建时间,使用以下选项增大 AI 引擎传出的追踪串流数量。
aiecompiler --num-trace-streams=<N>
选项 2:在 XRT 流程中,在运行时启用定期事件追踪卸载功能特性。在 xrt.ini 文件示例中:
  • aie_trace_periodic_offload = true 用于启用 AI 引擎事件追踪定期卸载功能特性。
  • aie_trace_buffer_offload_interval_ms = 10 用于设置时间间隔(以毫秒为单位),PL 数据移动器使用此时间间隔来将数据从 AI 引擎卸载至 DDR。
  • aie_trace_file_dump_interval_s = 3 用于设置时间间隔(以秒为单位),PL 数据移动器使用此时间间隔来将数据从 DDR 卸载至 SD 卡。
[Debug]
aie_trace = true
aie_trace_buffer_size = 10M
aie_trace_metrics = functions_all_stalls

aie_trace_periodic_offload = true
aie_trace_buffer_offload_interval_ms = 10
aie_trace_file_dump_interval_s = 3
注释: 定期事件追踪卸载功能特性仅在 XRT 流程中受支持,并且构建中的事件追踪端口必须为 PLIO。
在追踪中不显示内核函数名称。 可能原因是该内核是由编译器或者通过属性直接插入的内联内核。要禁用内核内联,请应用 --xlopt=0 来编译设计,或者指定含 __attribute__((noinline)) 属性的内核函数。
内核启动时间偏移超过 100 个周期。 --broadcast-enable-core=true 选项应用于编译器,以确保设计在若干个时钟周期范围内启动所有内核。
工具发出警告消息,指示追踪缓冲器已满。 增大事件追踪缓冲器大小。
对于 XSDB 流程,在 AI 引擎追踪启动命令中,使用 -depth 选项指定更大的值。
%xsdb aietrace start -graphs dut -config-level functions_all_stalls -work-dir ./Work -link-summary ./bf_hw.xsa.xclbin.link_summary -base-address 0x900000000 -depth 0x8000000
对于 XRT 流程,更新 xrt.ini 文件和 aie_trace_buffer_size 行。
[Debug]
aie_trace=true
aie_trace_buffer_size=100M
aie_trace_metrics = functions_all_stalls
注释: 追踪缓冲器已满时,XSDB 和 XRT 会发出以下警告消息。

警告消息:

AI Engine Trace Buffer size is full, Device trace could be incomplete.
需要确定 PL 与 AI 引擎之间是否正在按期望方式发送或接收数据。

在 PL 内核及其 AXI4 存储器映射主接口上添加监控器。

v++ -l --profile_kernel <data:[kernel_name|all]:[compute_unit_name
|all]:[interface_name|all](:[counters|all])><[stall|exec]:[kernel_name|all]:[compute_u
nit_name|all](:[counters|all])>

例如,要监控每个内核主接口,请添加:

v++ -l --profile_kernel data:all:all:all

在硬件上运行时,请在 xrt.ini 文件中添加以下行。

[Debug]
profile=true
native_xrt_trace=true
data_transfer_trace=coarse

在硬件上运行应用后,就会在 sd_card 上生成 device_trace_0.csvnative_trace.csvsummary.csvxrt.run_summary 文件。将这些文件复制到您的工程所在位置,与工程的 Work 目录位于同一级。发出 vitis_analyzer xrt.run_summary 命令,选择时间线“Trace”视图,以检验 PL 追踪。