硬件事件追踪问题与解决方案 - 2022.1 简体中文

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

在器件 FIFO 或全局存储器缓冲器内会捕获硬件事件,并将其发送回(卸载到)CPU 以生成时间线轨迹。在不同场景中可丢弃硬件追踪事件,如下表中所述。

表 1. 硬件追踪事件场景
问题 解决方案
一旦 FIFO 或 DDR/HBM 缓冲器已满,所有后续硬件追踪事件都将被丢弃。

查找运行时警告并以更大的缓冲器大小来重新运行,方法是在 xrt.ini 中使用如下设置

trace_buffer_size=<size>,其中 size 必须在全局存储器限制范围内。

针对多次计算数据传输使用相同的全局存储器可能导致拥塞,从而导致丢弃硬件追踪事件。

用于卸载的资源不同于 compute() I/O 所使用的资源。宏 PROFILE_OFFLOAD 可用于指定加速器类中的剖析卸载方法。

PROFILE_OFFLOAD("FIFO" | "DDR[0-3]" | "HBM[0-31]" );

提示: 如果目标是编译 hw_emu,则不能使用该宏,否则将导致剖析逻辑插入错误。对于 sw_emu 目标,也将同样忽略该宏。
应用测试创建的硬件事件过多。

在 xrt.ini 文件内通过下列任意设置减少生成的硬件事件数量,

  1. device_trace=coarse:生成最少量的硬件事件
  2. device_trace=fine:生成更多硬件事件并提供更多详细信息
  3. stall_trace=true:生成大部分硬件事件,可能快速填满任意大小的缓冲器。请勿使用。