今天是2018年2月21日 星期三,欢迎光临本站 上海皮赛电子有限公司 网址: programsys.com.cn

行业动态

卷积神经网络的FPGA并行加速方案设计

文字:[大][中][小] 2015-11-19    浏览次数:3307    

卷积神经网络的FPGA并行加速方案设计





作者:方睿,刘加贺,薛志辉,杨广文 清华大学计算机科学与技术系


      摘要:根据卷积神经网络的特点,提出了深度流水的FPGA加速方案,设计了卷积层的通用卷积电路。该卷积电路可以在一个时钟周期内获得一个计算结果。理论上,该方案对于MNIST 数据集,在28×28 个时钟周期内可以获得一幅图片的运算结果。针对网络训练过程的前向传播阶段,在网络结构和数据集相同的情况下,对GPU,FPGA,CPU进行了在计算效率和能耗之间的比较。其中在计算效率方面,50 MHz 频率的FPGA就可以相较于GPU实现近5 倍的加速,相较于12 核的CPU实现8 倍的加速。而在功耗方面,该FPGA的实现方案只有GPU版本的26.7%。

 1 引言


      卷积神经网络(Convolutional Neutral Network)是人工神经网络的一种。CNN 是第一个真正成功训练多层网络结构的学习算法。它利用空间关系,采用权值共享网络结构,使之更类似于生物神经网络,降低了网络模型的复杂度并减少了权值的数量,以提高一般前向BP 算法的训练性能。该优点在网络的输入是多维图像时表现得更明显。另一方面,在CNN中,图像可以直接作为网络的底层输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征,避免了传统识别算法中复杂的特征提取和数据重建。这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。


       CNN 的这些优点使得它如今已成为当前语音分析和图像识别领域的研究热点。AT&T的支票读取系统[1]、微软的OCR[2-4]和手写识别系统、Google 街景中的人脸识别和车牌识别[5]以及法国电信视频会议系统中的人脸识别[6]都用到了CNN。


       现有的大部分CNN 实现主要是基于通用处理器CPU实现的。在CNN网络结构[7]中,层内计算是独立不相关的,而层间结构可以理解为是一个流水结构。CPU由于其自身特点无法充分地挖掘CNN 内部的并行性。FPGA(Field-Programmable Gate Array),即现场可编程门阵列,作为一种计算密集型加速部件,通过将算法映射到FPGA上的并行硬件进行加速。FPGA上所设计的各个硬件模块可以并行执行。各个硬件模块输入输出的相互连接以及FPGA 所提供的流水结构可以很好地和CNN 算法相匹配,充分利用算法网络结构内部的并行性,在提高运算速度的同时缩小了能耗。之前已经有学者在FPGA 上实现了不同结构的CNN 来做简单的实时图像识别或分类[8-12],但并没有完全发挥出FPGA的计算潜能,并具有较差的扩展性。



       本文首先简单地介绍卷积神经网络CNN,然后根据CNN 的特点设计了高效的FPGA 的硬件加速方案,并且和已有GPU 的实现进行了比较,并对进一步研究工作进行了展望。更多精彩内容,请点击“阅读原文”


返回上一步
打印此页
[向上]