【技术实现步骤摘要】
一种基于FPGA的分组卷积硬件加速器及其方法
本专利技术涉及一种基于FPGA的分组卷积硬件加速器及其方法,属于硬件加速神经网络的
技术介绍
近些年来,人工神经网络技术越来越成熟,并且广泛应用于人工智能设备中,例如图像识别技术,语音识别技术以及智能语音助手等等。在深度学习领域,有很多神经网络算法如CNN算法,LSTM算法和DNN算法等等,此类神经网络算法旨在使人工智能更加普惠大众,给用户带来更好的体验。但是基于硬件角度来看,神经网络算法都离不开卷积计算的过程,因此卷积神经网络成为硬件加速的关键之处。例如传统的CNN卷积网络算法,其结构包括输入层、卷积层、激励层、池化层、全连接层以及输出层。CNN的卷积操作采用传统的卷积模式,用单一的卷积核组进行卷积操作,这会带来大量的乘法计算,占用大量的硬件资源。如果想要减少硬件资源消耗,加快运算过程,就必须对卷积过程进行优化。常用的硬件加速优化方法有并行计算,即增加硬件运算过程中的并行度,提高运算速度,缺点是占用过多硬件资源。此外现有的硬件优化方法还有近似处理数据,即对复杂的激活函 ...
【技术保护点】
1.一种基于FPGA的分组卷积硬件加速器,其特征在于,包括:/n顶层控制器,用于对输入数据进行处理和分组存放,并将权重数据和激励数据传递给数据分发模块;/n数据分发模块,用于根据输入特征图尺寸进行数据选择和分组存放,并将权重数据和激励数据分发给卷积运算阵列;/n卷积运算阵列,用于分组完成稀疏卷积的乘加运算操作,输出部分和的结果;/n结果控制模块,用于对卷积运算阵列输出的部分和的结果进行累加缓存,并进行通道随机混合操作;/n线性激活函数单元,用于对结果控制模块输出的结果加偏置和激活函数操作;/n存储器DDR,用于存储原始输入图像数据、卷积运算阵列的中间结果和最终输出的特征图。/n
【技术特征摘要】
1.一种基于FPGA的分组卷积硬件加速器,其特征在于,包括:
顶层控制器,用于对输入数据进行处理和分组存放,并将权重数据和激励数据传递给数据分发模块;
数据分发模块,用于根据输入特征图尺寸进行数据选择和分组存放,并将权重数据和激励数据分发给卷积运算阵列;
卷积运算阵列,用于分组完成稀疏卷积的乘加运算操作,输出部分和的结果;
结果控制模块,用于对卷积运算阵列输出的部分和的结果进行累加缓存,并进行通道随机混合操作;
线性激活函数单元,用于对结果控制模块输出的结果加偏置和激活函数操作;
存储器DDR,用于存储原始输入图像数据、卷积运算阵列的中间结果和最终输出的特征图。
2.根据权利要求1所述的一种基于FPGA的分组卷积硬件加速器,其特征在于,所述数据分发模块包括取数地址计算单元、存储单元和FIFO缓存器;所述取数地址计算单元用于从所述存储器DDR中取出数据并进行格式转换,所述存储单元用于存储所述取数地址计算单元传输的数据,所述FIFO缓存器用于存储格式转换后的数据。
3.根据权利要求1所述的一种基于FPGA的分组卷积硬件加速器,其特征在于,所述卷积运算阵列由多个计算单元构成,每个计算单元包括流水控制器模块、权重非零检测模块、指针控制模块、激励解压模块、乘加运算单元模块和公用BRAM存储,权重非零检测模块将权重数据处理后传递给乘加运算单元模块完成卷积计算,多个计算单元复用公用BRAM存储器。
4.利用如权利要求1所述一种基于FPGA的分组卷积硬件加速器的运算方法,其特征在于,包括以下步骤:
1)顶层控制器对输入原始图片进行处理和分组存放,根据输入图片尺寸大小,将输入图片分为大小一致的两组子图片,并分组存放到存储器DDR上;
2)数据分发模块根据由顶层控制器输入的两组子图片,将权重数据和激励数据分别分成两组存放,然后将对应每组输...
【专利技术属性】
技术研发人员:岳涛,解文建,王宇宣,潘红兵,闫锋,
申请(专利权)人:南京大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。