<font color="#FF8000">作者:Florentw,AMD工程师;来源:AMD Xilinx开发者社区</font>
<strong>简介</strong>
在 AI 引擎系列的前 3 篇博文中,我们探讨了 AI 引擎应用所需的不同文件。在本篇中,我们将为 X86 目标运行 AI 引擎编译器,观察它生成的不同输出。
<strong>要求</strong>
下文要求您通读前几篇。
<a href="https://xilinx.eetrend.com/content/2023/100574714.html">AI 引擎系列 1 - 从 AI 引擎工具开始(2022.1 更新)</a><br data-aura-rendered-by="75:694;a" />
<a href="https://xilinx.eetrend.com/content/2023/100575023.html">AI 引擎系列 2 - AI 引擎 graph 简介 (2022.1 更新)</a><br data-aura-rendered-by="75:694;a" />
<a href="https://xilinx.eetrend.com/content/2023/100575117.html">AI 引擎系列 3 - AI 引擎内核简介 </a>
<strong>首次运行 AI 引擎编译器</strong>
在前几篇博文中所创建的工程中,打开“simple_application.prj”工程以查看“Application Project Settings”(应用工程设置)。
在右上角可以看到有 3 个可用的构建配置:
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323399-01.jp…; alt=""></center>
<li>Emulation-SW(软件仿真):为 X86 处理器执行编译。此项配置仅用于功能仿真(非周期近似)。</li>
<li>Emulation-AIE(AI 引擎仿真):为 AI 引擎执行编译。使用 SystemC 模型为 AI 引擎执行代码仿真。此项配置可提供功能仿真,并且周期近似。</li>
<li>Hardware(硬件):为硬件目标执行编译。</li>
请选中“Emulation-SW”。这样“Target”(目标)会改为“x86 Simulation”(x86 仿真)
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323400-02.jp…; alt=""></center>
选中“AI Engine Application”(AI 引擎应用)(simple_application),然后单击工具栏中的锤子按钮以构建该工程。
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323401-03.jp…; alt=""></center>
这样即可在控制台窗口中看到 aiecompiler 命令的运行过程。
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323402-04.jp…; alt=""></center>
启动的完整命令如下所示:
aiecompiler -v --stacksize=1024 --heapsize=1024 -Xchess=main:darts.xargs=-nb -include="<Xilinx Installation Path>/Vitis/2022.1/aietools/include" -include="<Xilinx Installation Path>/Vitis_HLS/2022.1/include" -include="../" -include="../src" -include="../data" -include="../src/kernels" -target=x86sim -platform=xilinx_vck190_base_202210_1.xpfm -workdir=./Work ../src/project.cpp
可用不同选项包括:
-v:为 aiecompiler 启用详细模式
-include:用于包含必要的头文件、源文件和数据文件。
-stacksize:该选项用于定义所有核的 stacksize 大小
-heapsize:该选项用于定义所有核的 heapsize 大小
-target=x86sim:该选项用于将 x86 仿真设为目标。
-platform:该选项用于定义平台(此处采用 VCK190 基础平台)路径
-workdir:该选项用于指定 aiecompiler 的输出文件夹
最后一个参数 (../src/project.cpp) 是顶层文件,其中包含顶层计算图 (graph) 的例化。
完成构建后,即可在“Explorer”(资源管理器)窗口中看到,编译器已生成名为“Emulation-SW”的文件夹,并且编译输出包含在“Work”目录中
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323403-05.jp…; alt=""></center>
此时即可运行 X86 仿真。选中“AI Engine Application”(simple_application),然后单击“Run As”图标旁的箭头,单击“Run As > Launch SW Emulator”(运行方式 > 启动软件仿真器)
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323404-06.jp…; alt=""></center>
完成仿真后,Vitis 中的控制台应报告“Simulation completed successfully returning zero”(仿真已成功完成,返回 0)。
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323405-07.jp…; alt=""></center>
在“Emulation-SW”文件夹下可以看到,仿真器已生成 data 目录,其中,根据 project.h 顶层计算图文件指定的要求,output.txt 内包含来自仿真器的输出
out = output_plio::create(plio_32_bits, "data/output.txt");
模板示例随附了黄金参考文件 (data/golden.txt) 供我们与输出文件进行比对。请选中 golden.txt 文件和新创建的 output.txt,右键单击其中之一,然后单击“Compare With > Each Other”(比较对象 > 相互比较)。
<center><img src="https://cdn.eetrend.com/files/2023-11/wen_zhang_/100575652-323406-08.jp…; alt=""></center>
通过比较这 2 个文件可以看到两者相匹配,这表示代码功能正常(它与模型相匹配)。
<strong>下一步</strong>
在下一篇博文中,我们将以 AI 引擎模型为目标来运行 AI 引擎编译器。