前言

在之前的文章里笔者已经记述了怎样在FPGA上映射由英伟达开源的加速器NVDLA。但是NVDLA的官方发布的工具链很弱,只能端到端地运行极为简单的分类网络,而现在在绝大部分的深度神经网络应用里分类往往只是其中一小部分。例如我现在想利用加速器去运行yolo,但其中有许多加速器并不支持的算子,加速器支持的convolution、pooling、relu等等算子最好都要用加速器运行,而那些不支持的算子则需要Fallback到CPU去运行。

这片文章要介绍的是笔者利用Open AI Lab开源的边缘设备推理框架Tengine,为NVDLA打造一套新的工具链!

banner

TengineNVDLA

为接下来要尝试基于 Tengine 完成 CPU Fallback 的工作,在组里的 ZCU 102 开发板上进行了 NVDLA 的移植。本来以为这个过程会很顺利,没想到还是因为各种问题还是花费了一个星期的时间。

这篇文章记述了部分关于 ZCU102 rev1.1 板卡的坑点,以及利用chroot基于Ubuntu Base Rootfs来订制 aarch64 ubuntu 的文件系统流程。

Digilal DesignEEEE

这两天在京举办的第六届 ChinaDA 的学术研讨会是我第一次参加的学术会议,写下本文记述一下会议上比较感兴趣的点。篇幅不会长,主要是因为会前没有挑几个自己感兴趣的报告专门认真听一下,也没有没有做笔记、拍视频照片。

PS:这张大会的Banner页是我做的!

ChinaDA是国内集成电路设计、自动化没计(EDA)等学科青年学者自发组织的学术共同体,其使命是推动国内集成电路设计、EDA,及与之交叉的计算机体系结构和工艺器件等领城研究,为青年人搭建同行学术交流平台,提高本学科在国内科研界的地位。ChinaDA自2018年特殊时刻创建以来,每年举办2次,本次是第6届。
Conference

这篇文章记录一下笔者剖析 NVDLA Compiler 工作机制的一些经过,在 NVDLA 的软件仓库中,Compiler与Runtime的源代码被放置在umd目录下,由同一个 Makefile 组织。

对于sw部分文档十分缺乏,在 NVDLA的页面里只有零星的介绍,而关于软件设计的细节、以及如何拓展设计都没有介绍。并且,Compiler这部分的代码充满了智慧,例如:

image-20210624203707954

还有一些突然停止维护了而没开发完的feature。并且由于其前端只有 Caffe 的 Parser,导致其端到端的推理仅可以支持一些比较弱的分类网络,但阅读代码理解其设计与工作的思路,学习其抽象语法树的设计还是一个比较有意义的工作。

NVDLA

刚拿到毕业证的那个下午,我花了四百多块把两箱衣服与一些证书和奖杯打包从南京发到了科一招,剩下的东西都塞进了一个小行李箱隔天陪着我坐上了前往北京的高铁,整个大学四年的学习和生活似乎就剩下这么点东西了。

在车上,我一路眯着眼睛感受着自己离学校愈来愈远,回想起刚来南京的时候那个没有见过世面的乡下土狗,这四年里发生了太多事情了,以至于我在往前想高中的事情的时候发现自己已经记不太清楚。于是在来到北京的第一天我决定记录一下大学里认识的人和发生的事,所以这篇博客的创建时间是六月二十日,我刚来所里上班的第一天,但是直到第二年的春节假期才有时间花功夫开始落笔。

Njtech