此阶段的目标是剖析设计并判定是哪个域(AI 引擎、PL 或 NoC)导致吞吐量下降从而导致设计停滞。
下图显示了此阶段中可用的任务和技巧。
图 1. 系统剖析
以下章节列出了此阶段可用的技巧。
剖析 AI 引擎核、接口和存储器模块
您可在 XRT 或 XSDB 流程中剖析 AI 引擎核、接口和存储器模块。这属于非侵入性功能特性,可在运行时使用 XRT.ini 文件或者在 XSDB 中运行脚本来启用。该功能特性使用 AI 引擎阵列中可用的性能计数器来收集剖析数据。收集的数据量和类型受到可用的性能计数器数量的限制。
- 剖析 AI 引擎核
- 可用于剖析 AI 引擎的剖析指标集如下:
- 热图
- 停滞数
- 串流放置数/获取数
- 异常数
- 拼块执行
- 读/写带宽相关指标
- 存储器模块剖析
- 可用于剖析存储器模块的剖析指标集如下:
- 冲突数
- DMA 锁定数
- DMA 停滞数
- 接口带宽剖析
- 此外还提供了用于收集接口带宽信息的剖析指标。根据端口方向和停滞类型(例如,空闲、已停滞),您可以识别 PL 当前是否处于停滞状态并且正在影响 AI 引擎的吞吐量,或反之亦然。
在下表第一列中提供了用于接口剖析的指标:
表 1. 接口剖析指标:input_bandwidths 和 input_stalls_idle 指标集:input_stalls_idle 停滞高位 空闲高位 指标集:input_bandwidths 低带宽
AI 引擎无法按正确的速率耗用样本。 继续执行阶段 4。
PL 内核无法按正确的速率生成样本。 继续执行阶段 3。
表 2. 接口剖析指标:output_bandwidths 和 output_stalls_idle 指标集:output_stalls_idle 停滞高位 空闲高位 指标集:output_bandwidths 低带宽
PL 内核无法按正确的速率耗用样本。 继续执行阶段 3。
AI 引擎无法按正确的速率生成样本。 继续执行阶段 4。
您可多次运行设计,并在每次运行之间以 xrt.ini 文件中的不同参数来重新启动开发板。Vitis 分析器允许您整合不同 xrt.run.summary 文件报告,以便您总览接口级别的各项带宽、停滞和空闲。
如需了解有关在硬件中启用剖析和解释结果的详细信息,请参阅 AI 引擎剖析。
剖析结果允许您快速精确识别设计性能下降中所涉及的 AI 引擎、输入串流或输出串流。
下一阶段:
- 如果您判定 PL 内核当前导致性能下降,请继续执行阶段 3。在阶段 3 中,您可以精确识别性能不达标的 PL 内核。
- 如果您判定 AI 引擎内核当前导致吞吐量下降,请继续执行阶段 4。