一种基于FPGA的卷积神经网络加速器实现方案_李莉.pdf
《一种基于FPGA的卷积神经网络加速器实现方案_李莉.pdf》由会员分享,可在线阅读,更多相关《一种基于FPGA的卷积神经网络加速器实现方案_李莉.pdf(9页珍藏版)》请在咨信网上搜索。
1、第 30 卷 第 4 期北京电子科技学院学报2022 年 12 月Vol.30 No.4Journal of Beijing Electronic Science and Technology InstituteDec.2022一种基于 FPGA 的卷积神经网络加速器实现方案李 莉 陈心宇 高文斌北京电子科技学院,北京市 100070摘 要:近年来在人工智能领域,卷积神经网络(CNN)因为其优异的算法性能获得广泛应用。由于 CNN 的模型结构及卷积运算具有高度并行性,FPGA 加速 CNN 成为硬件加速 CNN 的重要解决方案。本文针对典型的卷积神经网络 LeNet-5,提出一种采用卷积-池化
2、-卷积-池化-卷积五级层间流水线架构的卷积核间全并行、核内部分并行,输出部分并行加速方案,实现卷积神经网络卷积池化运算的硬件加速。实验结果表明,在 129.8Mhz 时钟频率及 16bit 定点精度的情况下,系统对单张图片的处理速度较 CPU 提高近 337 倍,能效比为 13.68GOP/(sW)。关键词:卷积神经网络;FPGA;硬件加速;流水线架构中图分类号:TN791;TP183 文献标识码:A文章编号:1672-464X(2022)4-96-104 基金项目:北京高校“高精尖”学科建设项目(项目编号:20210069Z0402)、2020 教育部一流本科专业建设项目(项目编号:gjyl
3、zy2021001)、国家重点研发计划基金资助项目(项目编号:2017YFB0801803)作者简介:李 莉(1974-),女,山东青岛人,博士,教授,研究领域为网络与系统安全、嵌入式系统安全应用。陈心宇(1998-),男,硕士在读,电子通信与工程专业。E-mail:1849075071 高文斌(1989-),男,江西吉安人,博士,讲师,研究领域为通信信号处理。引言 近年来,深度学习领域中的神经网络技术因为其算法性能方面的优异表现被研究者们广泛关注,在神经网络中卷积神经网络 CNN 表现格外突出1。CNN 作为一种经典的利用标签进行学习的监督学习算法,一直都是计算机图像处理领域的热点2。由于
4、CNN 中存在大量的卷积运算,即乘法和加法运算,如何提升 CNN 的运算性能成了近年来研究者的重要关注点。针对 CNN 中卷积池化的运算计算量大、计算效率低的问题,存在三种解决办法:一是改进神经网络模型,减少神经网络对权值与参数数量的需求3;二是利用快速算法,文献4中采用Winograd 算法,通过减少乘法次数来实现加快卷积运算;三是采用计算效率更高的平台,提高运算的效率。CNN 是多层感知机的一个变种模型,这种模型刚开始被用来模拟大脑皮层的视觉行为,后在计算机视觉识别任务上表现出色被广泛运用于图像识别领域。与传统神经网络不同的是,CNN 卷积层中输出特征面的每个神经元与其输入进行的是局部连接
5、而非全连接,通过对应的连接权值与局部输入进行乘积求和再加上权值的偏置值,得到该神经元输出值,该过程等同于卷积过程。CNN 采用局部感受野、权值共享等思想,显著地减少了网络中自由参数的个第 30 卷一种基于 FPGA 的卷积神经网络加速器实现方案 数,使得使用更多层的深度神经网络来进行监督深度学习成为可能。CNN 由输入层、卷积层、池化层、全连接层及输出层构成,通常采用多个卷积层和池化层交替出现的结构,在卷积层、池化层、全连接层中,层内部的运算都是相互独立的,靠后的层内运算不会影响靠前的层内运算,换言之,以并行的方式实现 CNN 的网络结构是可行的。在文献5中,作者率先指出 CNN 并行特征可以
6、概括为层间并行性、输出间并行性、卷积核间并行性和卷积核内并行性四种类型。但在实际应用中由于各种客观原因,无法兼顾四种并行性,在文献6中作者将探寻 CNN 并行性的最大挑战总结于探究多种并行机制的最佳组合。针对 CNN 模型这种并行的层间结构,CPU的串行实现方式难以发挥 CNN 的并行结构特点,而 FPGA 具有计算资源丰富、逻辑电路设计灵活,并行设计容易实现的特点,广泛应用于硬件加速领域。文献7采用主机+FPGA 的计算架构,通过将卷积层的卷积核参数和特征输入权值一次性全部缓存,再进行卷积的并行运算来减少卷积层的运算时间,但是会占用更多的 FPGA片上资源。文献8考虑到 FPGA 片上资源的
7、有限性,选择对部分卷积核进行并行运算,使用了循环变换方法构建卷积层计算电路,通过循环分块方法将卷积层划分成多组不同的输入-输出分块,构成多输入多输出的模型结构,通过循环展开方法以并行方式计算输入-输出块内的卷积操作,从而以层间并行、层内并行的方式实现卷积层的计算。文献9提供了一种用来优化卷积运算中乘法和累加运算的稀疏卷积算法,降低了卷积运算中乘法运算复杂度。文献10采用移位操作代替卷积运算中的乘法操作来降低硬件资源消耗。在前人研究基础上,本文完成了以下工作。(1)选取 CNN 中典型的 LeNet-5 网络,分析各层结构,考虑 CNN 的四种并行类型:层间并行性、输出间并行性、卷积核间并行性和
8、卷积核内并行性,采用卷积核间全并行、核内部分并行、输出部分并行的方案实现神经网络卷积池化运算的加速。(2)提出一种新的行缓存乘法-加法树结构,一定程度上减少了内存资源消耗,提高了缓存-卷积操作的运算速率。(3)提出卷积-池化-卷积-池化-卷积五级流水线结构,设计控制模块高效地控制各层数据的读入输出,降低了 CNN 的运算所需时间。1 CNN 结构及其分析1.1 LeNet-5 卷积神经网络CNN 通过前向传播来进行识别和模式分类,通过反向传播来进行训练。CNN 模型由多个计算层组成,除输入层和输出层外,CNN 使用卷积层、池化层代替了传统神经网络中的隐含层。CNN 通过反向传播不断更新两层神经
9、元之间连接的权值,使层中的不同神经元能够提取输入的不同特征,实现传统全连接网络达不到的多层深度学习网络的目标。图 1 LeNet-5 神经网络结构如图1 所示,手写体字符识别7 层 CNN LeNet-5 由输入层、卷积层 C1、池化层 S2、卷积层 C3、池化层 S4、卷积层 C5、全连接层 F6 和全连接输出层组成。为了提高加速方案的普适性,本文只研究加速神经网络中具有高度并行性的部分:卷积层、池化层,也就是实现输入层、卷积层 C1、池化层 S2、卷积层 C3、池化层 S4、卷积层C5 的硬件加速。待识别的 3232 单通道二值图像和 6 个 55 大小的卷积核做卷积操作得到6 通道 28
10、28 的二维特征输出,经过 22 的最大池化得到 6 通道 1414 的特征输出,16 个 55 卷积核与前一层 6 通道特征输出中的部分79北京电子科技学院学报2022 年通道做卷积运算,得到 16 通道 1010 输出,经过下一层最大池化得到 16 通道 55 特征输出。池化层 S4 的特征输出和卷积层 C5 的 120 个卷积核都是 55 大小,卷积运算后得到 120 维 11 大小的向量输出。1.2 并行性分析与层间结构分析在上文描述 LeNet-5 结构时,可以注意到,前后卷积层与池化层之间相互独立,但是每层的输入和上层的输出有关。考虑到后一层不需要等待前一层所有数据处理完成再开始处
11、理数据,前一层继续处理数据的同时向后一层输出数据,达到多层同时处理数据的效果,因此层间的数据处理可以用流水线的方式实现。输出间的并行性可以和卷积核间的并行性一起考虑。在LeNet-5 卷积层 C1 中,2828 的特征输入需要和 6 通道的 55 卷积核做卷积运算。对于 6 通道的卷积操作,每个通道的卷积之间互不影响,而且每个通道的卷积运算过程完全相同,所以对于卷积核间的并行性是可行的。在一定程度上,多通道的输出,即输出间的并行性也是可以实现的。对于核内的并行性,即乘法和累加的并行性,在已有的文献中都有提及,这里不再详细说明。综上,本方案针对 LeNet-5 神经网络的前五层卷积层 C1、池化
12、层 S2、卷积层 C3、池化层 S4、卷积层 C5 设计五级流水线架构。采用卷积核间全并行、核内部分并行,输出部分并行的方式实现 CNN 加速,层与层之间采用流水线结构实现数据流的高效处理。2 实现方案 本文基于 FPGA 对 CNN 中典型的 LeNet-5网络进行实现:层与层间采用卷积-池化-卷积-池化-卷积五级流水线设计,来加速 CNN 层间的数据流传递与不同层之间的数据处理;层内卷积运算采用卷积核全并行、核内部分并行、输出部分并行的并行方式来加速 CNN 的卷积、池化运算。2.1 总体方案设计在现行研究下,利用软硬件协同来实现CNN 加速器的架构主要有两种,一种是利用FPGA 片上 C
13、PU 和硬件资源协同实现整体方案11,另一种是通过 PC 机和 FPGA 硬件资源实现整体方案。本文采用第二种 PC 机协同方案:PC 机负责传输图像输入、权值参数和偏置参数以及控制的功能;FPGA 负责 CNN 运算的整个过程,二者通过 UART 串口进行数据的传输交换。CNN 并行加速方案的总体设计结构框图如图 2 所示。图 2 方案的总体设计结构框图本方案硬件设计实现 CNN 的前向测试部分,CNN 的反向学习训练部分、输入的待识别图片二值化、权值浮点数定点化均由 PC 端实现,系统读取训练完成的权值数据、偏置数据和二值化后的图片数据。输入层、卷积层、池化层、全连接层、输出层间设计数据缓
14、存模块,将前一层的输出保存在寄存器中,并等待控制模块输出使能信号控制下一层对前一层数据的读取。卷积层由数据处理模块、卷积模块和激活函数 Relu 模块组成;池化层由最大池化模块组成。2.2 五级流水线设计针对 LeNet-5 神经网络的前五层 卷积层 C1、池化层 S2、卷积层 C3、池化层 S4、卷积层C5 设计五级流水线架构,如图 3 所示。2.3 分模块设计2.3.1 浮点数定点化CNN 训练完成得到模型的参数分别为各卷89第 30 卷一种基于 FPGA 的卷积神经网络加速器实现方案 图 3 五级流水线架构积层所需要的卷积核权值及其偏置的值,经过软件部分的训练,上述参数值大小介于-10
15、与 10之间。对于 FPGA 而言,不能直接处理浮点数,处理正负数小数需要将其定点化为二进制补码。Holt 等人12研究发现 16bit 定点数既能维持一定的分类精度,也能有效地降低能耗。在 16bit中,第一位为符号位,0 代表正,1 代表负,随后五位为整数部分,最后 10 位为小数部分。2.3.2 缓存模块和输入控制模块对于 CNN 的硬件实现来说,待识别的图像数据输入、每层的特征输出都是需要下一级处理的数据,选择合适的缓存方案来保存这些数据显得尤为关键。以待识别的图像输入数据为例,图像数据是 3232bit,考虑到后续卷积操作中卷积核大小为 55,相较于直接采用 5 组寄存器的行缓存结构
16、,采用 4 组寄存器串联和一条数据输入流组成 5 行行缓存结构不仅更能节省FPGA 片上资源,而且更适合需要快速读入缓存数据的情况。读取图像像素数据流是串行读入,在每个时钟周期,优先读取的数据从左到右,从上到下依次流入。该结构如图 4 所示。图 4 5 行行缓存结构在上述行缓存结构中,在每个时钟周期,卷积窗口从左至右,从上到下移动一个像素,实现每个窗口下的卷积运算。在卷积层与池化层之间的缓存器中,在每个时钟周期,22 池化窗口从左往右、从上至下依次平移一个像素,对两行缓存数据进行最大池化操作。控制模块主要是通过输出使能信号来控制池化层 S2、卷积层 C3、池化层 S4、卷积层 C5 的数据输入
17、输出。卷积层 C1 即时处理串行流入的数据,由卷积窗口在像素值上左右上下滑动,横向上,在卷积窗口滑动至第 28 个像素值后需要在第二行的第一个像素值继续向右滑动,滑动至第 5 行第 5 个像素值之后,卷积层 C1 输出第一个卷积窗口的卷积结果。图解如图 5 所示。图 5 控制模块 C1 图解池化层 S2 在接收到 C1 层第一个卷积结果的同时开始工作,因此当池化层 S2 的计数器,经过 432+5=133 个时钟后,S2 的使能信号 s2_en 置为高电平 1,接收数据。除此以外,池化层S2 还需对卷积层 C1 数据取舍,每 32 个数据中的最后 4 个数据是无效数据。因此池化层 S2 开始工
18、作后,每隔 28 个时钟需要将使能信号由高电平 1 置为低电平 0,低电平持续 4 个时钟周期后再置为高电平 1,往复循环,直到得到所有卷积层 C1 的特征输出,如图 6 所示。图 6 控制模块 S2 图解卷积层 C3 必须等到池化层 S2 输出第一个99北京电子科技学院学报2022 年最大池化结果后开始工作。S2 层输出一个最大池化结果需要四个 C1 层的卷积输出,卷积窗口在第二行像素上滑动到第二个卷积输出后,会得到第一个 S2 层池化结果。所以,320+20=340个时钟周期后,卷积层 C3 开始读入数据。在横向上,池化操作的池化窗口滑动步长为 2,卷积层 C3 的使能信号每隔一个时钟周期
19、高低电平交替变换,即高电平每 2 个时钟周期出现一次,重复 14 次。纵向上步长也为 2,偶数行的池化层 S2 特征输出全部舍去,在使能信号上就表现为重复 14 次高低电平后,使能信号置低电平持续 280 个时钟周期后还需要 40 个时钟周期,共计 320 个周期得到下一行的池化操作输出,并以此规律取遍所有数据。池化层 S2 输入使能信号S2_en 和卷积层 C3 输入使能信号 C3_en 的时序逻辑如图 7 所示。池化层 S4、卷积层 C5 使能信号的获得同上。图 7 使能信号时序逻辑2.3.3 卷积模块CNN 中卷积层是 CNN 中最核心的部分。卷积窗口在输入像素上依次滑动,卷积窗口的每一
20、个权值与窗口内像素点做内积。CNN 模型的通道个数称为深度,二维图像的特征输出由输入深度和卷积核的数量共同决定。对于 LeNet-5 来说,卷积层的卷积运算是建立在多通道的卷积运算基础上,不同通道的卷积运算互不干扰,而且不同通道的卷积运算动作完全一致,因此本文采用核间全并行的方式实现多通道卷积运算,以卷积层 C1 六通道为例,其实现结构如图 8 所示。卷积模块中的卷积操作涉及乘法和加法运算。以 55 卷积窗口和 55 像素卷积操作为图 8 核间全并行实现结构例,需要进行 25 次乘法操作。伪代码如下所示。for(x=0;x Row;x+)begin:rowsfor(y=0;y column;y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 基于 FPGA 卷积 神经网络 加速器 实现 方案 李莉
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。