并行计算优化 和 内存带宽优化
并行计算优化:
输出间并行。
卷积核间并行。
卷积核内并行。
带宽优化:
模型压缩,压缩后模型精度会有所下降。对模型参数进行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