开发 AI 引擎设计 graph 时,通常使用 AI 引擎编译器或 AI 引擎仿真器工具来执行大量设计迭代。此方法能够提供快速设计迭代,同时聚焦 AI 引擎应用的开发。准备就绪后,即可使用本章中所述流程将 AI 引擎设计集成到更大的系统设计中。
Vitis™ 工具流可以凭借类似软件的编译和链接流程来集成 Versal® 器件的下列三大领域,从而简化硬件设计和集成:AI 引擎阵列、可编程逻辑 (PL) 区域和处理器系统 (PS)。Vitis 编译器流程允许您将自己已编译的 AI 引擎设计 graph (libadf.a) 与器件的 PL 区域内实现的其它内核(包括 HLS 和 RTL 内核)加以集成,并将其链接在一起以供在目标平台上使用。您可从 Versal 器件内的 Arm® 处理器中运行的主机程序来调用这些已编译的硬件函数。
下图显示了使用 Vitis 工具流程集成应用所需的高层次步骤。此处描述了用于运行此流程的命令行进程。
图 1.
Vitis 工具流程
以下步骤可按 Versal 器件中的任意 AI 引擎设计需求加以调整。
- 如 编译 AI 引擎 graph 应用 中所述,第一步是创建 AI 引擎 graph 并使用 AI 引擎编译器将其编译到 libadf.a 文件内。您可以在 AI 引擎编译器与 AI 引擎仿真器之间执行迭代以开发 graph,直至您准备好继续为止。
-
PL 内核编译:PL 内核经编译后即可使用
v++ --compile
命令在目标平台的 PL 区域中实现。这些内核可以是 C/C++ 内核或 RTL 内核并采用已编译的赛灵思对象 (xo) 形式。 - 系统链接:将已编译的 AI 引擎 graph 与 C/C++ 内核和 RTL 内核链接到目标平台上。此进程会创建 XSA 文件以封装系统。
- 为 Cortex-A72 处理器编译嵌入式应用:(可选)编译主机应用以在 Cortex®-A72 核处理器上运行,此类处理器使用 GNU Arm 交叉编译器来创建 ELF 文件。该主机程序与 AI 引擎内核和 PL 区域内的内核进行交互。此编译步骤是可选步骤,因为有多种方式可用于部署 AI 引擎内核并与之交互,PS 中运行的主机程序只是其中一种方式。
- 系统封装:使用
v++ --package
进程收集所需的文件以配置和启动系统、加载和运行应用,包括 AI 引擎 graph 和 PL 内核。这样即可构建必要的封装以运行仿真和调试,或者在硬件上运行您的应用。