DPU on PYNQ-Z2系列—0. 前言

DPU on PYNQ-Z2系列—0. 前言

什么是DPU?

DPU全称Deeplearning Processor Unit,是清华大学汪玉教授组开发的针对Xilinx FPGA的深度学习加速器,而后被Xilinx收购。

为什么要写本系列博文

DPU的使用说难也难,说简单也简单。DPU的使用难在,真正把DPU用起来需要开发者熟悉FPGA(用于把DPU集成进自己的设计),嵌入式Linux(在Linux中把DPU用起来)以及深度学习相关的知识(使用深度学习框架训练自己的网络,并使用Xilinx的工具链将网络部署到DPU上)。DPU的使用简单在,虽然需要的知识点稍微有点多,但不需要开发者精通这些知识。如果有一份条理清晰、内容完整的文档复现起来难度并不大。

遗憾的是,目前我还没有看到一份条理清晰、内容完整的文档。Xilinx官方虽然提供了一些Tutorial(见https://github.com/Xilinx/Edge-AI-Platform-Tutorials),但是这些文档并没有形成一个完整的链条。具体来说,把一个神经网络部署到DPU上,包含训练网络,编译网络模型,部署网络三个部分,Xilinx的Tutorial分别用不同的案例介绍了这三部分应该如何操作,但是没有一个完整的案例将这三个步骤从头到尾穿起来,而这三个步骤之间是紧密耦合的,因此按照官方的文档想把DPU跑起来需要踩很多坑。

基于上面提到的原因,在本系列博文中我将以PYNQ-Z2为例介绍DPU的使用作为官方Tutorial和Datasheet的补充,目的是让更多的初学者快速地把DPU用起来,至于DPU的一些性能评估等功能不在本文讨论之列。本系列博文相比官方的tutorial最大特点是完整,以ResNet50为案例介绍把神经网络模型在DPU上部署的完整流程,具体内容如下

DPU on PYNQ-Z2系列—1.1 硬件准备—在Vivado中集成DPU IP

DPU on PYNQ-Z2系列—1.2 硬件准备—在Petalinux中编译DPU的驱动及Linux镜像

DPU on PYNQ-Z2系列—2.1 DNNDK使用—搭建DNNDK环境

DPU on PYNQ-Z2系列—2.2 DNNDK使用—使用dnndk量化、编译模型

DPU on PYNQ-Z2系列—3.1 部署DPU—配置运行环境

DPU on PYNQ-Z2系列—3.2 部署DPU—使用DNNDK进行C++编程

DPU on PYNQ-Z2系列—3.3 部署DPU—在Jupyter中调用DPU

本系列博文基于Vivado 2019.1,Petalinux2019.1,DNNDK3.1,DPU1.4, PYNQv2.5。但是理论上其他版本的Vivado和Petalinux同样适用。

  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值