为接下来要尝试基于 Tengine 完成 CPU Fallback 的工作,在组里的 ZCU 102 开发板上进行了 NVDLA 的移植。本来以为这个过程会很顺利,没想到还是因为各种问题还是花费了一个星期的时间。
这篇文章记述了部分关于 ZCU102 rev1.1 板卡的坑点,以及利用chroot基于Ubuntu Base Rootfs来订制 aarch64 ubuntu 的文件系统流程。
为接下来要尝试基于 Tengine 完成 CPU Fallback 的工作,在组里的 ZCU 102 开发板上进行了 NVDLA 的移植。本来以为这个过程会很顺利,没想到还是因为各种问题还是花费了一个星期的时间。
这篇文章记述了部分关于 ZCU102 rev1.1 板卡的坑点,以及利用chroot基于Ubuntu Base Rootfs来订制 aarch64 ubuntu 的文件系统流程。
NVDLA 是英伟达于2017年开源出来的深度学习加速器框架。可惜的是,这个项目被开源出来一年后就草草停止维护了。
笔者本科的毕业设计为了与实验室研究的方向贴合,把NVDLA的RTL映射到了 Xilinx FPGA 上,并且上板编译了 Runtime 。映射成功后,很多伙伴对上板的过程很感兴趣,而这个步骤亦不是使用聊天软件说两句就可以概述的。于是写下这篇文章,记述Mapping 到 FPGA 过程中踩过的一些坑。
本设计的Github Repo地址:https://github.com/LeiWang1999/ZYNQ-NVDLA
你可以在这里看到我的本科毕业设计论文:Graduation Paper
开发器件:Zynq 7000+ / Zynq MPSoc
软件环境:
GitHub Actions 入门教程
http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
那些年我们定制PYNQ需要避免的坑
https://zhuanlan.zhihu.com/p/256365015
Petalinux 注册中断
http://www.zynqnotes.com/linux-irq-mapping
NVDLA的软件栈主要分为两个部分:Compiler
与Runtime
,由于Compiler
与硬件无关,所以可以在我们自己的开发机器上编译运行调试,理解起来也较为方便;而Runtime
与硬件有关,调试非常困难,官方提供的预构建的文件又都是针对64位ARM/RISC的操作系统,这对没有合适的板卡,即仅搭载了32位处理器的ZYNQ 7000系列的开发板上编译Runtime带来了很多难以解决的问题。
Loadable文件是两者之间通信的媒介,本文记述一下Loadable文件的组织结构和解析方法,既然不能吃官方给的饭,那么可以试一试自己在SOC上做一份调度的算法,解读Loadable文件就是第一步。
Github Repo:https://github.com/LeiWang1999/nvdla-parser
1 |
|
1 |
|
If we got it ,we can go to GTFobins to check out whether it is possible for Privilege Escalation
1 |
|
1 |
|
1 |
|
Update your browser to view this website correctly. Update my browser now