NVDLA 是英伟达于2017年开源出来的深度学习加速器框架。可惜的是,这个项目被开源出来一年后就草草停止维护了。

笔者本科的毕业设计为了与实验室研究的方向贴合,把NVDLA的RTL映射到了 Xilinx FPGA 上,并且上板编译了 Runtime 。映射成功后,很多伙伴对上板的过程很感兴趣,而这个步骤亦不是使用聊天软件说两句就可以概述的。于是写下这篇文章,记述Mapping 到 FPGA 过程中踩过的一些坑。

本设计的Github Repo地址:https://github.com/LeiWang1999/ZYNQ-NVDLA

你可以在这里看到我的本科毕业设计论文:Graduation Paper

开发器件:Zynq 7000+ / Zynq MPSoc

软件环境:

  • Ubuntu 18.04
  • Vivado 2019.1
  • Petalinux 2019.1
Digilal DesignNVDLA

前言

NVDLA的软件栈主要分为两个部分:CompilerRuntime,由于Compiler与硬件无关,所以可以在我们自己的开发机器上编译运行调试,理解起来也较为方便;而Runtime与硬件有关,调试非常困难,官方提供的预构建的文件又都是针对64位ARM/RISC的操作系统,这对没有合适的板卡,即仅搭载了32位处理器的ZYNQ 7000系列的开发板上编译Runtime带来了很多难以解决的问题。

Loadable文件是两者之间通信的媒介,本文记述一下Loadable文件的组织结构和解析方法,既然不能吃官方给的饭,那么可以试一试自己在SOC上做一份调度的算法,解读Loadable文件就是第一步。

Github Repo:https://github.com/LeiWang1999/nvdla-parser

Digilal DesignNVDLA

1. Crack the Passwd of Zip Package

zip2john backup.zip > passwd.txt
john passwd.txt

2. Find

  1. Find file with suid
find / -perm -u=s 2>/dev/null

If we got it ,we can go to GTFobins to check out whether it is possible for Privilege Escalation

  1. Find file for special group
find / -type f -group bugtracker 2>/dev/null
  1. Find file
# linux
find / -name "user.txt"
# powershell
Get-ChildItem  -Recurse –Filter user.txt
Digilal DesignEEEE