在 Vitis 分析器中执行 AI 引擎停滞分析 - 2022.1 简体中文

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

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

AI 引擎的执行可能因多种来源的停滞逻辑而发生停滞,包括下列来源。

外部 AXI4 存储器映射主接口
任意外部 AXI4 主接口(例如,PS)均可向特定 AI 引擎发出停滞信号。
锁定模块
AI 引擎有权访问锁定以执行硬件同步。获取锁定时,如果该核无法获得锁定,那么 AI 引擎将停滞,直至锁定变为解锁为止。
AXI4-Stream 接口为空或已满
AI 引擎在读取空的输入 FIFO 或写入已满的输出 FIFO 时可能停滞。
数据存储器冲突
在两个不同 AI 引擎之间或者当某个 AI 引擎尝试访问单个存储体(例如,尝试在同一个周期内对同一个存储体执行加载和存储)时,可能发生存储体停滞。
来自事件单元的事件操作
来自事件单元的事件操作可能导致 AI 引擎停滞。

AI 引擎停滞时,AI 引擎的所有存储器接口(包括编程存储器接口)都会停滞。修复停滞原因后即可解决停滞。

Vitis 分析器可使用来自 AI 引擎仿真的 VCD 追踪来执行停滞分析,这样即可按指标显示停滞状态概况。这样也有助于您检测发生停滞的位置以及可能的原因。

为了使 Vitis 分析器能执行停滞分析,建议运行 AI 引擎仿真器搭配 --online -wdb -ctf 选项在后台生成事件追踪信息。

aiesimulator --pkg-dir=./Work --online -wdb -ctf
注释: 如果分析需要使用 VCD 文件,则可改为使用 AI 引擎仿真器的 --dump-vcd 选项。但请注意,Vitis 分析器从 VCD 文件生成事件追踪需要时间。大型设计尤其如此,耗时较长,难以忽略。因此,建议使用 vcdanalyze 搭配 AI 引擎仿真器来准备事件追踪,以便 Vitis 分析器执行 AI 引擎停滞分析。
aiesimulator --pkg-dir=./Work --dump-vcd foo
vcdanalyze --vcd=foo.vcd --wdb --ctf
注释: 请勿使用 vcdanalyze 的 --outdir 选项将输出数据置于非默认目录内。

要了解启动 Vitis 分析器以查看 AI 引擎仿真结果的步骤,请参阅 在 Vitis 分析器中查看运行汇总

vitis_analyzer ./aiesimulator_output/default.aierun_summary

要在硬件仿真流程中通过 Vitis 分析器执行 AI 引擎停滞分析,还需要增加下列额外设置。

  1. 编写仿真器选项文件(例如,sim_options.txt),其中包含下列内容:
    AIE_DUMP_VCD=foo
  2. 以下列选项启动硬件仿真:
    ./launch_hw_emu.sh -aie-sim-options ./sim_options.txt -add-env AIE_COMPILER_WORKDIR=<ABSOLUTE_PRJ_PATH>/Work
  3. (可选)运行 vcdanalyze
    cd ./sim/behav_waveform/xsim/; vcdanalyze --pkg-dir=../../../Work --vcd=foo.vcd --wdb –ctf
  4. 启动 Vitis 分析器:
    vitis_analyzer ./sim/behav_waveform/xsim/default.aierun_summary