CN208283943U - 一种基于fpga的cnn加速优化装置 - Google Patents

一种基于fpga的cnn加速优化装置 Download PDF

Info

Publication number
CN208283943U
CN208283943U CN201820882227.7U CN201820882227U CN208283943U CN 208283943 U CN208283943 U CN 208283943U CN 201820882227 U CN201820882227 U CN 201820882227U CN 208283943 U CN208283943 U CN 208283943U
Authority
CN
China
Prior art keywords
fpga
memory
chip
data
optimization device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201820882227.7U
Other languages
English (en)
Inventor
葛化敏
潘伟文
许四杰
刘海鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Keyuan Network Technology Co.,Ltd.
Original Assignee
Nanjing University of Information Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN201820882227.7U priority Critical patent/CN208283943U/zh
Application granted granted Critical
Publication of CN208283943U publication Critical patent/CN208283943U/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Image Analysis (AREA)

Abstract

本实用新型公开了一种基于FPGA的CNN加速优化装置,包括:主控模块和外部存储器模块;主控模块具体为FPGA片上系统,外部存储器模块具体为DDR3 DRAM,DDR3 DRAM直接连接到了FPGA片上系统的BANK37、BANK38和BANK39的存储器接口上。本实用新型能够利用FPGA的快速并行处理和极低功耗的高效能计算特性,实现深度卷积神经网络模型中复杂度最高的卷积计算部分,在保证算法正确率的前提下,大幅提升算法效率,降低功耗。

Description

一种基于FPGA的CNN加速优化装置
技术领域
本发明涉及数字图像处理、模式识别技术领域,尤其是一种基于FPGA的CNN加速优化装置。
背景技术
CNN是著名的深度学习架构,从人工神经网络扩展而来,因为它能模仿生物视觉神经的行为获得很高识别准确率,所以CNN已经广泛用于图像识别。最近,基于深度学习算法的现代应用高速增长进一步改善了研究和实现。现有的大部分CNN实现主要是基于通用处理器CPU实现的。由于CNN的特殊计算模式,通用处理器实现CNN并不高效,所以很难满足性能需求。
典型的CNN算法模型由两部分组成特征提取器和分类器。其中特征提取器负责生成输入数据的低维特征向量,对数据具有较好的鲁棒性。该向量作为分类器(通常基于传统的人工神经网络)的输入数据进行分类,得到输入数据的分类结果。
在CNN网络结构中,层内计算是独立不相关的,而层间结构可以理解为是一个流水结构。CPU由于其自身特点无法充分地挖掘CNN内部的并行性。FPGA作为一种计算密集型加速部件,通过将算法映射到FPGA上的并行硬件进行加速。FPGA上所设计的各个硬件模块可以并行执行。各个硬件模块输入输出的相互连接以及FPGA所提供的流水结构可以很好地和CNN算法相匹配,充分利用算法网络结构内部的并行性,在提高运算速度的同时缩小了能耗。
发明内容
本发明所要解决的技术问题在于,提供一种基于FPGA的CNN加速优化装置,能够利用FPGA的快速并行处理和极低功耗的高效能计算特性,实现深度卷积神经网络模型中复杂度最高的卷积计算部分,在保证算法正确率的前提下,大幅提升算法效率,降低功耗。
为解决上述技术问题,本发明提供一种基于FPGA的CNN加速优化装置,包括:主控模块和外部存储器模块;主控模块具体为FPGA片上系统,外部存储器模块具体为DDR3DRAM,DDR3DRAM直接连接到了FPGA片上系统的BANK37、BANK38和 BANK39的存储器接口上。
优选的,DDR3DRAM内存条的存储空间为1GB,由8片容量为128M的内存芯片U1、U2、U3、U4、U6、U7、U8和U9组成;U1、U2、U3和U4排列在内存条的正面, U6、U7、U8和U9排列在内存条的背面,将8个内存芯片的片选引脚CS#连接到芯片选择引脚S0#上,S0#引脚用来使能和禁止命令译码。
优选的,DDR3DRAM中,每个内存芯片的ZQ引脚外接一个240Ω的电阻与地相连,用来校准芯片的ODT和输出驱动。
优选的,FPGA片上系统包括定时器、串口、MicroBlaze处理器、加速器、第一数据传输引擎、第二数据传输引擎、中断控制器和、存储器接口控制器、AXI4lite总线和 AXI4总线;Timer、UART、加速器和MicroBlaze处理器分别与AXI4lite总线相连, MicroBlaze处理器、第一数据传输引擎、第二数据传输引擎和存储器接口控制器分别与 AXI4总线相连,加速器与第一数据传输引擎和第二数据传输引擎分别相连,中断控制器连接在加速器和MicroBlaze处理器之间。
优选的,AXI4lite总线用于传输命令,AXI4总线用于传输数据。
本发明的有益效果为:本发明利用FPGA的快速并行处理和极低功耗的高效能计算特性,实现深度卷积神经网络模型中复杂度最高的卷积计算部分,在保证算法正确率的前提下,大幅提升算法效率;相比于传统基于CPU或GPU实现深度卷积神经网络的方法,本发明在有效提高算法计算速度的同时,大幅降低了功耗,有效解决了采用CPU 或GPU实现深度卷积神经网络导致的运算时间长或功耗大的问题。
附图说明
图1为本发明的装置结构示意图。
图2为本发明的CNN加速器设计示意图。
图3为本发明的主控模块与外部存储器连接示意图。
图4为本发明的外部存储器模块结构示意图。
具体实施方式
如图1所示,一种基于FPGA的CNN加速优化装置,包括:主控模块和外部存储器模块;主控模块具体为FPGA片上系统,外部存储器模块具体为DDR3DRAM,DDR3 DRAM直接连接到了FPGA片上系统的BANK37、BANK38和BANK39的存储器接口上。
DDR3的硬件设计需要严格考虑信号完整性,在电路设计和PCB设计的时候要充分考虑了匹配电阻/终端电阻、走线阻抗控制、走线等长控制,保证DDR3的高速稳定的工作。该DDR3存储系统直接连接到了FPGA的BANK 37,BANK38和BANK39的存储器接口上。
DDR3控制器的设计采用了Xilinx推出的IP核MIG_v1.7+存储器接口模块的设计方法。该内存控制器的用户接口设计能够对DDR3内存模块进行很好的管理,同时完成用户发送的各种请求,并且最大限度的提高了访问内存的速度和带宽,避免了数据的丢失,并成功的应用到某高速图像采集系统中。在此用户接口的基础上设计的内存控制器能够与市场上大多数主流内存进行兼容,可移植性强,大大降低了开发成本。
本发明的硬件平台为Xilinx公司的Virtex-7FPGA VC707评估套件。7系列的FPGA具有比6系列和5系列的FPGA尺寸小、成本低、高性价比和大容量以及超高端连接带宽等优点。
如图3所示,FPGA片上系统包括定时器、串口、MicroBlaze处理器、加速器、第一数据传输引擎、第二数据传输引擎、中断控制器和、存储器接口控制器、AXI4lite总线和AXI4总线;定时器、串口、加速器和MicroBlaze处理器分别与AXI4lite总线相连, MicroBlaze处理器、第一数据传输引擎、第二数据传输引擎和存储器接口控制器分别与AXI4总线相连,加速器与第一数据传输引擎和第二数据传输引擎分别相连,中断控制器连接在加速器和MicroBlaze处理器之间。AXI4lite总线用于传输命令,AXI4总线用于传输数据。
MicroBlaze处理器是一个RISC处理器软核,通过AXI总线的IP核,MicroBlaze 处理器就可以和外部存储控制器、串口、中断控制器、定时器等各种外设IP核相连构建基本的嵌入式系统,完成可编程系统芯片(SOPC)的设计。在系统中,MicroBlaze处理器用于启动CNN加速器,与主机CPU通信,以及使用定时器来进行计时。
CNN加速器作为AXI总线上的一个IP,它从MicroBlaze处理器接收到命令和配置参数,与定制的数据传输引擎通过FIFO接口通信,该数据传输引擎可以通过AXI4总线访问外部存储器DDR3DRAM。
本装置的CNN加速器设计包括:处理单元,片上缓存,外部存储器以及片内外互连。处理单元是卷积的基本单元,用于处理的所有数据存放在外部存储器。由于片上资源限制,数据首先缓存到片上缓冲区,然后送入处理单元,这里使用双缓冲将传输时间掩盖于计算时间内。片上互连用于处理单元和片上缓冲的通信。
CNN加速器作为AXI总线上的一个IP,它从MicroBlaze处理器接收到命令和配置参数,与定制的数据传输引擎通过FIFO接口通信,该数据传输引擎可以通过AXI4总线访问外部内存。MicroBlaze处理器和CNN加速器使用中断机制来提供精确的计时。
由于片上数据只有很少一部分,所以循环分块(looptiling)是非常必要的,有效的循环分块可以提高数据重用和数据并行处理效率。为了提高数据重用和数据并行处理的效率,可利用Vivado设计套件高层次综合(HLS)工具生成高效的循环流水线,通过将不同循环层次操作执行交叠,将计算资源完全利用,可在Xilinx FPGA上快速实现高吞吐量的处理引擎。并且在实现数据高吞吐的情况下匹配FPGA平台的片外访存带宽。
使用数据传输引擎的目的有两个:(1)可以提供加速器和外部DDR3DRAM之间的数据传输;(2)可以隔离加速器和平台、工具相关带宽特性。在分析带宽问题时,增加IP-AXI接口位宽不会影响带宽,但是增加IP接口到AXI总线,它的带宽几乎呈线性增长。在我们CNN加速器设计中,最小带宽需要1.55GB/s。4个IP接口足够用于这个设计。我们使用两个AXI-IP接口用于数据传输引擎1,两个用于数据传输引擎2。
如图2所示,一个CNN加速器设计包括:处理单元,片上缓存,外部存储器以及片内外互连。处理单元是卷积的基本单元,用于处理的所有数据存放在外部存储器。由于片上资源限制,数据首先缓存到片上缓冲区,然后送入处理单元,这里使用双缓冲将传输时间掩盖于计算时间。片上互连用于处理单元和片上缓冲的通信。
由于片上数据只有很少一部分,所以循环分块(looptiling)是非常必要的,有效的循环分块可以提高数据重用和数据并行处理效率。为了提高数据重用和数据并行处理的效率,可利用Vivado设计套件高层次综合(HLS)工具生成高效的循环流水线,通过将不同循环层次操作执行交叠,将计算资源完全利用,可在Xilinx FPGA上快速实现高吞吐量的处理引擎。
本装置是基于VC707板卡,使用Xilinx FPGA芯片Virtex7 485t实现的,它的工作频率为100M。加速器设计用Vivado HLS(v2017.4)实现,该工具允许用C语言实现加速器,并导出RTL为一个Vivado IP核。CNN设计C代码通过增加HLS定义的编译向导实现并行化,并行化版本通过时序分析工具进行验证。快速综合前仿真使用该工具的C仿真和C/RTL联合仿真完成。综合前资源报告用于设计空间探索和性能估计,导出的RTL使用Vavido(v2017.4)进行综合、实现。之后,工具会汇报资源占用情况,如表1所示,可以看出本装置的CNN加速器可以很高程度上利用FPGA的硬件资源。
表1 FPGA资源使用率
资源 DSP BRAM LUT FF
使用 2240 1024 186251 205704
可用 2800 2060 303600 607200
使用率 80% 50% 61.3% 33.87%
如图4所示,本发明采用的DDR3_DRAM为Micron公司的MTJTF2864HZ-1G6G1 内存条,该DDR3内存条的存储空间为1GB,由8片容量为128M的内存芯片构成。每个芯片的数据位宽为8位,行地址线14根,列地址线10根,Bank数量为8个,因此每个芯片的容量为16384x1024x8x8即128MB。8片组成在一起就构成了64位数据位宽,容量为1GB。在每个DDR3模块上的ZQ引脚外接一个240欧的电阻与地相连,用来校准模块的ODT和输出驱动。
与上一代存储器件相比,DDR3的内存模式有了很大的改进:逻辑Bank数量由 DDR2的4个增加为8个;突发长度增加为8bit,任何突发中断操作都将在DDR3内存中予以禁止,且不予支持;取而代之的是更为灵活的突发传输控制;其核心工作电压由 DDR2的1.8V降至1.5V,能够在达到高带宽的同时,大幅度的降低其功耗;DDR3采用FLY_BY总线,参考电压分离,增加了ZQ校准功能,从而大大的提高了存储信号的完整性。

Claims (5)

1.一种基于FPGA的CNN加速优化装置,其特征在于,包括:主控模块和外部存储器模块;主控模块具体为FPGA片上系统,外部存储器模块具体为DDR3 DRAM,DDR3 DRAM直接连接到了FPGA片上系统的BANK37、BANK38和BANK39的存储器接口上。
2.如权利要求1所述的基于FPGA的CNN加速优化装置,其特征在于,DDR3 DRAM内存条的存储空间为1GB,由8片容量为128M的内存芯片U1、U2、U3、U4、U6、U7、U8和U9组成;U1、U2、U3和U4排列在内存条的正面,U6、U7、U8和U9排列在内存条的背面,将8个内存芯片的片选引脚CS#连接到芯片选择引脚S0#上,S0#引脚用来使能和禁止命令译码。
3.如权利要求2所述的基于FPGA的CNN加速优化装置,其特征在于,DDR3 DRAM中,每个内存芯片的ZQ引脚外接一个240Ω的电阻与地相连,用来校准芯片的ODT和输出驱动。
4.如权利要求1所述的基于FPGA的CNN加速优化装置,其特征在于,FPGA片上系统包括定时器、串口、MicroBlaze处理器、加速器、第一数据传输引擎、第二数据传输引擎、中断控制器和、存储器接口控制器、AXI4lite总线和AXI4总线;定时器、串口、加速器和MicroBlaze处理器分别与AXI4lite总线相连,MicroBlaze处理器、第一数据传输引擎、第二数据传输引擎和存储器接口控制器分别与AXI4总线相连,加速器与第一数据传输引擎和第二数据传输引擎分别相连,中断控制器连接在加速器和MicroBlaze处理器之间。
5.如权利要求4所述的基于FPGA的CNN加速优化装置,其特征在于,AXI4lite总线用于传输命令,AXI4总线用于传输数据。
CN201820882227.7U 2018-06-08 2018-06-08 一种基于fpga的cnn加速优化装置 Expired - Fee Related CN208283943U (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201820882227.7U CN208283943U (zh) 2018-06-08 2018-06-08 一种基于fpga的cnn加速优化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201820882227.7U CN208283943U (zh) 2018-06-08 2018-06-08 一种基于fpga的cnn加速优化装置

Publications (1)

Publication Number Publication Date
CN208283943U true CN208283943U (zh) 2018-12-25

Family

ID=64698444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201820882227.7U Expired - Fee Related CN208283943U (zh) 2018-06-08 2018-06-08 一种基于fpga的cnn加速优化装置

Country Status (1)

Country Link
CN (1) CN208283943U (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109523019A (zh) * 2018-12-29 2019-03-26 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
CN109784484A (zh) * 2019-01-31 2019-05-21 深兰科技(上海)有限公司 神经网络加速方法、装置、神经网络加速芯片及存储介质
CN110324550A (zh) * 2019-07-17 2019-10-11 陕西千山航空电子有限责任公司 一种视频记录器
CN111367465A (zh) * 2018-12-26 2020-07-03 深圳市江波龙电子股份有限公司 一种存储设备的控制方法及存储设备、电子设备
CN113112002A (zh) * 2021-04-06 2021-07-13 济南大学 一种基于fpga轻量级卷积加速器的设计方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367465A (zh) * 2018-12-26 2020-07-03 深圳市江波龙电子股份有限公司 一种存储设备的控制方法及存储设备、电子设备
CN109523019A (zh) * 2018-12-29 2019-03-26 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
CN109523019B (zh) * 2018-12-29 2024-05-21 百度在线网络技术(北京)有限公司 加速器、基于fpga的加速系统及控制方法、cnn网络系统
CN109784484A (zh) * 2019-01-31 2019-05-21 深兰科技(上海)有限公司 神经网络加速方法、装置、神经网络加速芯片及存储介质
CN110324550A (zh) * 2019-07-17 2019-10-11 陕西千山航空电子有限责任公司 一种视频记录器
CN113112002A (zh) * 2021-04-06 2021-07-13 济南大学 一种基于fpga轻量级卷积加速器的设计方法

Similar Documents

Publication Publication Date Title
CN208283943U (zh) 一种基于fpga的cnn加速优化装置
US11928590B2 (en) Methods and systems for power management in a pattern recognition processing system
US20190347233A1 (en) Methods and apparatuses for providing data received by a state machine engine
CN107256156B (zh) 用于状态机中的检测的方法及系统
US11775320B2 (en) Overflow detection and correction in state machine engines
US9075428B2 (en) Results generation for state machine engines
CN110135554A (zh) 一种基于fpga的卷积神经网络硬件加速架构
US10254976B2 (en) Methods and systems for using state vector data in a state machine engine
US10216626B2 (en) Parallel garbage collection implemented in hardware
CN102508803A (zh) 一种矩阵转置存储控制器
CN115481079B (zh) 一种数据调度系统、可重构处理器及数据调度方法
CN104765701B (zh) 数据访问方法及设备
CN102752180A (zh) Can总线网络节点的实现方法
Chang et al. A memory-optimized and energy-efficient CNN acceleration architecture based on FPGA
CN105404728B (zh) 一种基于fpga芯片多控制信号的布局方法
CN106843803B (zh) 一种基于归并树的全排序加速器及应用
US11449344B1 (en) Regular expression processor and parallel processing architecture
CN111190853A (zh) 基于emif和srio接口的片间高速通信系统
CN109446126A (zh) 基于emif总线的dsp与fpga高速通信系统及方法
CN108763421A (zh) 一种基于逻辑电路的数据搜索方法及系统
CN209044575U (zh) 基于pis的存储装置控制器、存储装置及系统
CN207835492U (zh) 一种双缓存载波解调系统
CN111860781A (zh) 基于fpga实现的卷积神经网络特征解码系统
CN112711925A (zh) 虚拟化emif总线dsp软件设计方法
CN105843986B (zh) 一种基于fpga可自动扩展地址的控制系统

Legal Events

Date Code Title Description
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201218

Address after: Room 1604-34, building K, yunmicheng, No.19, ningshuang Road, Yuhuatai District, Nanjing City, Jiangsu Province, 210000

Patentee after: Jiangsu Keyuan Network Technology Co.,Ltd.

Address before: 211500 Yuting square, 59 Wangqiao Road, Liuhe District, Nanjing City, Jiangsu Province

Patentee before: NANJING University OF INFORMATION SCIENCE & TECHNOLOGY

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181225

Termination date: 20200608

CF01 Termination of patent right due to non-payment of annual fee