调试 AI 引擎 - 2023.2 简体中文

Versal 自适应 SoC 系统集成和确认方法指南 (UG1388)

Document ID
UG1388
Release Date
2023-11-15
Version
2023.2 简体中文

AMD 提供了多种工具和流程用于对 Versal AI 引擎处理器上运行的设计进行调试。这些工具和流程可用于进行功能调试、调试 AI 引擎算法内的性能问题以及对 AI 引擎应用开发的各阶段进行调试。以下总结了可用的各种工具和流程及其适用时机的建议。

AI 引擎内核的功能调试通常需在 Vitis 内运行 x86 仿真器。此类仿真器可广泛用于功能调试,但由于它不记录程序存储器大小,因此请谨慎使用。如需了解有关 x86 仿真器的可用选项和运行方法的更多信息,请访问此链接以参阅 AI 引擎工具和流程用户指南 (UG1076) 中的相应内容。

AI 引擎内核的功能调试还可使用 Vitis 中的 aiesimulator 来执行。该仿真器属于周期近似仿真器,可广泛用于功能调试。它会使用 SystemC 语言对 Versal 器件(包括 NoC、PS 和 PL 组件)进行建模。您可使用内建调试器来单步执行 AI 引擎源代码,也可以将其用于进一步调试设计功能。printf 功能同样可供使用,但它可能影响程序存储器大小(由 aiesimulator 进行追踪)。Vitis IDE 具有调试视图,其中可显示寄存器、变量、可用断点、寄存器/存储器映射变量、内部/外部存储器内容、用于查看指令的分解视图,并且对应每个 AI 引擎内核各有 1 条指令流水线(流水线视图)。

由于 aiesimulator 同样属于周期近似仿真器,因此可以对设计执行广泛的性能调试。该仿真器可提供剖析和事件追踪功能,该功能可用于分析设计中的停滞和性能问题的根本原因。

此外,aiesimulator 还具有可用于检测并报告内核代码中的出界访问违例的选项。如需了解有关 aiesimulator 可用选项及其运行方法的更多信息,请访问此链接以参阅 AI 引擎工具和流程用户指南 (UG1076) 中的相应内容。

使用 Versal 平台通过 V++ 将 AI 引擎内核集成到 Versal 器件其余部分时,可以运行硬件仿真器。该仿真器属于周期精确的仿真器,可使用 RTL 或 SystemC 仿真模型来对 PL 逻辑进行仿真。此仿真步骤应在 v++ 链接步骤后执行,且“hw_emu”目标指定为 v++ 链接命令行。调试器还可用于调试 AI 引擎内核,并单步执行内核代码和 PS 主机代码。此步骤使用 QEMU 和 NoC 的 SystemC 仿真模型来对 PS 进行仿真。如需了解有关硬件仿真器的可用选项及其运行方法的更多信息,请参阅:

  • 请访问此链接并参阅 AI 引擎工具和流程用户指南 (UG1076) 中的相应内容
  • 请访问此链接并参阅 AI 引擎工具和流程用户指南 (UG1076) 中的相应内容

准备好将设计添加到硬件上后,有多种调试和剖析工具可供您使用。在硬件中运行设计时,您可使用 PS 主机代码中的运行时事件 API 或者使用硬件内建的性能计数器的编译时选项来获取剖析数据。分析此数据有助于您测量内核效率、与每个 AI 引擎关联的停滞和活动时间,并确定性能可能未处于最优状态的 AI 引擎内核。您还可收集有关设计时延、吞吐量和带宽的数据。在 Vitis 分析器工具中可提供剖析的详细热图和直方图。如需了解有关硬件中的设计性能分析可用的选项及其分析方法的更多信息,请访问此链接以参阅 AI 引擎工具和流程用户指南 (UG1076) 中的相应内容。

您也可以对硬件中的 AI 引擎内核源代码进行调试。这样有助于调试硬件中的功能问题。如需了解有关在 Vitis IDE 内运行调试器以及与调试器关联的各项功能的更多信息,请访问此链接以参阅 AI 引擎工具和流程用户指南 (UG1076) 中的相应内容。