文献阅读 - 基于FPGA的卷积神经网络加速器

285 阅读2分钟

并行计算优化 和 内存带宽优化

并行计算优化:

输出间并行。

卷积核间并行。

卷积核内并行。

带宽优化:

模型压缩,压缩后模型精度会有所下降。对模型参数进行8位量化可以达到明显的加速效果,同时造成的精度损失很小。

减少数据访问次数,高效的缓存计数实现数据的重用的最大化。

基于FPGA的卷积神经网络硬件加速器

卷积层硬件加速

全并行 乘法- 加法树单元来加速乘加运算,同时为了降低硬件资源的使用,设计高效窗口缓存模块对卷积窗口进行流水线操作,每个时钟周期生成一个卷积窗口用于后续计算。

对于加法树,如果当前层的输入个数是偶数,则可以与传统加法树一样,每两个数相加。如果当前层的输入个数是奇数,那么先对偶数个数进行并行计算,剩下的一个数直接输出到下一层。

高效窗口缓存单元:

输入与输出通道并行卷积层加速设计:

不同的卷积窗口进行流水线计算。 全并行乘法,加法树,加法器。

池化层通过流水线加速

2x2的最小池化,用过三个两两比较器。流水线实现。

ZYNQ7010 核心板主控芯片采用 Xilinx 公司的 ZYNQ7000 系列的 XC7Z010 ,具体型号为 XC7Z010CLG400-1。

ZYNQ 分为 PS ( Processing System )和 PL ( Programmable Logic )两部分。

PL 部分拥有 28K 个逻辑单元、 2.1Mbits 的嵌入式存储资源、 80 个 DSP 单元、2 个时钟管理单元( CMT )、 16 个全局时钟网络、 5 个用户 I/O BANK 和最大 228 个用户 I/O ,是一款非常具有性价比的芯片。 XC7Z020 和 XC7Z010 都集成了两个 Cortex-A9 处理器, AMBA® 互连,内部存储器,外部存储器接口 和外设。这些外设主要包括 USB 总线接口,以太网接口, SD/SDIO 接口, I2C 总线接口, CAN 总线接口, UART 接口, GPIO 等。

ZYNQ-SoC 整合了ARM 双核 cortex-A9处理器和 Xilinx 7系列 FPGA 架构,使得它不仅拥有 ASIC 在能耗、性能和兼容性方面的优势,而且具有FPGA 硬件可编程性的优点。

Xilinx Artix7

PL部分资源: 逻辑单元CLB 28k。 查找表LUT 17600。 触发器 35200 。 Block Ram 2.1Mb

乘法器 80.

cyclone IV E:### 使用JTAG直接配置.sof文件

Altera Cyclone IV E系列 AC620:

逻辑单元: 10320

18*18乘法器: 23

嵌入式存储器: 414Kbits

基于TimeQuest的时序分析

用Quartus II Timequest Timing Analyzer进行时序分析