一种适配于运行在FPGA上的神经网络加速器的自适应量化方法技术

技术编号:32161485 阅读:53 留言:0更新日期:2022-02-08 15:14
本发明专利技术公开了一种适配于运行在FPGA上的神经网络加速器的自适应量化方法,属于神经网络领域。本发明专利技术根据神经网络加速器计算过程的实际位宽自动预判神经网络加速器计算时的溢出程度,并针对溢出的程度自适应的调整量化参数,避免神经网络算法在FPGA上计算过程中数据溢出问题的发生,从而保证神经网络模型结果的正确性。本发明专利技术的自适应量化方法,将量化操作与神经网络加速器硬件的资源规划相结合,保证了在神经网络加速器部署算法时结果的正确性,在不损失模型精度和执行效率的前提下,能够有效压缩模型规模,使之在资源受限的情况下易于部署实施,节省存储空间和计算资源,具有重要的研究意义和应用价值。的研究意义和应用价值。的研究意义和应用价值。

【技术实现步骤摘要】
一种适配于运行在FPGA上的神经网络加速器的自适应量化方法


[0001]本专利技术属于神经网络领域,尤其是一种适配于运行在FPGA上的神经网络加速器的自适应量化方法。

技术介绍

[0002]神经网络加速器为实现高速低功耗运算,一般支持低数值精度,如8位或6 位定点数的运算,而神经网络模型原始的数值精度一般为32位浮点数。因此,在神经网络加速器部署神经网络算法时,需要通过量化操作将神经网络模型自动化压缩为8位或6位整型网络。
[0003]国外巨头公司英伟达基于其完备的GPU+CUDA生态主导神经网络加速器市场,将浮点型数据映射为整型数据,但其产品售价高昂,不具备自主可控性,GPU 计算效能及功耗不如FPGA及ASIC芯片。国内神经网络加速器主流方案为具有可扩展性的CPU+FPGA的国产化方案,神经网络模型运行在FPGA上完成计算,与CPU相对独立,CPU主要功能为初始化模型以及读取模型结果。针对该架构,为了提高计算的有效性,FPGA需要自主完成整个神经网络模型每一层数据量化后的计算过程。现有的量化方法是由量化软件预先分析神经网络模型各层输入、权重以及输出数据的分布和范围,计算出量化参数,生成神经网络加速器将浮点型数据映射成整型数据的指导文件,该过程并未考虑在FPGA上部署时整数型数据运算过程中可能产生的溢出问题,无法确保计算结果的正确性,尤其是对精度要求较高的神经网络模型算法,将导致结果的巨大偏差。

技术实现思路

[0004]本专利技术的目的在于克服现有的量化方法并未考虑在FPGA上部署时整数型数据运算过程中可能产生的溢出问题,无法确保计算结果的正确性的缺点,提供一种适配于运行在FPGA上的神经网络加速器的自适应量化方法。
[0005]为达到上述目的,本专利技术采用以下技术方案予以实现:
[0006]一种适配于运行在FPGA上的神经网络加速器的自适应量化方法,根据卷积层的输入和权重值、FPGA计算过程中的数据位宽,预判中间计算过程数据的范围和分布;
[0007]基于FPGA计算过程中的实际计算位宽和所述中间计算过程数据的范围和分布,计算溢出程度;
[0008]基于溢出程度,采用KL

divergence的方法,自适应地调整量化参数,直至调整量化参数后数据的分布与原始数据分布的差异在预设范围内。
[0009]进一步的,根据KL

divergence方法调整量化参数,采用相对熵的方式衡量调整量化参数后数据分布与原始数据分布的差异程度,寻找最优阈值作为量化参数。
[0010]进一步的,设置用于构造新样本的循环计数i,不断构造参考样本P和新样本Q,计算两者的相对熵,得到最小的相对熵,此时,对应的阈值即为最优阈值。
[0011]进一步的,具体步骤为:
[0012](1)不断地截断参考样本P,将截断区外的值全部求和;
[0013](2)将截断区外的值加到截断样本的最后一个值之上;
[0014](3)求得参考样本P的概率分布;
[0015](4)创建新样本Q,其元素的值为截断样本P;
[0016](5)将新样本Q的长度拓展到i,使得样本Q和参考样本P具有相同长度;
[0017](6)求得新样本Q的概率分布;
[0018](7)求参考样本P、新样本Q的KL散度值。
[0019]进一步的,当卷积层的输入和权重值均为8位整型数,若FPGA计算过程中的数据位宽为20位,则其能够表示的数据范围为

524288~524287,超出此范围的数据将被截断;
[0020]基于FPGA计算过程中的实际计算位宽,预判中间计算过程数据的范围和分布,针对溢出的程度,采用KL

divergence的方法,自适应地调整量化参数,直至调整量化参数后数据的分布与原始真实的数据分布最为相近。
[0021]与现有技术相比,本专利技术具有以下有益效果:
[0022]本专利技术的适配于运行在FPGA上的神经网络加速器的自适应量化方法,根据神经网络加速器计算过程的实际位宽自动预判神经网络加速器计算时的溢出程度,并针对溢出的程度自适应的调整量化参数,避免神经网络算法在FPGA上计算过程中数据溢出问题的发生,从而保证神经网络模型结果的正确性。本专利技术的自适应量化方法,将量化操作与神经网络加速器硬件的资源规划相结合,保证了在神经网络加速器部署算法时结果的正确性,在不损失模型精度和执行效率的前提下,能够有效压缩模型规模,使之在资源受限的情况下易于部署实施,节省存储空间和计算资源,具有重要的研究意义和应用价值。
附图说明
[0023]图1为本专利技术的FPGA计算神经网络卷积层的过程示意图。
具体实施方式
[0024]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0025]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0026]现有量化方法并未考虑在神经网络加速器部署时整数型数据运算过程中可能产生的溢出问题,本专利技术提出了一种适配于运行在FPGA上的神经网络加速器的自适应量化方
法,可根据神经网络加速器计算过程的实际位宽自动预判神经网络加速器计算时的溢出状况,并针对溢出的程度自适应的调整量化参数,避免神经网络算法在FPGA上计算过程中数据溢出问题的发生,从而保证神经网络模型结果的正确性。本专利技术的自适应量化方法,将量化操作与神经网络加速器硬件的资源规划相结合,保证了在神经网络加速器部署算法时结果的正确性,在不损失模型精度和执行效率的前提下,能够有效压缩模型规模,使之在资源受限的情况下易于部署实施,节省存储空间和计算资源,具有重要的研究意义和应用价值。
[0027]下面结合附图对本专利技术做进一步详细描述:
[0028]参见图1,图1为FPGA计算神经网络卷积层的过程示意图,卷积层的输入和权重值均为8位整型数,若FPGA计算过程中的数据位宽为20位,则其能够表示的数据范围为

524288~524287,超出此范围的数据将被截断。考虑FPGA计算过程中的实际计算位宽限制,预判中间计算过程数据的范围和分布,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种适配于运行在FPGA上的神经网络加速器的自适应量化方法,其特征在于,根据卷积层的输入和权重值、FPGA计算过程中的数据位宽,预判中间计算过程数据的范围和分布;基于FPGA计算过程中的实际计算位宽和所述中间计算过程数据的范围和分布,计算溢出程度;基于溢出程度,采用KL

divergence的方法,自适应地调整量化参数,直至调整量化参数后数据的分布与原始数据分布的差异在预设范围内。2.根据权利要求1所述的适配于运行在FPGA上的神经网络加速器的自适应量化方法,其特征在于,根据KL

divergence方法调整量化参数,采用相对熵的方式衡量调整量化参数后数据分布与原始数据分布的差异程度,寻找最优阈值作为量化参数。3.根据权利要求2所述的适配于运行在FPGA上的神经网络加速器的自适应量化方法,其特征在于,设置用于构造新样本的循环计数i,不断构造参考样本P和新样本Q,计算两者的相对熵,得到最小的相对熵,此时,对应的阈值即为最优阈值。4.根据权利要求3所述的...

【专利技术属性】
技术研发人员:魏璐马钟王月娇杨超杰
申请(专利权)人:西安微电子技术研究所
类型:发明
国别省市:

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

1