一种用于神经网络推理加速的低功耗浮点乘累加运算方法

文档序号:32305363发布日期:2022-11-23 09:48阅读:来源:国知局

技术特征:
1.一种用于神经网络推理加速的低功耗浮点乘累加运算方法,其特征在于:通过对输入的浮点数进行预处理,在计算前对小数部分进行舍入并调整其指数位,对可能会被舍入的数据进行预先的舍入和规整,省去对不必要精度的计算;同时,为了累加电路能够快速执行,采用科学技术法表示的指数的小数部分放弃原有的原码表示方法,转而采用补码表示方法。2.根据权利要求1所述的方法,其中,优选的,所述方法的方案1具体为:对于a组数据的指数位序列(n0,n1,...n7),取其中的最大值n=max(n0,n1,...n7),为a组数据的统一指数位,近似后的a组数据用表示,中的每个数据为:其中α
i
是根据统一的指数位n,将a
i
向右移位得到的,针对每个a
i
,需要右移的位数为η
i
,而η
i
=n-n
i
;在较为极端的情况下,当η
i
≥8时,α
i
会因为移位变为0;对于每个a
i
,都有η
i
位的数据被直接舍弃;同理,对数组w也做相同处理,近似后的数组为中的每个数据为:其中m=max(m0,m1,

m7),ω
i
是根据m将w
i
向右移μ
i
位得到的,其中,μ
i
=m-m
i
;在转换后,α
i
和ω
i
均为8bit整型数据,可以送入mac阵列进行计算;设定点乘法部分得到的结果为设定点乘法部分得到的结果为对于该公式中的i=1,2...7的8项求和,由于是定点加法,故使用华莱士树加法器和一个定点加法器得到;最后,将小数部分的计算和指数部分的运算处理结合:设定点乘法输出序列为数组则数组中每个数为:由于得到的数组的指数统一,故可以直接使用定点加法器进行加和,设得到的结果为于是有:所述方法仅在一组乘加操作的最后才进行归一化运算,乘法部分和加法部分都可以节省很多资源;所述方法对数据进行了预处理,在两个需要乘积的数组进入乘法阵列前,就确定了各自组的指数。3.根据权利要求2所述的方法,其中,如果等两个数组进入乘法阵列后,即在同时得到两组数据的指数位信息后,再来共同确定计算结果的指数,这样就可以提高计算结果的精度,具体为:
将两数组对应乘积数的指数先相加,找出其中的最大值:n=max(n
i
)=max(n
i
+m
i
)设n
i
中的最大值为n,n就是最后乘积结果的指数;根据调整后的指数移位时,只对w组的小数w
i
进行移位,a组数保持不变;设w
i
需要向左移动的位数为μ
i
,则:μ
i
=n-n
i-m
i
μ
i
得到后,其余后续的操作和上述方案1相同;相比权利要求2,最终得到的近似结果为:

技术总结
本公开揭示了一种用于神经网络推理加速的低功耗浮点乘累加运算方法,通过对输入的浮点数进行预处理,在计算前对小数部分进行舍入并调整其指数位,对可能会被舍入的数据进行预先的舍入和规整,省去对不必要精度的计算。同时,为了累加电路能够快速执行,采用科学技术法表示的指数的小数部分放弃原有的原码表示方法,转而采用补码表示方法。本公开利用乘累加运算的特点,使用消耗资源较少的定点运算资源实现接近浮点运算的精度,从而解决了神经网络推理过程中计算精度与硬件实现复杂度的平衡问题。衡问题。衡问题。


技术研发人员:赵文哲 胡康 张景铭 付格林 夏天 任鹏举
受保护的技术使用者:西安交通大学
技术研发日:2022.08.02
技术公布日:2022/11/22
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1