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

AI 引擎工具和流程用户指南 (UG1076)

Document ID
UG1076
Release Date
2023-12-04
Version
2023.2 简体中文

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

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

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

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

要在 IDE 中执行停滞分析,建议您运行 AI 引擎仿真器搭配 --online -wdb -text 选项在后台生成事件追踪信息。

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

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

vitis -a ./aiesimulator_output/default.aierun_summary

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

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