如图所示是Vitis Ai的开发框架,从顶层的框架一步一步部署到DPU上,并实现Ai的加速。以下是官方叙述:
· 支持主流框架和最新的模型,能够执行不同的深度学习任务
· 提供一系列全面的预先优化模型,这些模型现已就绪,可随时部署在 Xilinx 器件上。您可以找到最相似的模型,开始针对您的应用重新训练!
· 提供功能强大的开源量化器,支持剪枝和未剪枝的模型量化、校准和微调。
· AI 分析器提供逐层分析,有助于解决瓶颈问题
· AI 库提供高层次 C++ 和 Python API,可实现从边缘到云端的最大可移植性。
· 可以从吞吐量、时延和
电源角度定制可扩展的高效 IP 内核,满足您对许多不同应用的需求。
能够利用C++以及python等进行Ai应用开发,但是非常遗憾的是,目前官方并未完全完善这套系统,仅仅对于官方
开发板以及Avnet的边缘开发套件较为友好,其他的板子均存在较大的开发难度。现在就利用FZ3开发自己的Ai系统平台。
2 利用vitis搭建系统平台Vitis整合了之前版本的SDSOC以及SDA开发套件,将软硬件协同加速正式整合一体,并且加入了Ai、CV以及加速库,是的硬件加速更为便捷。但是目前Vitis软件仅仅提供了官方几套开发板的硬件平台,也就是在新建工程时需要platform,其他的板卡仍然需要自己去定制。
在生成硬件平台之前需要做以下的文件准备:
1.sysroots:由上一使用报告使用petalinux生成系统时产生sdk.sh文件,然后运行 ./sdk.sh得到sysroots文件夹,平台所需要的库文件以及相关API也是依赖于这个文件夹。
2.XSA文件:由Vivado生成。这个XSA文件包含了硬件BD的tcl脚本,能够根据tcl代码还原硬件工程,并且其中包含了bit文件,是硬件平台的框架支撑。
3.可执行文件
· zynqmp_f***l.elf
· pmufw.elf
· bl31.elf
· u-boot.elf
上述四个文件也是由上一章试用得到,直接复制或者试用即可,此外还需要一个bif文件:
/* linux */
the_ROM_image:
{
[f***l_config] a53_x64
[bootloader]
[destination_device=pl]
[destination_cpu=a53-0,exception_level=el-3, trustzone]
[destination_cpu=a53-0,exception_level=el-2]
}
准备好上述文件即可开始搭建系统,由于制作过程并没有记录,截图均是试用官方git上的截图。
首先新建工程,选择根据XSA文件创建系统并且选择该XSA文件。
选择系统为Linux
选择处理器为psu_cortexa53
选择arch为64-bit
完成得到如图:
注:图片来源:官方github
根据上图选择之前准备好的文件即可。
然后编译。
最后得到下面的文件和系统平台:
文件夹export下就是本次的系统平台。
3 验证系统平台新建一个加速应用验证上述平台的试用。
选择File -> New -> Application Project.
点击next
选择上一章节生成的platform,并点击next
命名vector_add并点击next.
设置Damain为linux onpsu_cortexa53,设置Sys_rootpath 为之前文件准备的文件夹
选择vitis自带的加速例程:VectorAddition完成后进去应用程序界面
双击vadd.prj打开, 将Emulation-SW 改为Hardware.
最后build即可。
最后会生成以下几个文件:
将 binary_container_1.xclbin, BOOT.BIN,image.ub, vector_add 以及boot.scr拷贝到SD的BOOT分区。
试用Xshell进入系统:
exportXILINX_XRT=/usr
cd/mnt/sd-mmcblk1p1/
可以看到之前复制进去的binary_container_1.xclbin文件
./vector_add binary_container_1.xclbin
即可查看到:
TEST PASSED
出去上述字样即证明该项系统平台验证成功。
4 下一期平台已经搭建好,下一步加入DPU,做深度学习的加速。