PYNQZ2简单测评

Linux 2019-01-29

简介&准备

PYNQ™-Z2 是一款基于Xilinx Zynq系列的SoC,其最重要的特点就是基于Pynq设计了一套使用Python与FPGA结合的框架。(具体也可以参考官网www.pynq.io

架构简介

PYNQ基于ZYNQ,而在这一片SoC中,Xilinx将ARM与FPGA结合在一起,也就是所谓的PS(Process System)端和PL(Programmable Logic)端,PS-PL使用片内AXI总线连接。

而利用ZYNQ的主要思想也就是在PS端处理控制逻辑在PL端负责神经网络的加速运算,之间通过AXI通信。当然也可以把PYNQ当树莓派使用,例如插个Intel神经加速棒来进行深度学习加速,但片载的FPGA不就浪费了:sweat:

硬件规格

ZYNQ XC7Z020-1CLG400C
 • 650MHz 双核 Cortex-A9 处理器
 • DDR3 8路DMA的内存控制器和四个高性能AXI3接口(High PerformanceAXI3 Slave ports)
 • 高带宽外设控制器:
  1G Ethernet, USB 2.0, SDIO
 • 低带宽外设控制器:
  SPI, UART, CAN, I2C
 • JTAG, Quad-SPI flash 和 MicroSD card
 • 可编程逻辑能力相当于ARTIX-7 FPGA
  • 13,300 个逻辑片(logic slices), 每个都拥有四个6输入LUT和8个触发器
  • 630 KB BRAM
  • 4个时钟管理片,每个片都有一个锁相环(PLL)和混合模式时钟管理器(MMCM)
  • 220个DSP
  • 片上模数转换器 (XADC)
内存
 • 带有16位总线@1050Mbps的512MB DDR3
 • 16MB Quad-SPI闪存,具有出厂编程的全球唯一标识符(兼容48位EUI-48/64™)
 • MicroSD插槽(TF卡)
电源
 • 可以由USB或任何7V-15V电源供电

详细可参阅官网Tul Pynq-Z2

资料下载

用户手册
系统镜像下载
XDC文件

开始

系统镜像烧写

首先下载上面提到的系统镜像,在这里推荐使用Etcher工具,基于Node.js编写跨平台易用,方便。在这里当然也可以使用DD工具。

Ethcer 下载地址


Select Image 选择刚刚下好的镜像,选择一张32G TF卡点击Flash 烧写即可

获取PYNQ地址

将PYNQ插入路由器DHCP会自动分配IP,到路由器中查看pynq地址。

安装QNN库

我们使用SSH进入系统安装需要的库。

PYNQ ssh web 账户密码默认均为xilinx

ssh xilinx@192.168.x.x

登陆进PYNQ后我们在这里安装QNN

sudo pip3 install git+https://github.com/Xilinx/QNN-MO-PYNQ.git

登陆PYNQ WEB

我们这里访问PYNQ的IP地址。PYNQ采用了jupyter作为他PYNQ代码查看编辑的工具。在这里我们大开QNN

选择Tiny Yolo(目标检测网络)

这里是Xilinx为PYNQ移植的Tiny Yolo网络


最后一张为能效对比

总结

最后我们可以看出PYNQ以不到5w的功耗,将在ARM上要运算一分钟的Tiny Yolo加速至不到1s,虽然精度与速度差强人意,但这个成绩在嵌入式上已经得到了极大的提高。

PS

上面是使用PYNQ自带的例程进行的测评,PYNQ的基本开发流程可参阅

发表评论

电子邮件地址不会被公开。 必填项已用*标注