在 Vitis IDE 中,您可分析自动生成的 AI 引擎状态输出,如下所示:
- 使用以下命令打开运行汇总文件
xrt.run_summary
:vitis -a xrt.run_summary
- 单击汇总视图中的Set Compile Summary(设置编译汇总)以设置 AI 引擎编译/工作目录。
- 在弹出的对话框中,单击...按钮,并选择 AI 引擎编译汇总文件,如
./Work/graph.aiecompile_summary
。汇总数据显示在 IDE 中。
-
单击Graph或Array即可显示所期望的汇总数据。注意,所有停滞均以红色显示。
-
您可在汇总数据底部访问与 AI 引擎状态相关的关联视图,其中部分视图定义如下。
- Tile Status(拼块状态)
- 显示 AI 引擎状态,包括串流停滞、级联停滞和锁定停滞。各列解释如下:
- PC:显示当前 PC 值。单击该值即可通过源代码对其进行交叉探测。
-
Status(状态):显示 AI 引擎状态。可能的值包括:
- Done(完成)
- 全部完成。
- Memory Stall - South(存储器停滞 - 南)
- AI 引擎在访问位于 AI 引擎南侧的存储器时已停滞。请参阅Array(阵列)视图,获取 AI 引擎的物理布局和缓冲器的物理布局。
- Memory Stall - West(存储器停滞 - 西)
- AI 引擎在访问位于 AI 引擎西侧的存储器时已停滞。
- Memory Stall - North(存储器停滞 - 北)
- AI 引擎在访问位于 AI 引擎北侧的存储器时已停滞。
- Memory Stall - East(存储器停滞 - 东)
- AI 引擎在访问位于 AI 引擎东侧的存储器时已停滞。
- Lock Stall - South(锁定停滞 - 南)
- AI 引擎在获取位于 AI 引擎南侧的缓冲器的锁定时已停滞。
- Lock Stall - West(锁定停滞 - 西)
- AI 引擎在获取位于 AI 引擎西侧的缓冲器的锁定时已停滞。
- Lock Stall - North(锁定停滞 - 北)
- AI 引擎在获取位于 AI 引擎北侧的缓冲器的锁定时已停滞。
- Lock Stall - East(锁定停滞 - 东)
- AI 引擎在获取位于 AI 引擎东侧的缓冲器的锁定时已停滞。
- Stream Stall - Input Ch 0(串流停滞 - 输入通道 0)
- AI 引擎在读取串流输入通道 0 时已停滞。
- Stream Stall - Input Ch 1(串流停滞 - 输入通道 1)
- AI 引擎在读取串流输入通道 1 时已停滞。
- Stream Stall - Output Ch 0(串流停滞 - 输出通道 0)
- AI 引擎在写入串流输出通道 0 时已停滞。
- Stream Stall - Output Ch 1(串流停滞 - 输出通道 1)
- AI 引擎在写入串流输出通道 1 时已停滞。
- Cascade Stall - Input(级联停滞 - 输入)
- AI 引擎在读取级联输入串流时已停滞。
- Cascade Stall - Output(级联停滞 - 输出)
- AI 引擎在写入级联输出串流时已停滞。
- Debug Halt(调试中止)
- AI 引擎在启用调试模式时已停滞。
- ECC Error Stall(ECC 错误停滞)
- AI 引擎在发生 ECC 错误时已停滞。
- ECC Scrubbing Stall(ECC 清理停滞)
- AI 引擎在发生 ECC 清理错误时已停滞。
- Error Halt(错误中止)
- AI 引擎在发生错误时已停滞。
- Enabled(启用)
- AI 引擎已启用。
- Reset(复位)
- 处于复位状态。
图 1. Graph视图中的停滞和状态
- DMA Status(DMA 状态)
- 显示设计中的存储器模块 DMA 通道状态。这是内部 DMA 通道控制状态机,它与应用数据移动保持异步,不应用于判定通道是否处于空闲状态。
- Error Events(错误事件)
- 显示生成状态前已发生的错误事件。在下列各表中提供了更多详细信息:表 4、表 1 和 表 2。
- Buffers(缓冲器)
- 显示设计中的缓冲器对象(含当前状态)。请注意:
-
Lock Status(锁定状态):缓冲器对象的锁定状态:
- Acquired for read(已获取,可供读取):已获取缓冲器以供使用者内核读取。
- Released for read(已释放,可供读取):已释放缓冲器以供生产者内核读取。
- Acquired for write(已获取,可供写入):已获取缓冲器以供生产者内核写入。
- Released for write(已释放,可供写入):已释放缓冲器以供使用者内核写入。
-
Lock Status(锁定状态):缓冲器对象的锁定状态:
图 2. 含锁定状态的缓冲器
提示: 将鼠标悬停在Graph视图中的对象上。它将显示有关对象的更多信息。