CN107633297A - 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 - Google Patents

一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 Download PDF

Info

Publication number
CN107633297A
CN107633297A CN201710151826.1A CN201710151826A CN107633297A CN 107633297 A CN107633297 A CN 107633297A CN 201710151826 A CN201710151826 A CN 201710151826A CN 107633297 A CN107633297 A CN 107633297A
Authority
CN
China
Prior art keywords
neural networks
convolution
parallel
convolutional neural
convolutional
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.)
Granted
Application number
CN201710151826.1A
Other languages
English (en)
Other versions
CN107633297B (zh
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.)
Nanjing Fengxing Technology Co Ltd
Original Assignee
Nanjing University
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 filed Critical Nanjing University
Priority to CN201710151826.1A priority Critical patent/CN107633297B/zh
Publication of CN107633297A publication Critical patent/CN107633297A/zh
Application granted granted Critical
Publication of CN107633297B publication Critical patent/CN107633297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于并行快速FIR滤波器算法的卷积神经网络硬件加速器。本加速器主要由计算逻辑和存储单元两大部分构成,计算逻辑主要包含多用处理器,快速卷积单元以及由快速卷积单元构成的卷积计算阵列;存储单元包括像素存储器,权值缓存,附加存储器和片外动态存储器。本加速器可以在三个层面并行处理卷积神经网络的计算,分别是行(列)并行,层内并行和层间并行。由于本加速器可以适用在多种并行度的场合,所以可以非常高效地处理卷积神经网络的计算,并且能够达到可观的数据吞吐率。

Description

一种基于并行快速FIR滤波器算法的卷积神经网络硬件加 速器
技术领域
本发明设计计算机及电子信息技术领域,特别涉及一种基于并行快速FIR滤波器算法的卷积神经网络硬件加速器。
背景技术
卷积神经网络(CNN)是当今最流行的深度学习算法之一。由于它在图像和声音识别等方面卓越的表现,现已在学术和工业界被广泛地应用。将基于卷积神经网络算法的识别系统应用在本地处理器上有着巨大的前景,也是未来发展的方向。然而由于深度卷积神经网络有着很高的计算复杂度,一般专用的图形处理器才能做快速的训练和识别,但是并不能减少计算复杂度。卷积神经网络主要由卷积层、池化层和全连接层构成一个前馈架构,每一层接受上一层的输出当作其输入,并且提供自己的输出结果给下一层。卷积层中的卷积操作承担了卷积神经网络的大部分计算并且在实际应用中占据着主要的功耗。池化层分为最大池化和平均池化两种,一般现在使用的都是最大池化。
并行快速有限冲击响应(FIR)算法(简称并行FFA)是算法强度缩减在并行FIR滤波器中的应用。强度缩减利用共享子结构达到了缩减硬件复杂度的效果。在一个VLSI实现或者一个可编程DSP实现的迭代周期中,用这种变换可以降低硅面积和功耗。基于并行快速有限脉冲响应(FIR)算法,本文设计了针对深度卷积神经网络的硬件加速器架构。基于并行快速FIR算法的快速卷积单元能够在根本上减小卷积的计算复杂度并且同时输出多个神经元。
发明内容
本发明旨在解决深度卷积神经网络计算复杂度高,并行度低等技术问题,或至少提出一种有用的商业选择。为此本发明的目的在于提出一种基于并行快速FIR滤波器算法的卷积神经网络硬件加速器,用来完成卷积神经网络中的高复杂度卷积运算,并且在三种层面上提高计算并行度,提高数据吞吐率。
从该计算模块的整体上来看,其包含了:
1.P(设卷积核大小为k×k)个多用处理器,用于接收输入像素神经元,完成位宽转换、卷积、加法树、线性修正、最大池化等操作,并把结果存入相应的存储单元。
2.像素存储器,用于存储部分输入图片及特征图片。
3.权值缓存,用于缓存部分卷积核的权值。
4.附加存储器,用于存储输入图片和特征图片卷积计算的中间结果。
5.片外动态存储器,用于存储全部的卷积核权值和要处理的整幅输入图片。
在基于并行快速FIR滤波器算法的卷积神经网络硬件加速器的一些实施例中,多用处理器包含了:
1.位宽转换器,用于将存储数据的位宽和计算数据的位宽进行转换,为了减小需要保存数据的存储器资源,存储数据和计算数据被设置成了不同的位宽大小。
2.T个卷积计算阵列,每个卷积计算阵列用于完成一幅图像的二维卷积。
3.加法压缩器,用于将多个卷积计算阵列的结果相加,功能类似于加法树,但比加法树高效的多。
4.线性修正单元,用于将偏置和加法压缩器计算的结果进行相加,并完成线性修正操作。
5.最大池化单元,用于完成最大池化操作。
在基于并行快速FIR滤波器算法的卷积神经网络硬件加速器的一些实施例中,卷积计算阵列包含了:
k×(k-1)个快速卷积单元,每个快速卷积单元由并行快速FIR算法导出,用于计算一幅输入图片或者特征图片某一行(列)上的一维卷积,每个快速卷积单元同时处理并同时输出k个特征图片像素(神经元)
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明的加速器整体结构图。
图2是本发明中的多用处理器架构图。
图3是本发明中由快速卷积单元组成的卷积计算阵列图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出。其中自始至终使用相同的名称表示相同或有类似功能的模块。下面通过参考附图描述的实施示例来具体说明。
如图1所示为本发明的整体结构图。该基于并行快速FIR滤波器算法的卷积神经网络硬件加速器包含了:
1.P(设卷积核大小为k×k)个多用处理器,用于接收输入像素神经元,完成位宽转换、卷积、加法树、线性修正、最大池化等操作,并把结果存入相应的存储单元。
2.像素存储器,用于存储部分输入图片及特征图片。
3.权值缓存,用于缓存部分卷积核的权值。
4.附加存储器,用于存储输入图片和特征图片卷积计算的中间结果。
5.片外动态存储器,用于存储全部的卷积核权值和要处理的整幅输入图片。
每个多用处理器用于生成一幅输出特征图片,因此整体架构可同时生成P幅输出特征图片。
如图2所示是一个多用处理器的内部详细结构图,包含了:
1.位宽转换器,用于将存储数据的位宽和计算数据的位宽进行转换,为了减小需要保存数据的存储器资源,存储数据和计算数据被设置成了不同的位宽大小。
2.T个卷积计算阵列,每个卷积计算阵列用于完成一幅图像的二维卷积。
3.加法压缩器,用于将多个卷积计算阵列的结果相加,功能类似于加法树,但比加法树高效的多。
4.线性修正单元,用于将偏置和加法压缩器计算的结果进行相加,并完成线性修正操作。
5.最大池化单元,用于完成最大池化操作。
其中卷积计算阵列是多用处理器的核心计算单元,每个卷积计算阵列用于处理一幅输入特征图片,一个多用处理器包含了T个卷积计算阵列,因此可以同时处理T幅输入特征图片,整个处理器可以同时并行处理PT幅输入特征图片。由于输入特征图片是复用的,因此实际输入的特征图片只有T幅。
如图3所示,卷积计算阵列由k×(k-1)个快速卷积单元构成,每个快速卷积单元由并行快速FIR算法导出,用于计算一幅输入图片或者特征图片某一行(列)上的一维卷积,每个快速卷积单元同时处理并同时输出k个特征图片像素(神经元)。由于一个二维k×k卷积是由k个一维卷积相加构成,因此一个卷积计算阵列可以同时并行处理(k-1)个二维卷积。
下面详述本处理器是如何在三个层面进行并行处理的:
在进行卷积计算时,在每个计算周期中,T幅输入特征图片,每幅特征图片的(2k-2)行,每行的k个像素同时输入,即同时输入T×(2k-2)×k个像素。
在行列并行层面,每个卷积计算阵列可以同时处理2k-2行(列)像素数据同时输出k-1行(列)像素数据;在每一行(列)的方向上,每个快速卷积单元可以同时处理k个像素数据,同时输出k个像素数据。
在层内并行层面,首先将像素存储器里的像素数据通过位宽转换器把位宽转换成快速卷积单元需要的位宽,然后T个卷积计算阵列同时处理T幅输入图像的2k-2行(列)像素数据,再通过加法压缩器将多个卷积计算阵列的结果相加,如果相加的和是中间结果,那么将中间结果存入附加存储器,如果相加的和是最终结果,那么将最终结果加上偏置,同时用线性修正单元将其进行修正,再将结果存入附加存储器。在将像素数据存入附加存储器之前,需要将数据位宽转换成存储数据位宽。最后,附加存储器中存储的像素数据根据不同的场合决定是否用最大池化单元对其进行最大池化,然后将结果存回像素存储器。这样就构成了一个完整的多用处理器,每个多用处理器输出一幅输出特征图片,整体架构由P个多用处理器构成,那么可以同时处理T幅输入图片同时生成P幅输出图片。
在层间并行层面,可以将多种不同的计算同时并行处理,例如,在进行卷积计算的同时,可以同时从片外动态存储器加载原始图像数据,也可以同时进行最大池化操作;当得到全连接层的部分输入图片像素数据后,在进行卷积或者最大池化操作的同时可以进行全连接层的乘加操作。
综上所述,利用本发明实施例提出的基于并行快速FIR滤波器算法的卷积神经网络硬件加速器,可以有效地提高卷积神经网络的吞吐率,且能够有效地节省存储资源,适用于需要应用卷积神经网络算法进行实时处理的低功耗嵌入式系统。
尽管已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下载本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (3)

1.一种基于并行快速FIR滤波器算法的卷积神经网络硬件加速器,包括:
多用处理器,用于接收输入像素神经元,完成位宽转换、卷积、加法树、线性修正、最大池化等操作,并把结果存入相应的存储单元。
像素存储器,用于存储部分输入图片及特征图片。
权值缓存,用于缓存部分卷积核的权值。
附加存储器,用于存储输入图片和特征图片卷积计算的中间结果。
片外动态存储器,用于存储全部的卷积核权值和要处理的整幅输入图片。
2.如权利要求1所述的多用处理器,包括:
位宽转换器,用于将存储数据的位宽和计算数据的位宽进行转换,为了减小需要保存数据的存储器资源,存储数据和计算数据被设置成了不同的位宽大小。
卷积计算阵列,用于完成一幅图像的二维卷积。
加法压缩器,用于将多个卷积计算阵列的结果相加,功能类似于加法树,但比加法树高效的多。
线性修正单元,用于将偏置和加法压缩器计算的结果进行相加,并完成线性修正操作。
最大池化单元,用于完成最大池化操作。
3.如权利2所述的卷积计算阵列,包括:
多个快速卷积单元,每个快速卷积单元用于计算一幅输入图片或者特征图片某一行(列)上的一维卷积。
CN201710151826.1A 2017-03-10 2017-03-10 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器 Active CN107633297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710151826.1A CN107633297B (zh) 2017-03-10 2017-03-10 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710151826.1A CN107633297B (zh) 2017-03-10 2017-03-10 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器

Publications (2)

Publication Number Publication Date
CN107633297A true CN107633297A (zh) 2018-01-26
CN107633297B CN107633297B (zh) 2021-04-06

Family

ID=61099149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710151826.1A Active CN107633297B (zh) 2017-03-10 2017-03-10 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器

Country Status (1)

Country Link
CN (1) CN107633297B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108805274A (zh) * 2018-05-28 2018-11-13 重庆大学 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统
CN109948784A (zh) * 2019-01-03 2019-06-28 重庆邮电大学 一种基于快速滤波算法的卷积神经网络加速器电路
WO2019170049A1 (zh) * 2018-03-06 2019-09-12 上海熠知电子科技有限公司 一种卷积神经网络加速装置和方法
CN110321997A (zh) * 2018-03-31 2019-10-11 北京深鉴智能科技有限公司 高并行度计算平台、系统及计算实现方法
CN110705687A (zh) * 2019-09-05 2020-01-17 北京三快在线科技有限公司 卷积神经网络硬件计算装置及方法
CN111753974A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种神经网络加速器
CN111800636A (zh) * 2020-07-06 2020-10-20 南京大学 一种基于卷积自动编码算法的图像压缩硬件加速器装置
CN112070210A (zh) * 2020-08-20 2020-12-11 成都恒创新星科技有限公司 一种基于fpga的多并行策略卷积网络加速器
CN112970036A (zh) * 2018-11-06 2021-06-15 创惟科技股份有限公司 用于实施神经网络应用的卷积块阵列及其使用方法、和卷积块电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106355244A (zh) * 2016-08-30 2017-01-25 深圳市诺比邻科技有限公司 卷积神经网络的构建方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512723A (zh) * 2016-01-20 2016-04-20 南京艾溪信息科技有限公司 一种用于稀疏连接的人工神经网络计算装置和方法
CN106203621A (zh) * 2016-07-11 2016-12-07 姚颂 用于卷积神经网络计算的处理器
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106355244A (zh) * 2016-08-30 2017-01-25 深圳市诺比邻科技有限公司 卷积神经网络的构建方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JICHEN WANG 等: "Efficient Convolution Architectures for Convolutional Neural Network", 《2016 IEEE》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019170049A1 (zh) * 2018-03-06 2019-09-12 上海熠知电子科技有限公司 一种卷积神经网络加速装置和方法
CN110321997B (zh) * 2018-03-31 2021-10-19 赛灵思公司 高并行度计算平台、系统及计算实现方法
CN110321997A (zh) * 2018-03-31 2019-10-11 北京深鉴智能科技有限公司 高并行度计算平台、系统及计算实现方法
CN108564168B (zh) * 2018-04-03 2021-03-09 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108805274A (zh) * 2018-05-28 2018-11-13 重庆大学 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统
CN108805274B (zh) * 2018-05-28 2022-02-18 重庆大学 基于FPGA的Tiny-yolo卷积神经网络硬件加速方法及系统
CN112970036A (zh) * 2018-11-06 2021-06-15 创惟科技股份有限公司 用于实施神经网络应用的卷积块阵列及其使用方法、和卷积块电路
CN112970036B (zh) * 2018-11-06 2024-02-23 创惟科技股份有限公司 用于实施神经网络应用的卷积块阵列及其使用方法
CN109948784A (zh) * 2019-01-03 2019-06-28 重庆邮电大学 一种基于快速滤波算法的卷积神经网络加速器电路
CN110705687A (zh) * 2019-09-05 2020-01-17 北京三快在线科技有限公司 卷积神经网络硬件计算装置及方法
CN111753974A (zh) * 2020-06-22 2020-10-09 深圳鲲云信息科技有限公司 一种神经网络加速器
CN111800636A (zh) * 2020-07-06 2020-10-20 南京大学 一种基于卷积自动编码算法的图像压缩硬件加速器装置
CN112070210A (zh) * 2020-08-20 2020-12-11 成都恒创新星科技有限公司 一种基于fpga的多并行策略卷积网络加速器

Also Published As

Publication number Publication date
CN107633297B (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN107633297A (zh) 一种基于并行快速fir滤波器算法的卷积神经网络硬件加速器
CN111684473B (zh) 提高神经网络阵列的性能
US11645529B2 (en) Sparsifying neural network models
CN105892989B (zh) 一种神经网络加速器及其运算方法
CN105930902B (zh) 一种神经网络的处理方法、系统
US20180260709A1 (en) Calculating device and method for a sparsely connected artificial neural network
US20180157969A1 (en) Apparatus and Method for Achieving Accelerator of Sparse Convolutional Neural Network
US11126549B2 (en) Processing in-memory architectures for performing logical operations
CN108629406B (zh) 用于卷积神经网络的运算装置
US11797855B2 (en) System and method of accelerating execution of a neural network
EP3692474A1 (en) System and method for compact and efficient sparse neural networks
TW201913460A (zh) 芯片裝置及相關産品
CN110766128A (zh) 卷积计算单元、计算方法及神经网络计算平台
US20210065328A1 (en) System and methods for computing 2-d convolutions and cross-correlations
CN110796236B (zh) 多样本多通道卷积神经网络池化的向量化实现方法
Kala et al. UniWiG: Unified winograd-GEMM architecture for accelerating CNN on FPGAs
CN112668708B (zh) 一种提高数据利用率的卷积运算装置
US20220253668A1 (en) Data processing method and device, storage medium and electronic device
Shahshahani et al. Memory optimization techniques for fpga based cnn implementations
Niu et al. SPEC2: Spectral sparse CNN accelerator on FPGAs
Moon et al. FPGA-based sparsity-aware CNN accelerator for noise-resilient edge-level image recognition
CN113516236A (zh) 基于zynq平台的vgg16网络并行加速处理方法
CN109948787B (zh) 用于神经网络卷积层的运算装置、芯片及方法
CN108415881A (zh) 卷积神经网络的运算装置及方法
CN113627587A (zh) 一种多通道式卷积神经网络加速方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190429

Address after: Room 816, Block B, Software Building 9 Xinghuo Road, Jiangbei New District, Nanjing, Jiangsu Province

Applicant after: Nanjing Fengxing Technology Co., Ltd.

Address before: 210023 Xianlin Avenue 163 Nanjing University Electronic Building 229, Qixia District, Nanjing City, Jiangsu Province

Applicant before: Nanjing University

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant