CN207458128U - 一种基于fpga在视觉应用中的卷积神经网络加速器 - Google Patents
一种基于fpga在视觉应用中的卷积神经网络加速器 Download PDFInfo
- Publication number
- CN207458128U CN207458128U CN201721140067.0U CN201721140067U CN207458128U CN 207458128 U CN207458128 U CN 207458128U CN 201721140067 U CN201721140067 U CN 201721140067U CN 207458128 U CN207458128 U CN 207458128U
- Authority
- CN
- China
- Prior art keywords
- fpga
- neural networks
- convolutional neural
- memory
- vision application
- 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
Links
Landscapes
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
本实用新型提供了一种基于FPGA在视觉应用中的卷积神经网络加速器,涉及图像处理于模式识别技术领域。具体应用ZYNQ‑XC7Z020 soc平台,其具有ARM+FPGA异构架构,ARM处理器设置特定的参数通过AXI总线对FPGA进行控制,FPGA进行卷积操作与加速,利用多层卷积神经网络提取图像特征,之后将卷积操作之后的结果保存至内存中,再由ARM对数据进行后期处理。本实用新型提供了基于卷积神经网络的FPGA硬件加速方案,充分利xilinx ZYNQ器件中丰富的运算资源,挖掘卷积神经网络的并行性优势,利用可重用性的内核数据,限制不必要的访问片外存储器,减少带宽消耗,且在实时性和功耗方面都能满足实际应用的需求,从而提高卷积神经网络计算效率。
Description
技术领域
本实用新型涉及图像处理与模式识别技术领域,具体涉及一种基于FPGA在视觉应用中的卷积神经网络加速器。
背景技术
随着集成电路设计和制造工艺的进步,具有大量高速可编程逻辑资源的现场可编程门阵列(Field Programmable Gate Array,FPGA)得到了快速发展,单个芯片的集成度越来越高。为了进一步提高FPGA性能,主流的芯片厂商在芯片内部集成了具有高速数字信号处理能力的数字信号处理(Digital Signal Processing,DSP)定制计算单元与大量的硬件乘累加(Multiply-add Accumulation,MAC)单元,能够高效、低功耗的实现定点运算,完成大量的卷积运算任务。使得FPGA在视频与图像处理、网络通信与信息安全、模式识别等应用领域被广泛采用。
卷积神经网络(Convolutional Neural Networks ,CNN)是一种源自人工神经网络的多层感知器,它对图像的处理与特征提取具有高度的适应性使之成为当前模式识别和图像识别领域的研究热点。它的权值共享网络结构使之更类似于生物神经网络结构,降低了网络模型的复杂度,减少了权值的数量。图像可以直接作为网络的底层输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征,避免了传统识别算法中复杂的特征提取和数据重建过程。
现有的大部分CNN实现主要是基于通用处理器CPU,图形处理器GPU或是专用集成电路(Application Specific Integrated Circuits,ASIC)实现的。CPU 为了满足通用性,芯片面积有很大一部分都用于复杂的控制流和Cache缓存,留给运算单元的面积并不多,所以无法充分地挖掘CNN内部的并行性;GPU 运行效率比 CPU 快很多,但是由于高昂的价格以及超大的功耗对于使其在实际应用中成本相对更高;ASIC虽是一个有效的方式实现卷积神经网络,但其设计周期长和制造成本高,而且体系结构是固定的,灵活性与拓展性较差。
发明内容
本实用新型的目的在于:克服现有技术的缺陷,针对视觉应用中图像处理功耗高,实时性与可拓展性较差的不足,提供一种基于FPGA在视觉应用中的卷积神经网络加速器,实现对图像数据的快速处理和对实时图像的高度识别。
本实用新型解决其技术问题所采用的技术方案是:本实用新型选择XilinxZynq-7000扩展式处理平台,具体采用ZYNQ-XC7Z020 SOC,它组合了一个双核ARM Cortex-A9处理器和一个传统FPGA逻辑部件,两者采用AXI工业标准的接口,从而在芯片的两个部分之间实现互联的异构架构。
ZYNQ中ARM Cortex-A9是一个应用级的处理器,位于处理系统端(Processingsystem,PS),而可编程逻辑端(Programmable Logic,PL)部分是基于Xilinx7系列的FPGA架构,此外还具有用于密集存储需要的块 RAM 和用于高速算术的 DSP48E1 片。
利用FPGA的并行计算能力在PL端的FPGA上设计乘法累加模块(Multiply andAccumulate operations,MAC )进行大量的卷积运算。MAC模块拥有一块较小的内存,存储与输入数据对应的卷积核数据,称之为“协存储器”。
ARM是整个系统的主控制器,是用于处理不同类型的卷积操作。ARM提供每个卷积操作中不同的参数,同时在PL端控制器需要配置不同的卷积核参数与运行时特征图的尺寸和数量。输入图像与其权值都被存储在片外DDR SDRAM存储器中。这个存储器连接到位于PS端的DDR内存控制器上。
ARM与逻辑运算部分及存储单元使用AXI CDMA(AXI Central Direct MemoryAccess)接口进行通信 ,ARM通过对总线控制器进行设置来控制各模块之间数据传输与通信。
卷积运算网络(CNN)采用Alex-net网络。它包括1个输入层,5个卷积层,3个池化层,3个全连接层。第一层拥有96个11*11卷积核,第二层拥有256个11*11卷积核,第三,四层拥有384个3*3卷积核,第五层拥有256个3*3卷积核,其池化层采用最大值法,滑动窗口大小为3*3,步长为2。
本实用新型所产生的有益效果有:
利用ARM+FPGA硬件平台进行卷积运算网络的加速,可以提高CNN网络的实时性,实现了较高的计算性能并且降低功耗,提高了该系统的拓展性。
附图说明
图1是本实用新型的系统运行时框图。
图2是本实用新型的系统片外存储器互联图。
图3是Alex-net卷积神经网络各层输入输出参数。
具体实施方式
现结合附图对本实用新型做进一步描述。
如附图1所示,本实用新型的系统结构包括PS端ARM主控芯片,PL端包含总线控制器,数据存储器,MAC运算模块与其对应的协存储器。如附图2所示,PS与PL端及PL端内部通过AXI接口互联,片上存储器到片外存储器的数据传输是通过使用AXI CDMA实现的。
系统结构通过Vivado综合设计环境与verilog语言设计,使用Vivado HLS软件编写控制程序。数据存储器和协存储器中内存为空,总线控制器控制多个多路复用器进行数据传输与模块选择。数据存储器与协存储器的内存长度都为32字节,卷积核长度为16字节。
本加速器包含32个MAC模块,每个都对应一个18KB的存储卷积核数据的协存储器,2MB的数据存储器空间来存储输入输出图像信息。其中协存储器由FPGA中的块RAM实现,而数据存储器由FPGA基于查找表(Look Up Table,LUT)生成分布式RAM构成。每个MAC模块包含12个DSP48模块用于进行卷积运算。每个协存储器存储两个16位卷积核的值,在片上存储器使用双端口RAM,两个端口都可读写。这样两行协存储器可以在同一时间访问,MAC模块可以生成四个对应不同的特征图的输出数据。
首先,ARM处理器AXI GPIO设置多路复用器连接片上数据存储器和协存储器,然后配置CDMA加载输入特征图的数据映射到数据存储器,同时使卷积核数据映射到每个相应的协存储器上。
之后,ARM一方面通过总线控制器设置合适的寄存器参数,PL端的控制器使用这些参数来计算所需的地址信息,选择所需的MAC模块,从而操作PL侧控制寄存器来运行卷积操作;另一方面通过设置多路复用器将数据内存连接到控制单元,同时也使协存储器连接到对应的MAC模块。
接下来图像数据通过控制单元开始传输到MAC模块,在每次运行后存储经过计算输出的像素信息在数据存储器中,持续着个操作直到运行完成一个周期后。当运行完成一个周期时,即代表全部输出的特征数据已经完成了运算与存储。
当所有的输出数据都已经完成计算,ARM需要再次控制并设置多路复用器,通过AXI总线连接到片上存储器来传递数据存储器中存储的卷积操作的运算结果给片外存储器中进行后期处理,加速过程完成。
其中AXI工作在分散/聚集(Scatter-gather DMA)模式。这种工作方式DMA自动加载数据源,这个数据源来自于片外存储器中存储的多组数据,传递完成后中断CPU。而当运行完成一个周期时,新卷积核将在协存储器中取代旧卷积核,而数据存储器中的数据将保持不变,直到它用于下一个周期的循环。这能够改善了加载数据与卷积核的时间,同时对中断的数量进行限制,从而降低了每个卷积操作中CPU的负载。
通过控制程序可对系统参数进行修改,支持运行时修改图像大小的参数范围,卷积核大小,及MAC模块调用。利用可重用性的内核数据,限制不必要的访问片外存储器,因此减少带宽消耗,因此提高卷积神经网络的实时性与灵活性,从而完成提高卷积神经网络计算效率的任务。
Claims (5)
1.一种基于FPGA在视觉应用中的卷积神经网络加速器,其系统结构处理系统端包括双核ARM Cortex-A9主控芯片,可编程逻辑端包含总线控制器,数据存储器,MAC运算模块与其对应的协存储器,两个部分通过AXI总线互联。
2.根据权利要求1所述的一种基于FPGA在视觉应用中的卷积神经网络加速器,其特征在于,硬件FPGA逻辑单元为Xilinx Artix-7 FPGA,具体采用Xilinx ZYNQ-7020 SOC开发平台。
3.根据权利要求1所述卷积神经网络加速器,其特征在于所述卷积神经网络基于Alex-net卷积神经网络,包括1个输入层,5个卷积层,3个池化层,3个全连接层,第一层拥有96个11*11卷积核,第二层拥有256个11*11卷积核,第三,四层拥有384个3*3卷积核,第五层拥有256个3*3卷积核,其池化层采用最大值法,滑动窗口大小为3*3,步长为2。
4.根据权利要求1所述的一种基于FPGA在视觉应用中的卷积神经网络加速器,其特征在于,处理系统端与可编程逻辑端的AXI总线互联部分采用四个AXI CDMA中的前三个CDMA连接到协存储器,第四个CDMA则是专用于加载输入特征图数据并传输运算完成后的结果给数据存储器。
5.根据权利要求1中所述的一种基于FPGA在视觉应用中的卷积神经网络加速器,其特征在于,可编程逻辑端的MAC运算模块中每个MAC模块包含12个DSP48模块用于进行卷积运算,每个协存储器存储两个16位卷积核的值,协存储器由FPGA中的块RAM实现,数据存储器由FPGA基于查找表的生成分布式RAM构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201721140067.0U CN207458128U (zh) | 2017-09-07 | 2017-09-07 | 一种基于fpga在视觉应用中的卷积神经网络加速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201721140067.0U CN207458128U (zh) | 2017-09-07 | 2017-09-07 | 一种基于fpga在视觉应用中的卷积神经网络加速器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN207458128U true CN207458128U (zh) | 2018-06-05 |
Family
ID=62248786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201721140067.0U Expired - Fee Related CN207458128U (zh) | 2017-09-07 | 2017-09-07 | 一种基于fpga在视觉应用中的卷积神经网络加速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN207458128U (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108921182A (zh) * | 2018-09-26 | 2018-11-30 | 苏州米特希赛尔人工智能有限公司 | Fpga实现的特征提取图像传感器 |
CN109284817A (zh) * | 2018-08-31 | 2019-01-29 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
CN109359732A (zh) * | 2018-09-30 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
CN109408455A (zh) * | 2018-11-27 | 2019-03-01 | 珠海欧比特宇航科技股份有限公司 | 一种人工智能soc处理器芯片 |
CN109472735A (zh) * | 2018-10-30 | 2019-03-15 | 深圳灵图慧视科技有限公司 | 实现织物疵点检测神经网络的加速器、方法和加速系统 |
CN109472734A (zh) * | 2018-10-18 | 2019-03-15 | 江苏第二师范学院(江苏省教育科学研究院) | 一种基于fpga的目标检测网络及其实现方法 |
CN109542513A (zh) * | 2018-11-21 | 2019-03-29 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络指令数据存储系统及方法 |
CN109740619A (zh) * | 2018-12-27 | 2019-05-10 | 北京航天飞腾装备技术有限责任公司 | 用于目标识别的神经网络终端运行方法和装置 |
CN109871939A (zh) * | 2019-01-29 | 2019-06-11 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种图像处理方法及图像处理装置 |
CN109948784A (zh) * | 2019-01-03 | 2019-06-28 | 重庆邮电大学 | 一种基于快速滤波算法的卷积神经网络加速器电路 |
CN110084739A (zh) * | 2019-03-28 | 2019-08-02 | 东南大学 | 一种基于cnn的画质增强算法的fpga并行加速系统 |
CN110309088A (zh) * | 2019-06-19 | 2019-10-08 | 北京百度网讯科技有限公司 | Zynq fpga芯片及其数据处理方法、存储介质 |
CN110348574A (zh) * | 2019-07-17 | 2019-10-18 | 哈尔滨理工大学 | 一种基于zynq的通用卷积神经网络加速结构及设计方法 |
CN110727633A (zh) * | 2019-09-17 | 2020-01-24 | 广东高云半导体科技股份有限公司 | 基于SoC FPGA的边缘人工智能计算系统构架 |
CN110826707A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN111860784A (zh) * | 2020-07-24 | 2020-10-30 | 上海仪电(集团)有限公司中央研究院 | 基于arm和fpga的卷积神经识别系统及方法 |
CN113472964A (zh) * | 2021-06-05 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种图像处理装置和系统 |
CN113490943A (zh) * | 2019-07-31 | 2021-10-08 | 华为技术有限公司 | 一种集成芯片以及处理传感器数据的方法 |
CN113705803A (zh) * | 2021-08-31 | 2021-11-26 | 南京大学 | 基于卷积神经网络的图像硬件识别系统及部署方法 |
CN113747045A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 多媒体处理芯片、电路板及电子设备 |
CN118014022A (zh) * | 2024-01-29 | 2024-05-10 | 中国人民解放军陆军炮兵防空兵学院 | 面向深度学习的fpga通用异构加速方法及设备 |
-
2017
- 2017-09-07 CN CN201721140067.0U patent/CN207458128U/zh not_active Expired - Fee Related
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110826707A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN110826707B (zh) * | 2018-08-10 | 2023-10-31 | 北京百度网讯科技有限公司 | 应用于卷积神经网络的加速方法和硬件加速器 |
CN109284817A (zh) * | 2018-08-31 | 2019-01-29 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
CN109284817B (zh) * | 2018-08-31 | 2022-07-05 | 中国科学院上海高等研究院 | 深度可分离卷积神经网络处理架构/方法/系统及介质 |
CN108921182A (zh) * | 2018-09-26 | 2018-11-30 | 苏州米特希赛尔人工智能有限公司 | Fpga实现的特征提取图像传感器 |
CN109359732A (zh) * | 2018-09-30 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
US11361217B2 (en) | 2018-09-30 | 2022-06-14 | Advanced New Technologies Co., Ltd. | Chip and chip-based data processing method |
US11062201B2 (en) | 2018-09-30 | 2021-07-13 | Advanced New Technologies Co., Ltd. | Chip and chip-based data processing method |
CN109359732B (zh) * | 2018-09-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法 |
CN109472734B (zh) * | 2018-10-18 | 2022-12-27 | 江苏第二师范学院(江苏省教育科学研究院) | 一种基于fpga的目标检测网络及其实现方法 |
CN109472734A (zh) * | 2018-10-18 | 2019-03-15 | 江苏第二师范学院(江苏省教育科学研究院) | 一种基于fpga的目标检测网络及其实现方法 |
CN109472735A (zh) * | 2018-10-30 | 2019-03-15 | 深圳灵图慧视科技有限公司 | 实现织物疵点检测神经网络的加速器、方法和加速系统 |
CN109472735B (zh) * | 2018-10-30 | 2023-05-26 | 深圳灵图慧视科技有限公司 | 实现织物疵点检测神经网络的加速器、方法和加速系统 |
CN109542513B (zh) * | 2018-11-21 | 2023-04-21 | 山东浪潮科学研究院有限公司 | 一种卷积神经网络指令数据存储系统及方法 |
CN109542513A (zh) * | 2018-11-21 | 2019-03-29 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络指令数据存储系统及方法 |
CN109408455A (zh) * | 2018-11-27 | 2019-03-01 | 珠海欧比特宇航科技股份有限公司 | 一种人工智能soc处理器芯片 |
CN109740619A (zh) * | 2018-12-27 | 2019-05-10 | 北京航天飞腾装备技术有限责任公司 | 用于目标识别的神经网络终端运行方法和装置 |
CN109948784A (zh) * | 2019-01-03 | 2019-06-28 | 重庆邮电大学 | 一种基于快速滤波算法的卷积神经网络加速器电路 |
CN109871939A (zh) * | 2019-01-29 | 2019-06-11 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种图像处理方法及图像处理装置 |
CN110084739A (zh) * | 2019-03-28 | 2019-08-02 | 东南大学 | 一种基于cnn的画质增强算法的fpga并行加速系统 |
CN110309088A (zh) * | 2019-06-19 | 2019-10-08 | 北京百度网讯科技有限公司 | Zynq fpga芯片及其数据处理方法、存储介质 |
CN110348574A (zh) * | 2019-07-17 | 2019-10-18 | 哈尔滨理工大学 | 一种基于zynq的通用卷积神经网络加速结构及设计方法 |
CN113490943A (zh) * | 2019-07-31 | 2021-10-08 | 华为技术有限公司 | 一种集成芯片以及处理传感器数据的方法 |
CN110727633A (zh) * | 2019-09-17 | 2020-01-24 | 广东高云半导体科技股份有限公司 | 基于SoC FPGA的边缘人工智能计算系统构架 |
US11544544B2 (en) | 2019-09-17 | 2023-01-03 | Gowin Semiconductor Corporation | System architecture based on SoC FPGA for edge artificial intelligence computing |
US20210081770A1 (en) * | 2019-09-17 | 2021-03-18 | GOWN Semiconductor Corporation | System architecture based on soc fpga for edge artificial intelligence computing |
CN113747045A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 多媒体处理芯片、电路板及电子设备 |
CN113747045B (zh) * | 2020-05-29 | 2023-06-20 | Oppo广东移动通信有限公司 | 多媒体处理芯片、电路板及电子设备 |
CN111860784A (zh) * | 2020-07-24 | 2020-10-30 | 上海仪电(集团)有限公司中央研究院 | 基于arm和fpga的卷积神经识别系统及方法 |
CN113472964A (zh) * | 2021-06-05 | 2021-10-01 | 山东英信计算机技术有限公司 | 一种图像处理装置和系统 |
CN113472964B (zh) * | 2021-06-05 | 2024-04-16 | 山东英信计算机技术有限公司 | 一种图像处理装置和系统 |
CN113705803A (zh) * | 2021-08-31 | 2021-11-26 | 南京大学 | 基于卷积神经网络的图像硬件识别系统及部署方法 |
CN113705803B (zh) * | 2021-08-31 | 2024-05-28 | 南京大学 | 基于卷积神经网络的图像硬件识别系统及部署方法 |
CN118014022A (zh) * | 2024-01-29 | 2024-05-10 | 中国人民解放军陆军炮兵防空兵学院 | 面向深度学习的fpga通用异构加速方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN207458128U (zh) | 一种基于fpga在视觉应用中的卷积神经网络加速器 | |
CN108108809A (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
CN107392309A (zh) | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 | |
CN109934339A (zh) | 一种基于一维脉动阵列的通用卷积神经网络加速器 | |
CN109284817B (zh) | 深度可分离卷积神经网络处理架构/方法/系统及介质 | |
CN109564638A (zh) | 人工智能处理器、及其所应用的处理方法 | |
JP6960700B2 (ja) | マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
US11989638B2 (en) | Convolutional neural network accelerating device and method with input data conversion | |
CN106951395A (zh) | 面向压缩卷积神经网络的并行卷积运算方法及装置 | |
CN108510064A (zh) | 包括多个核心处理模块的人工神经网络的处理系统及方法 | |
CN106355244A (zh) | 卷积神经网络的构建方法及系统 | |
US20220309325A1 (en) | Lossless tiling in convolution networks - resetting overlap factor to zero at section boundaries | |
CN107590535A (zh) | 可编程神经网络处理器 | |
CN109416756A (zh) | 卷积器及其所应用的人工智能处理装置 | |
CN109711533A (zh) | 基于fpga的卷积神经网络模块 | |
US11232360B1 (en) | Lossless tiling in convolution networks—weight gradient calculation | |
CN113222130A (zh) | 一种基于fpga的可重构卷积神经网络加速器 | |
CN110276447A (zh) | 一种计算装置及方法 | |
US20220309027A1 (en) | Lossless Tiling In Convolution Networks - Backward Pass | |
CN109416755A (zh) | 人工智能并行处理方法、装置、可读存储介质、及终端 | |
Yin et al. | Parana: A parallel neural architecture considering thermal problem of 3d stacked memory | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180605 Termination date: 20190907 |
|
CF01 | Termination of patent right due to non-payment of annual fee |