本发明专利技术公开了一种神经网络加速器的加速实现方法、装置、神经网络加速器、存储介质和计算机程序产品,神经网络加速器包括FPGA,FPGA上部署有神经网络模型,神经网络模型包括卷积层;该方法包括:对权重数据进行量化,以降低权重数据的位宽;根据卷积层的卷积窗口的数量、输入通道的数量、输出通道的数量、FPGA的DSP单元的数量,确定卷积层的并行方式;利用量化后的权重数据和确定后的卷积层的并行方式进行推理计算。该方案,通过对权重数据进行量化和确定卷积层的并行方式,减少FPGA片上资源的消耗,加快了推理速度,使片上资源得到充分利用,提高了并行性能。
【技术实现步骤摘要】
本专利技术属于神经网络加速器,具体涉及一种神经网络加速器及其加速实现方法、装置、存储介质、计算机程序产品。
技术介绍
1、fpga的全称为现场可编程门阵列,是一种可为各种神经网络定制的硬件加速器,其组成为可编程逻辑元件、可编程连线、片上存储器、时钟管理资源、输入/输出(i/o)资源、配置存储器等构成。神经网络则是一种受到人体生物学启发的而设计的计算模型,在人工智能领域有着广泛的应用,而随着深度学习发展,对神经网络在边缘部署,进行推理加速的需求也越来越大。
2、边缘部署硬件加速的方式普遍的有三种:图形推理加速器(gpu)、应用特定集成电路(asic)、现场可编程门阵列(fpga)。其中,gpu具有大规模的并行加速能力,但是存在功耗高、成本高的缺点,使其在嵌入式设备的部署存在着困难。asic是一种为特定任务而设计的,面对不同的任务可能需要不同的asic,而且其设计和制造都需要投入大量的资金和时间,这使得在小规模的应用就显得不太灵活。而fpga的优点包括:(1)可编程,可以根据不同的需求进行编程和充型配置;(2)并行性,fpga的结构运行并行处理,而神经网络中有大量的结构可以进行并行处理;(3)耗能低,fpga可以在耗能限制的嵌入式设备中进行硬件加速。因此fpga更适合应用到嵌入式设备中进行硬件加速。
3、但是由于fpga片上资源并不充裕,所以在硬件加速过程中计算速度不高,加速性能低,无法充分利用fpga的并行性。
4、上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。p>
技术实现思路
1、本专利技术的目的在于,提供一种神经网络加速器的加速实现方法,以解决相关方案中fpga片上的资源紧张,在推理加速过程中存在计算速度不高、加速性能低、无法充分利用fpga的并行性的问题,达到通过对权重数据进行量化和确定卷积层的并行方式,减少fpga片上资源的消耗,加快了推理速度,使片上资源得到充分利用,提高了并行性能的效果。
2、本专利技术提供一种神经网络加速器的加速实现方法,所述神经网络加速器包括fpga;所述fpga上部署有神经网络模型;所述神经网络模型包括卷积层;所述方法,包括:获取所述神经网络模型的权重数据、所述卷积层的卷积窗口的数量、所述卷积层的输入通道的数量、所述卷积层的输出通道的数量、所述fpga的dsp单元的数量;对所述权重数据进行量化,以降低所述权重数据的位宽;根据所述卷积窗口的数量、所述输入通道的数量、所述输出通道的数量、所述fpga的dsp单元的数量,确定所述卷积层的并行方式;利用量化后的所述权重数据和确定后的所述卷积层的并行方式进行推理计算。
3、在一些实施方式中,所述神经网络模型还包括全连接层;所述权重数据包括所述卷积层的权重数据和所述全连接层的位宽数据;对所述权重数据进行量化,以降低所述权重数据的位宽,包括:获取所述卷积层的权重数据的权重范围、所述全连接层的权重数据的权重范围;将所述卷积层的权重数据和所述全连接层的权重数据中,权重范围最小的一层的位宽量化为第一位宽,将其它层的位宽量化为第二位宽;第一位宽的精度<第二位宽的精度。
4、在一些实施方式中,还包括:使用预设的动态量化技术,将所述卷积层的权重数据和所述全连接层的权重数据中,权重范围最小的一层的位宽量化为第一位宽,将其它层的位宽量化为第二位宽。
5、在一些实施方式中,所述卷积层的并行方式包括:卷积核并行或卷积核串行、输入通道并行或输入通道串行、输出通道并行或输出通道串行;预设的所述卷积层的并行方式为:卷积核并行、输入通道并行、输出通道并行;根据所述卷积窗口的数量、所述输入通道的数量、所述输出通道的数量、所述fpga的dsp单元的数量,确定所述卷积层的并行方式,包括:将所述卷积窗口的数量、所述输入通道的数量、所述输出通道的数量的乘积,记为dsp单元消耗量;判断所述dsp单元消耗量与所述fpga的dsp单元的数量之间的大小关系;若所述dsp单元消耗量小于或等于所述fpga的dsp单元的数量,则确定所述卷积层的并行方式为预设的所述卷积层的并行方式;若所述dsp单元消耗量大于所述fpga的dsp单元的数量,则分别将所述卷积窗口的数量、所述输入通道的数量、所述输出通道的数量依次替换为1,并计算新的所述dsp单元消耗量,直至新的所述dsp单元消耗量小于或等于所述fpga的dsp单元的数量;待新的所述dsp单元消耗量小于或等于所述fpga的dsp单元的数量后,若所述卷积窗口的数量为1,则将预设的所述卷积层的并行方式中的卷积核并行调整为卷积核串行;若所述输入通道的数量为1,则将预设的所述卷积层的并行方式中的输入通道并行调整为输入通道串行;若所述输出通道的数量为1,则将预设的所述卷积层的并行方式中的输出通道并行调整为输出通道串行,之后确定所述卷积层的并行方式为预设的所述卷积层的并行方式。
6、在一些实施方式中,神经网络模型中的所述卷积层至少为两层;所述方法,还包括:调整所述卷积层的并行方式,使至少两层所述卷积层的所述dsp单元消耗量之和小于或等于所述fpga的dsp单元的数量。
7、与上述方法相匹配,本专利技术另一方面提供一种神经网络加速器的加速实现装置,所述神经网络加速器包括fpga;所述fpga上部署有神经网络模型;所述神经网络模型包括卷积层;所述装置,包括:获取单元,被配置为获取所述神经网络模型的权重数据、所述卷积层的卷积窗口的数量、所述卷积层的输入通道的数量、所述卷积层的输出通道的数量、所述fpga的dsp单元的数量;量化单元,被配置为对所述权重数据进行量化,以降低所述权重数据的位宽;卷积并行规划单元,被配置为根据所述卷积窗口的数量、所述输入通道的数量、所述输出通道的数量、所述fpga的dsp单元的数量,确定所述卷积层的并行方式;推理计算单元,被配置为计算单元利用量化后的所述权重数据和确定后的所述卷积层的并行方式进行推理计算。
8、在一些实施方式中,所述权重数据包括所述卷积层的权重数据和所述全连接层的位宽数据;所述量化单元,对所述权重数据进行量化,以降低所述权重数据的位宽,包括:获取所述卷积层的权重数据的权重范围、所述全连接层的权重数据的权重范围;将所述卷积层的权重数据和所述全连接层的权重数据中,权重范围最小的一层的位宽量化为第一位宽,将其它层的位宽量化为第二位宽;第一位宽的精度<第二位宽的精度。
9、在一些实施方式中,所述量化单元,还被配置为使用预设的动态量化技术,将所述卷积层的权重数据和所述全连接层的权重数据中,权重范围最小的一层的位宽量化为第一位宽,将其它层的位宽量化为第二位宽。
10、在一些实施方式中,所述卷积层的并行方式包括:卷积核并行或卷积核串行、输入通道并行或输入通道串行、输出通道并行或输出通道串行;预设的所述卷积层的并行方式为:卷积核并行、输入通道并行、输出通道并行;卷积并行规划单元,根据所述卷积窗口的数量、所述输入通道的数量、所述输出通道的数量、所述fpga的dsp单元的数量,确定所述卷积层的并行本文档来自技高网
...
【技术保护点】
1.一种神经网络加速器的加速实现方法,其特征在于,所述神经网络加速器包括FPGA;所述FPGA上部署有神经网络模型;所述神经网络模型包括卷积层;
2.根据权利要求1所述的神经网络加速器的加速实现方法,其特征在于,所述神经网络模型还包括全连接层;所述权重数据包括所述卷积层的权重数据和所述全连接层的位宽数据;
3.根据权利要求2所述的神经网络加速器的加速实现方法,其特征在于,还包括:使用预设的动态量化技术,将所述卷积层的权重数据和所述全连接层的权重数据中,权重范围最小的一层的位宽量化为第一位宽,将其它层的位宽量化为第二位宽。
4.根据权利要求1所述的神经网络加速器的加速实现方法,其特征在于,所述卷积层的并行方式包括:卷积核并行或卷积核串行、输入通道并行或输入通道串行、输出通道并行或输出通道串行;预设的所述卷积层的并行方式为:卷积核并行、输入通道并行、输出通道并行;
5.根据权利要求4所述的神经网络加速器的加速实现方法,其特征在于,神经网络模型中的所述卷积层至少为两层;所述方法,还包括:
6.一种神经网络加速器的加速实现装置,其特征在于,所述神经网络加速器包括FPGA;所述FPGA上部署有神经网络模型;所述神经网络模型包括卷积层;
7.根据权利要求6所述的神经网络加速器的加速实现装置,其特征在于,所述神经网络模型还包括全连接层;所述权重数据包括所述卷积层的权重数据和所述全连接层的位宽数据;
8.一种神经网络加速器,其特征在于,包括:如权利要求6或7所述的神经网络加速器的加速实现装置。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任一项所述的神经网络加速器的加速实现方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
...
【技术特征摘要】
1.一种神经网络加速器的加速实现方法,其特征在于,所述神经网络加速器包括fpga;所述fpga上部署有神经网络模型;所述神经网络模型包括卷积层;
2.根据权利要求1所述的神经网络加速器的加速实现方法,其特征在于,所述神经网络模型还包括全连接层;所述权重数据包括所述卷积层的权重数据和所述全连接层的位宽数据;
3.根据权利要求2所述的神经网络加速器的加速实现方法,其特征在于,还包括:使用预设的动态量化技术,将所述卷积层的权重数据和所述全连接层的权重数据中,权重范围最小的一层的位宽量化为第一位宽,将其它层的位宽量化为第二位宽。
4.根据权利要求1所述的神经网络加速器的加速实现方法,其特征在于,所述卷积层的并行方式包括:卷积核并行或卷积核串行、输入通道并行或输入通道串行、输出通道并行或输出通道串行;预设的所述卷积层的并行方式为:卷积核并行、输入通道并行、输出通道并行;
5.根据权利要求4所述的神经网...
【专利技术属性】
技术研发人员:周诗云,王剑,
申请(专利权)人:珠海格力电器股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。