使用 Vitis 分析器查看剖析结果 - 2022.1 简体中文

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

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

要启动 vitis_analyzer 以查看 XRT 流程中的剖析信息,请使用以下命令。

vitis_analyzer xrt.run_summary

要启动 vitis_analyzer 以查看 XSDB 流程中的剖析信息,请使用以下命令。

vitis_analyzer aie_trace_profile.run_summary

heat_map 核指标与 conflicts 存储器指标的示例

下图显示了 heat_map 指标和存储器冲突时间所涵盖的设计活动时间、停滞时间、累积指令计数和 vector_instruction_count,以及对应设计示例的十个拼块的 conflicts 指标的累积存储器错误时间。

图 1. heat_map 指标和 conflicts 指标的示例

注释: 请单击右上角的此 图标以启用/禁用图表。

以位于 (24,2) 的 AI 引擎为例。停滞时间 (.043 ms) 为活动时间 (.214 ms) 的 20%。在此活动时间期间,它会执行 179200 条矢量指令,占活动时间的 95%。这表示性能卓越,即核的最优化十分有效。

stalls 核指标与 dma_locks 存储器指标的示例

下图显示了 stalls 指标和累积 DMA 活动时间所涵盖的设计存储器停滞时间、串流停滞时间、级联停滞时间和锁定停滞时间,以及对应设计示例的十个拼块的 dma_locks 指标的累积 DMA 锁定计数。

图 2. stalls 指标和 dma_locks 指标的示例

在核 (24,2) 上,DMA 已保持活动达 70.645 ms(7780 万条指令),但发生 298 次停滞。这并非表示在 298 条指令中发生停滞,因为每次停滞都可能持续多个时钟周期。

execution 核指标与 conflicts 存储器指标的示例

下图显示了 execution 指标和存储器冲突时间所涵盖的设计累积指令计数、矢量指令计数、加载指令计数和存储指令计数,以及对应设计示例的十个拼块的 conflicts 指标的累积存储器错误时间。

图 3. execution 与 conflicts 指标的示例

核 (24,2) 存在某些存储器冲突,虽然这些只是次要冲突,但也必须明确。这些冲突较为罕见,原因可能是因为存在某些 DMA 或某些其它内核访问干扰。

stream_put_get 核指标与 dma_stalls_s2mm 存储器指标的示例

下图显示了 stream_put_get 指标和 s2mm channel0 停滞时间所涵盖的设计串流读取指令计数、级联读取指令计数和级联写入指令计数,以及对应设计示例的十个拼块的 dma_stalls_s2mm 指标的 s2mm channel1 停滞时间。

图 4. stream_put_get 指标和 dma_stalls_s2mm 指标的示例

此 graph 显示核 (25,1) 将 3% 的时间用于写入级联串流。(24,1) 读取该级联串流所用的时间与写入时间相同。

heat_map 核指标与 dma_locks 存储器指标的示例

下图显示了 heat_map 指标和累积 DMA 活动时间所涵盖的设计活动时间、停滞时间、累积指令计数和 vector_instruction_count,以及对应设计示例的十个拼块的 dma_lock 指标的累积 DMA 锁定计数。

图 5. heat_map 指标和 dma_locks 指标的示例

累积 DMA 活动时间与累积 DMA 锁定计数相结合即可便于您查看在锁定获取数量与通过 DMA 传输的数据量之间是否存在任何不一致。锁定计数的相对数量同样可用于解读每个核的相对迭代次数。

input_bandwidths 接口指标的示例

下图显示了 8 x 8 级联拼块设计内的 input_bandwidths:0 指标所涵盖的 PLIO 级设计输入带宽。

图 6. input_bandwidths:0 接口指标示例

在此 graph 中,所有输入 PLIO 的通道 0 带宽约为 95%,接近可达成的最大值。经此剖析步骤后,请验证 AI 引擎并未发生数据匮乏。

Vitis 分析器中的报告整合

在剖析阶段,运行时期间无法同时使用所有指标。您可通过重启开发板来多次运行硬件中的设计,每次运行都使用 xrt.ini 中的不同剖析指标集。通常对于 AI 引擎接口带宽剖析,运行时期间可剖析一条通道(对于所有 PLIO 都是如此)。要进行多通道剖析,需多次运行。

vitis_analyzer 能够对涉及同一设计的不同运行轮次的多份报告进行整合。举例来说,这样您即可显示多条接口通道的带宽。虽然 vitis_analyzer 是搭配设计的特定运行的 xrt.run_summary 来运行的,但仍可通过单击主工具栏和窗口工具栏中的 + 来打开其它 xrt.run_summary 报告,如下所示。

图 7. 主工具栏中的“添加”(+) 按钮
图 8. 窗口工具栏中的“添加”(+) 按钮

为输入 PLIO 通道 0 和 4 及输出 PLIO 通道 0 整合剖析数据后,vitis_analyzer 即可显示下表:

图 9. 通道 0 和 4 输入及通道 0 输出 PLIO 带宽