一种基于特征图稀疏性的卷积神经网络加速器制造技术

技术编号:29158122 阅读:22 留言:0更新日期:2021-07-06 22:58
本发明专利技术公开了一种基于特征图稀疏性的卷积神经网络加速器。所述卷积神经网络加速器包括输入特征图编码模块、权重编码模块、数据流控制模块、稀疏矩阵计算模块和总线;总线分别连接数据流控制模块、输入特征图编码模块、权重编码模块和稀疏矩阵计算模块;输入特征图编码模块根据特征图中的0元素,对特征图编码;权重编码模块根据输入特征图编码模块的编码信息,为稀疏矩阵计算模块提供对应的权重数据;数据流控制模块根据寄存器信息控制其余模块的工作模式;稀疏矩阵计算模块使用输入特征图编码模块和权重编码模块提供的数据进行卷积计算。本发明专利技术可以将加速器切换为利用权重中的稀疏性,可以灵活应用,对稀疏权重加以支持。

【技术实现步骤摘要】
一种基于特征图稀疏性的卷积神经网络加速器
本专利技术涉及卷积神经网络硬件加速器领域,属于集成电路硬件加速
,具体涉及一种基于特征图稀疏性的卷积神经网络加速器。
技术介绍
近年来人工智能技术迅速发展,深度神经网络在自然语言处理、计算机视觉等方面取得了重大的突破。随着移动设备的普及和物联网的出现,在移动设备或者物联网设备上部署神经网络的需求与日俱增。然而,算法中大量的数据移动与其计算复杂性对终端设备的功耗以及性能带来的巨大的挑战,阻碍了CNN算法在智能手机、智能汽车、智能家居领域的应用部署。目前已经出现许多对于CNN算法进行硬件加速的方法,设计在灵活性与乘法器利用效率等方面都表现很好,但是这些设计都无法突破卷积层的算力需求限制,或者是通过引导模型在训练时将权重稀疏化,然后利用权重的稀疏性进行计算,然后对模型进行稀疏化引导需要额外的训练时间,不利于模型的直接部署。论文《AnEfficientHardwareAcceleratorforStructuredSparseConvolutionalNeuralNetworksonFPGAs》中,通过大规模查找表实现了对权重的0元素的利用,但是论文所采用的方法一方面需要消耗大量查找表资源,另一方面需要在神经网络模型训练阶段额外引导模型权重的产生0元素,不利于模型直接部署。同时,目前主流神经网络模型中,大量采用Relu激活函数(f(x)=MAX(0,x)),使得特征图中出现大量0元素,当前方法并没有对这些0元素加以利用。
技术实现思路
本专利技术的目的在于克服现有卷积加速器专利技术在特征图或者权重中元素稀疏性利用的不足,提出了一种基于特征图稀疏性的卷积神经网络加速器,利用特征图或权重中元素的稀疏性,从原理上减少卷积的计算量,加速神经网络模型的计算。本专利技术的目的至少通过如下技术方案之一实现。一种基于特征图稀疏性的卷积神经网络加速器,包括输入特征图编码模块、权重编码模块、数据流控制模块、稀疏矩阵计算模块和总线;总线分别连接数据流控制模块、输入特征图编码模块、权重编码模块和稀疏矩阵计算模块;输入特征图编码模块根据特征图中对计算没有贡献的0元素,对特征图编码;权重编码模块根据输入特征图编码模块的编码信息,为稀疏矩阵计算模块提供对应的权重数据;数据流控制模块根据寄存器信息控制其余模块的工作模式;稀疏矩阵计算模块使用输入特征图编码模块和权重编码模块提供的数据进行卷积计算,实现卷积神经网络加速器的功能。进一步地,数据流控制模块中的寄存器由外接的CPU通过总线进行配置,数据流控制模块根据寄存器配置信息中的卷积层计算参数,访问总线,读取输入特征图数据和权重数据,从而实现卷积计算,将输入特征图数据和权重数据对应灌入输入特征图编码模块和权重编码模块,并且将稀疏矩阵计算模块运算得到的输出特征图数据通过总线写回外部缓存;同时,数据流控制模块根据输入特征图编码模块和稀疏矩阵计算模块的信息进行反压控制,从而避免由于特征图数据中稀疏度变化导致的各个模块计算速度不一致,协调加速器工作;采用矩阵运算实现卷积,当稀疏矩阵计算模块经过多次矩阵运算结果并累加后,由数据流控制模块发出指令,控制稀疏矩阵计算模块将输出特征图数据依次输出。进一步地,所述数据流控制模块根据输入特征图编码模块和稀疏矩阵计算模块的信息进行反压控制,具体如下:当输入特征图编码模块已经完成下一次矩阵计算所需数据的编码时,若稀疏矩阵计算模块没有完成本次数据计算,则使输入特征图编码模块暂停工作,直至稀疏矩阵计算模块完成本次计算;而当稀疏矩阵计算模块完成本次计算时,若输入特征图编码模块未准备好下一次稀疏矩阵计算模块所需数据的编码时,则使稀疏矩阵计算模块暂停工作,直至输入特征图比那吗模块完成下一次运算所需数据的编码工作。进一步地,所述数据流控制模块,将卷积计算中的以滑窗为原子计算的计算模式,转换为以矩阵相乘计算为原子计算的计算模式;将卷积计算在输出特征图宽度、输出特征图高度、输出通道数、卷积核宽度、卷积核高度和输入通道数六个维度上的循环,通过循环之间的合并、拆分和调换次序三种方法,转换以矩阵与矩阵乘法为原子计算的计算模式;所述计算模式在特征图宽度、输出特征图高度、输出通道数、卷积核宽度、卷积核高度和输入通道数六个维度中,在输入通道数和输出通道数的并行度为P,P表示每个单元存储的数据数量,稀疏矩阵计算模块中计算的矩阵尺寸为P*P矩阵。进一步地,原子计算进行的矩阵运算与传统计算流程不同,将传统计算流程的矩阵相乘Cnn=Ann*Bnn计算时第一矩阵A的行向量与第二矩阵B的列向量对应相乘后累加的原子操作转换为,将第一矩阵A的列向量与第二矩阵B中对应元素相乘得到一个中间矩阵的原子操作,重复这一操作将所有得到的中间矩阵进行累加,得到结果第三矩阵C。进一步地,根据以矩阵与矩阵乘法为原子计算的计算模式,输入特征图数据存储格式如下:输入特征图为一个三维矩阵,其尺寸为[Wi,Hi,Ni],Wi、Hi和Ni分别表示输入特征图宽、输入特征图高和输入通道数;在内存中的以每个单元尺寸为[1,1,P]的方式进行映射,映射顺序为先进行宽方向,再进行高方向,最后通道方向;输出特征图存储格式与输入特征图存储格式一致;权重数据存储格式如下:权重数据为一个四维矩阵,其尺寸为[Wk,Hk,Ni,No],Wk、Hk和No分别表示卷积核宽、卷积核高、和输出通道数;在内存中以[1,1,P,1]为单元进行映射,以输出通道方向>卷积核宽度方向>卷积核高度方向>输入通道方向的优先级实现映射。进一步地,输入特征图编码模块根据输入特征图的稀疏性对特征图进行编码;输入特征图编码模块具有两个特征图数据读取接口,同时读取特征图数据,每周期读取特征图矩阵中的一个行向量,并且对行向量根据其中的0元素进行一次整体移位,并且记录移位以后的元素的原列坐标,作为元素的索引;经过P次移位以后,将所有非零元素紧凑排布,并且每个元素的索引将对应记录下来;完成P次移位操作后,将压缩后的特征图矩阵送入稀疏矩阵计算模块,将原始索引即对应元素的原始坐标输入权重编码模块。进一步地,数据流控制模块通过寄存器配置信息,访问总线,将获得的权重数据输入权重编码模块,权重编码模块将权重数据转置存入内部缓存中;然后权重编码模块根据输入特征图编码模块提供的原始索引,将对应的权重数据送入稀疏矩阵计算模块。进一步地,稀疏矩阵计算模块每个周期将输入特征图编码模块提供的压缩后的特征图矩阵的列向量和权重编码模块提供的转置后的权重矩阵进行相乘,得到中间矩阵并累加,进而得到结果矩阵,根据数据流控制模块的输出指令,在所有中间矩阵累加完成后,逐周期输出结果矩阵的行向量。进一步地,将输入特征图编码模块和权重编码模块的输入接口交换,即可完成两个待乘矩阵的交换,从而将加速器从利用特征图稀疏性,转换为利用权重参数的稀疏性,具体如下:两个矩阵相乘,即Cnn=Ann*Bnn,则CnnT=BnnT*AnnT,只需本文档来自技高网...

【技术保护点】
1.一种基于特征图稀疏性的卷积神经网络加速器,其特征在于,包括输入特征图编码模块、权重编码模块、数据流控制模块、稀疏矩阵计算模块和总线;/n总线分别连接数据流控制模块、输入特征图编码模块、权重编码模块和稀疏矩阵计算模块;输入特征图编码模块根据特征图中的0元素,对特征图编码;权重编码模块根据输入特征图编码模块的编码信息,为稀疏矩阵计算模块提供对应的权重数据;数据流控制模块根据寄存器信息控制其余模块的工作模式;稀疏矩阵计算模块使用输入特征图编码模块和权重编码模块提供的数据进行卷积计算,实现卷积神经网络加速器的功能。/n

【技术特征摘要】
1.一种基于特征图稀疏性的卷积神经网络加速器,其特征在于,包括输入特征图编码模块、权重编码模块、数据流控制模块、稀疏矩阵计算模块和总线;
总线分别连接数据流控制模块、输入特征图编码模块、权重编码模块和稀疏矩阵计算模块;输入特征图编码模块根据特征图中的0元素,对特征图编码;权重编码模块根据输入特征图编码模块的编码信息,为稀疏矩阵计算模块提供对应的权重数据;数据流控制模块根据寄存器信息控制其余模块的工作模式;稀疏矩阵计算模块使用输入特征图编码模块和权重编码模块提供的数据进行卷积计算,实现卷积神经网络加速器的功能。


2.根据权利要求1所述的一种基于特征图稀疏性的卷积神经网络加速器,其特征在于,数据流控制模块中的寄存器由外接的CPU通过总线进行配置,数据流控制模块根据寄存器配置信息中的卷积层计算参数,访问总线,读取输入特征图数据和权重数据,从而实现卷积计算,将输入特征图数据和权重数据对应灌入输入特征图编码模块和权重编码模块,并且将稀疏矩阵计算模块运算得到的输出特征图数据通过总线写回外部缓存;
同时,数据流控制模块根据输入特征图编码模块和稀疏矩阵计算模块的信息进行反压控制;
采用矩阵运算实现卷积,当稀疏矩阵计算模块经过多次矩阵运算结果并累加后,由数据流控制模块发出指令,控制稀疏矩阵计算模块将输出特征图数据依次输出。


3.根据权利要求2所述的一种基于特征图稀疏性的卷积神经网络加速器,其特征在于,所述数据流控制模块根据输入特征图编码模块和稀疏矩阵计算模块的信息进行反压控制,具体如下:
当输入特征图编码模块已经完成下一次矩阵计算所需数据的编码时,若稀疏矩阵计算模块没有完成本次数据计算,则使输入特征图编码模块暂停工作,直至稀疏矩阵计算模块完成本次计算;
而当稀疏矩阵计算模块完成本次计算时,若输入特征图编码模块未准备好下一次稀疏矩阵计算模块所需数据的编码时,则使稀疏矩阵计算模块暂停工作,直至输入特征图比那吗模块完成下一次运算所需数据的编码工作。


4.根据权利要求2所述的一种基于特征图稀疏性的卷积神经网络加速器,其特征在于,所述数据流控制模块,将卷积计算中的以滑窗为原子计算的计算模式,转换为以矩阵相乘计算为原子计算的计算模式;将卷积计算在输出特征图宽度、输出特征图高度、输出通道数、卷积核宽度、卷积核高度和输入通道数六个维度上的循环,通过循环之间的合并、拆分和调换次序三种方法,转换以矩阵与矩阵乘法为原子计算的计算模式;
所述计算模式在特征图宽度、输出特征图高度、输出通道数、卷积核宽度、卷积核高度和输入通道数六个维度中,在输入通道数和输出通道数的并行度为P,P表示每个单元存储的数据数量,稀疏矩阵计算模块中计算的矩阵尺寸为P*P矩阵。


5.根据权利要求4所述的一种基于特征图稀疏性的卷积神经网络加速器,其特征在于,原子计算进行的矩阵运算与传统计算流程不同,将传统计算流程的矩阵相乘Cnn=Ann*Bnn计算时第一矩阵A的行向量与第二矩阵B的列向量对应相乘后累加的原子操作转换为,将第一矩阵A的...

【专利技术属性】
技术研发人员:秦华标李嘉鑫
申请(专利权)人:华南理工大学
类型:发明
国别省市:广东;44

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

1