一种基于FPGA的卷积加速填充方法技术

技术编号:32830849 阅读:27 留言:0更新日期:2022-03-26 20:43
一种基于FPGA的卷积加速填充方法,在卷积计算过程中,直接忽略填充过程,仅提取需要填充内容以外的特征图矩阵,以及对应的卷积核矩阵,有效降低了卷积缓存所需的存储资源大小,减少了非必要的卷积计算过程,提高了卷积计算单元的利用率。单元的利用率。单元的利用率。

【技术实现步骤摘要】
一种基于FPGA的卷积加速填充方法


[0001]本专利技术涉及计算机硬件加速
,具体涉及一种基于FPGA的卷积加速填充方法。

技术介绍

[0002]当前,随着人工智能技术的不断发展,为了实现更快的卷积计算速度,卷积神经网络的计算采用了越来越多的硬件加速单元,FPGA硬件加速是一种快捷方便的硬件加速方式。
[0003]在卷积计算过程中,每层的特征图卷积计算,都会根据输入特征图、卷积核和卷积步长,固定的降低特征图的大小,为实现特定大小的特征图输出,卷积计算开始前,部分算法会对输入特征图进行零填充处理,FPGA在处理这种填充方式时,会大量占用存储资源,增加FPGA的卷积计算总量。

技术实现思路

[0004]本专利技术为了克服以上技术的不足,提供了一种提高FPGA卷积计算单元利用率的基于FPGA的卷积加速填充方法。
[0005]本专利技术克服其技术问题所采用的技术方案是:一种基于FPGA的卷积加速填充方法,包括如下步骤:a)在FPGA中设置特征图存储单元、n
×
n卷积核权重存储单元、特征图提取单元、权重提取单元及卷积计算单元;b)特征图存储单元存储本轮卷积计算的输入特征图,n
×
n卷积核权重存储单元存储本轮卷积计算的卷积核数据,特征图提取单元跳去每次卷积计算的特征图矩阵,权重提取单元提取每次卷积计算的卷积核矩阵,卷积计算单元将提取的特征图矩阵和卷积核矩阵进行卷积计算;c)当卷积计算单元进行卷积计算包含零填充行列中的零数据时,特征图提取单元忽略零填充处理,直接提取去掉包含零填充行列后的(n

零填充行数)
ꢀ×
(n

零填充列数)大小的特征图矩阵;d)当卷积计算单元进行卷积计算不包含零填充行列中的零数据时,特征图提取单元提取n
×
n大小的特征图矩阵;e) 当卷积计算单元进行卷积计算包含零填充行列中的零数据时,n
×
n卷积核权重存储单元提取卷积核的(n

零填充行数)
ꢀ×
(n

零填充列数)卷积核矩阵,权重提取单元提取卷积核的n
×
n卷积核矩阵。
[0006]进一步的,步骤a)中n的取值为大于等于2的任意整数,特征图存储单元存储的特征图在填充后,行列数均大于等于n。
[0007]进一步的,步骤a)中FPGA中设置3
×
3的卷积核权重存储单元。
[0008]进一步的,步骤b)中输入特征图为6
×
6的特征图。
[0009]本专利技术的有益效果是:在卷积计算过程中,直接忽略填充过程,仅提取需要填充内容以外的特征图矩阵,以及对应的卷积核矩阵,有效降低了卷积缓存所需的存储资源大小,减少了非必要的卷积计算过程,提高了卷积计算单元的利用率。
附图说明
[0010]图1为本专利技术的FPGA的卷积加速填充的方法流程图;图2为本专利技术的输入特征图和卷积核权重提取位置图;图3为本专利技术的FPGA卷积计算模块结构图。
具体实施方式
[0011]下面结合附图1、附图2、附图3对本专利技术做进一步说明。
[0012]如附图1所示,一种基于FPGA的卷积加速填充方法,包括如下步骤:a)在FPGA中设置特征图存储单元、n
×
n卷积核权重存储单元、特征图提取单元、权重提取单元及卷积计算单元;b)特征图存储单元存储本轮卷积计算的输入特征图,n
×
n卷积核权重存储单元存储本轮卷积计算的卷积核数据,特征图提取单元跳去每次卷积计算的特征图矩阵,权重提取单元提取每次卷积计算的卷积核矩阵,卷积计算单元将提取的特征图矩阵和卷积核矩阵进行卷积计算;c)当卷积计算单元进行卷积计算包含零填充行列中的零数据时,特征图提取单元忽略零填充处理,直接提取去掉包含零填充行列后的(n

零填充行数)
ꢀ×
(n

零填充列数)大小的特征图矩阵;d)当卷积计算单元进行卷积计算不包含零填充行列中的零数据时,特征图提取单元提取n
×
n大小的特征图矩阵;e) 当卷积计算单元进行卷积计算包含零填充行列中的零数据时,n
×
n卷积核权重存储单元提取卷积核的(n

零填充行数)
ꢀ×
(n

零填充列数)卷积核矩阵,权重提取单元提取卷积核的n
×
n卷积核矩阵。
[0013]在卷积计算过程中,直接忽略填充过程,仅提取需要填充内容以外的特征图矩阵,以及对应的卷积核矩阵,有效降低了卷积缓存所需的存储资源大小,减少了非必要的卷积计算过程,提高了卷积计算单元的利用率。
[0014]实施例1:步骤a)中n的取值为大于等于2的任意整数,特征图存储单元存储的特征图在填充后,行列数均大于等于n。
[0015]实施例2:步骤a)中FPGA中设置3
×
3的卷积核权重存储单元。
[0016]实施例3:步骤)b中输入特征图为6
×
6的特征图。
[0017]如附图2所示,以6
×
6特征图和3
×
3卷积核矩阵权重,卷积步长为1为例,卷积输出的特征图大小为6
×
6。特征图存储单元在存储的特征图时,按照填充前特征图格式进行存储,n
×
n卷积核权重存储单元在存储权重数据时,按照顺序递增方式存储权重矩阵。
[0018]对于填充后的特征图卷积计算,每次卷积计算时,特征图为3
×
3矩阵,权重也是3
×
3矩阵;当卷积矩阵为A位置时,填充前特征图去掉零填充行列后,提取对应A位置2
×
2矩阵,卷积核权重矩阵提取A位置对应的卷积核2
×
2矩阵,卷积结果为卷积输出特征图C11点。当卷积矩阵为B位置时,填充前特征图去掉零填充行列后,提取对应B位置2
×
2矩阵,卷积核权重矩阵提取B位置对应的卷积核2
×
2矩阵,卷积结果为卷积输出特征图C61点。当卷积矩阵为C位置时,填充前特征图不包含零填充行列后,提取对应C位置3
×
3矩阵,卷积核权重矩阵提取C位置对应的卷积核3
×
3矩阵,卷积结果为卷积输出特征图C35点。以此类推,按顺序计算获取6
×
6的卷积输出特征图。
[0019]优选的,卷积核矩阵n为大于等于2的任意整数,特征图存储单元存储的特征图在填充后,行列数均大于等于n优选的,当零填充行列可位于特征图像素点中间位置,卷积计算时,填充前特征图提取去掉零填充行列后的矩阵,权重提取单元以填充后特征图提取矩阵中含有的非零填充像素位置为参考,提取对应的卷积核权重矩阵,然后进行卷积运算,获得对应位置的卷积输出特征图像素点。
[0020]本专利通过灵活提取特征图非零填充像素点和对应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的卷积加速填充方法,其特征在于,包括如下步骤:a)在FPGA中设置特征图存储单元、n
×
n卷积核权重存储单元、特征图提取单元、权重提取单元及卷积计算单元;b)特征图存储单元存储本轮卷积计算的输入特征图,n
×
n卷积核权重存储单元存储本轮卷积计算的卷积核数据,特征图提取单元跳去每次卷积计算的特征图矩阵,权重提取单元提取每次卷积计算的卷积核矩阵,卷积计算单元将提取的特征图矩阵和卷积核矩阵进行卷积计算;c)当卷积计算单元进行卷积计算包含零填充行列中的零数据时,特征图提取单元忽略零填充处理,直接提取去掉包含零填充行列后的(n

零填充行数)
ꢀ×
(n

零填充列数)大小的特征图矩阵;d)当卷积计算单元进行卷积计算不包含零填充行列中的零数据时,特征图提取单元提取n
...

【专利技术属性】
技术研发人员:王帅赵鑫鑫李朋
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1