企业大型网站开发需要多少钱,平面电商设计是什么,如何找企业联系做网站,定西网站建设公司排名照片AI 引擎系列 5 - 以 AI 引擎模型为目标运行 AI 引擎编译器#xff08;2022.1 更新#xff09;
简介 在先前的 AI 引擎系列博文中#xff0c;我们以 x86 模型为目标运行了 AI 引擎编译器#xff0c;并运行了 X86 仿真器来验证 AI 引擎应用的功能模型。在本文中#xff0c;…AI 引擎系列 5 - 以 AI 引擎模型为目标运行 AI 引擎编译器2022.1 更新
简介 在先前的 AI 引擎系列博文中我们以 x86 模型为目标运行了 AI 引擎编译器并运行了 X86 仿真器来验证 AI 引擎应用的功能模型。在本文中我们将以 AI 引擎模型为目标来运行 AI 引擎编译器并观察生成的部分文件。
要求 下文要求您通读前几篇 AI 引擎系列博文。AI 引擎系列 1 - 从 AI 引擎工具开始2022.1 更新)AI 引擎系列 2 - AI 引擎 graph 简介 2022.1 更新AI 引擎系列 3 - AI 引擎内核简介AI 引擎系列 4 - 首次运行 AI 引擎编译器和 x86simulator2022.1 更新
以 AI 引擎模型为目标运行 AI 引擎编译器
在上一篇博文中所创建的工程内打开 simple_application.prj 文件将生效的构建配置更改为“Emulation-AIE”这样即可为 AI 引擎模型编译应用。 选中“Explorer”资源管理器窗口中的 aie 应用 (simple_application)然后单击锤子图标构建该应用。 这样即可在控制台中看到该命令的运行过程。此过程与上一篇博文中用于 x86simulator 的过程非常相似。
aiecompiler -v --stacksize1024 --heapsize1024 -Xchessmain:darts.xargs-nb -includeXilinx Installation Path/Vitis/2022.1/aietools/include -includeXilinx Installation Path/Vitis_HLS/2022.1/include -include../ -include../src -include../data -include../src/kernels -targethw -platformxilinx_vck190_base_202210_1/xilinx_vck190_base_202210_1.xpfm -workdir./Work ../src/project.cpp
主要区别在于目标选项 (-target) 设为 hw硬件。先前构建目标为“Emulation-SW”目标选项设为 x86。
从 AI 引擎编译器生成的输出
构建完成后即可在“Explorer”窗口中看到已创建名为“Emulation-AIE”的新目录。其中包含来自构建的所有输出。稍后我们再仔细查看此输出。 默认情况下AI 引擎编译器会将所有输出写入 Work/ 的目录和 libadf.a 的文件。libadf.a 文件是实际的输出文件将在剩余 Vitis™ 流程中用于把 AI 引擎应用集成到系统其余部分。
Work/ 目录包含多个子目录和文件
aie/该目录包含每个 AI 引擎各自编译的输出结果arch/该目录包含的文件用于描述 AI 引擎阵列上的应用的物理映射config/该目录包含的文件用于指定 SystemC 仿真器的选项noc/该目录包含 NoC 相关的文件ps/c_rts/该目录包含基于 C 语言的运行时协议用于对 PS 交互进行建模ps/cdo/该目录包含生成的代码此代码用于以配置数据对象格式 (CDO) 进行计算图 (graph) 配置和初始化。可在 SystemC-RTL 仿真和实际硬件执行期间使用。reports/该目录包含各种报告文件project.aiecompiler_summary此文件可在 Vitis 分析器中打开以便查看编译汇总信息和报告。我们将在后续博文中详细分析此文件。
运行 AI 引擎仿真器
现在我们可以运行 AI 引擎仿真器了。选中“AI Engine Application”(simple_application)然后单击“Run As”图标旁的箭头单击“Run As Launch AIE Emulator”运行方式 启动 AI 引擎仿真器 仿真输出会写入 Emulation-AIE/aiesimulator_output/data/output.txt 文件。我们来仔细分析下该文件 每一行值之前都有时间。这是因为相比于 x86 仿真AI 引擎仿真属于周期近似仿真因此输出文件包含数据的时间戳。可以看到第一批输出样本于 934 ns 后到达。在 VCK190 基本平台中AI 引擎的频率设置为 1250 GHz。这意味着需要 1167 个计算周期才能输出第一批输出样本。在后续博文中我们将讲解出现此时延的各种原因但请谨记正如 AI 引擎 3 博文中所述此代码并未最优化为在矢量处理器上运行因此并未充分发挥其算力。通过观察 output.txt 中的第 64 行可以看到 TLAST 一词。这表示计算图执行完 1 次迭代需耗时 1033.6 ns。 经过 1324.8 ns 仿真后输出第 2 次迭代的首个样本。现在我们可以验证输出的数据与黄金结果仍然匹配。选中 golden.txt 文件和新创建的 output.txt 文件然后右键单击其中之一。随后选中“Compare With Each Other after transformation”比较对象 变换后相互比较。 在弹出窗口中单击列表图标预定义的筛选器。在第二个输出窗口中启用“Remove timestamp”移除时间戳然后单击“OK”确定。在第一个弹出窗口上单击“OK”。这样将会从仿真器的输出文件中移除时间戳仅对输出样本值进行比较。 2 个文件之间应不存在任何差异这表示 AI 引擎编译结果与黄金参考之间功能上仍然匹配。
下一步
在下一篇博文中我们将讲解 AI 引擎编译后生成的 Vitis 分析器报告文件。