首页  专利技术  电子电路装置的制造及其应用技术

一种可配置卷积累加处理装置及其方法与流程

2026-05-31 14:40:02 198次浏览
一种可配置卷积累加处理装置及其方法与流程

本发明属于深度学习加速器集成电路,特别涉及一种可配置卷积累加处理装置及其方法。


背景技术:

1、卷积神经网络(convolutional neural network,cnn)作为人工神经网络的一种,卷积神经网络是深度学习领域的重要分支,近年来被广泛应用于图像识别等领域。在卷积神经网络中存在大量的乘累加运算,随着多层次神经网络规模的不断增大以及复杂度的提高,涉及到数据运算量也在不断增加。

2、目前现有常规的加速器硬件设计方法无法充分利用硬件资源,造成硬件的并行计算能力降低和计算资源的浪费。


技术实现思路

1、本发明的目的在于克服现有技术的上述不足,本发明提供一种可配置卷积累加处理装置及其方法,以解决上述背景技术中的问题。

2、为解决上述技术问题,本发明提供了一种可配置卷积累加处理装置,包括:

3、卷积累加预处理模块,接收来自配置总线的卷积模式、输入数据精度、输出累加最终结果缩放因子、截断参数以及输出矩阵的宽度和高度信息;其中所述卷积模式包括直接卷积和winograd卷积,所述输入数据精度包括int8和int16,根据所述卷积模式和输入数据精度生成卷积累加模式信息;同时接收来自卷积mac阵列输出的卷积包信息;解析卷积包信息,生成卷积条带操作开始、卷积条带操作结束以及卷积条带通道结束标志;

4、卷积累加控制模块,根据卷积累加模式信息控制选择进行卷积累加运算的加法单元以及卷积累加运算的缓存单元;当输入数据精度为int16时,选择使用int16加法单元对卷积部分和数据进行累加计算;当输入数据精度为int8时,同时选择使用int16和int8加法单元对卷积部分和数据进行累加计算;

5、卷积累加加法阵列模块,由多路并行的加法单元组成,支持多路并行的累加运算;用于将卷积mac阵列输出的部分和数据进行打包并拆分,生成卷积累加加数,完成卷积累加计算;

6、卷积累加精度转换模块,接收卷积累加加法阵列模块的累加最终结果数据,根据配置信息对累加最终结果数据进行精度转换,并将精度转换后的卷积累加结果数据存入卷积累加输出缓存单元;

7、卷积累加缓存模块,包括分别由8个sram组成的卷积累加中间结果数据缓存单元和卷积累加输出缓存单元;所述卷积累加中间结果数据缓存单元对卷积累加加法阵列模块输出的卷积累加运算的中间结果进行存储。

8、优选的,当所述卷积累加模式为直接卷积且输入数据精度为int16时,设置为模式1;当所述卷积累加模式为直接卷积且输入数据精度为int8时,设置为模式2;当所述卷积累加模式为winograd卷积且输入数据精度为int16时,设置为模式3;当所述卷积累加模式为winograd卷积且输入数据精度为int8时,设置为模式4。

9、优选的,所述卷积累加控制模块,根据卷积累加模式信息控制选择进行卷积累加运算的加法单元,同时选择卷积累加中间结果数据缓存单元以及卷积累加输出缓存单元;根据所述卷积累加预处理模块生成的卷积条带操作开始标志以及卷积条带操作结束标志,对条带间的部分和数据执行累加运算;根据卷积通道结束标志,输出卷积累加运算的累加最终结果数据至所述卷积累加精度转换模块。

10、优选的,当所述卷积累加模式为模式1时,对卷积条带操作内的每个卷积mac阵列输出的部分和数据,启用一个int16加法单元做累加运算,并启用卷积累加中间结果数据缓存单元中的m_sram0,用于存储卷积累加运算得到的中间累加结果;启用卷积累加输出缓存单元中的d_sram0,用于存储经过卷积累加精度转换模块处理之后的卷积累加结果数据;

11、当所述卷积累加模式为模式2时,对卷积条带操作内的每个卷积mac阵列输出的部分和数据,同时启用一个int16和一个int8加法单元做累加运算,并分别启用卷积累加中间结果数据缓存单元中的m_sram0和m_sram4,用于存储卷积累加运算得到的中间累加结果,启用卷积累加输出缓存单元中的d_sram0和d_sram1,用于存储经过卷积累加精度转换模块处理之后的卷积累加结果数据。

12、优选的,当所述卷积累加模式为模式3时,对卷积条带操作内的每个卷积mac阵列输出的部分和数据,启用4个int16加法单元,并行做累加运算,并启用卷积累加中间数据结果缓存单元中的m_sram0~m_sram3,分别用于存储卷积累加运算得到的4个中间累加结果,启用卷积累加输出缓存单元中的d_sram0~d_sram3,存储经过卷积累加精度转换模块处理之后的4个卷积累加结果数据;

13、当所述卷积累加模式为模式4时,对卷积条带操作内的每个卷积mac阵列输出的部分和数据,同时启用4个int16和4个int8加法单元,并行做累加运算,并启用卷积累加中间数据结果缓存单元中的m_sram0~m_sram7,用于存储卷积累加运算得到的8个中间累加结果,启用卷积累加输出缓存单元中的d_sram0~d_sram7,用于存储经过卷积累加精度转换模块处理之后的卷积累加结果数据。

14、优选的,所述卷积累加加法阵列模块,包括对卷积mac阵列输出的部分和数据进行打包并拆分;即将所有卷积mac阵列输出的部分和数据打包成一个数据包,根据配置信息中的输入数据精度,拆分数据包,分别生成用于int16和int8加法单元做加法运算的操作数,完成条带间的卷积部分和数据的并行累加计算,对多路并行卷积累加运算的中间累加结果拼接,同一条带周期内串行输入的数据相互独立,不进行累加;当卷积通道结束标志为高时,将卷积累加运算的卷积累加结果数据发送至卷积累加精度转换模块;否则,将卷积累加结果数据发送至卷积累加中间结果数据缓存单元。

15、优选的,所述卷积累加精度转换模块,接收来自卷积累加加法阵列模块的累加最终结果数据,对数据进行饱和截断处理,防止处理的数据产生上溢出或下溢出,根据配置信息中的截断参数来确定截断长度,从而将实现精度转换后的卷积累加结果数据存入卷积累加输出缓存单元。

16、优选的,所述卷积累加缓存模块,根据卷积条带处理周期的最大长度设置sram的深度,根据并行多路卷积mac阵列的最大数目与累加结果的数据精度来设置sram的位宽,实现对多路并行累加结果以及多路串行条带数据的缓存。

17、本发明还提供了一种可配置卷积累加处理方法,包括如下步骤:

18、步骤s1:接收卷积累加配置信息,包括卷积模式、输入数据精度、输出累加最终结果缩放因子、截断参数以及输出矩阵的宽度和高度信息,以及卷积mac阵列输出的卷积操作状态信息;

19、步骤s2:生成卷积累加模式信息,以及卷积条带操作开始、卷积条带操作结束和卷积条带通道结束标志信息;

20、步骤s3:根据卷积累加模式信息,选择累加运算的加法单元进行卷积累加运算,以及存储卷积累加运算中间累加结果的卷积累加中间结果数据缓存单元m_sram,存储卷积累加结果数据的卷积累加输出缓存单元d_sram;

21、步骤s4:判断卷积条带通道结束标志是否有效,若有效,则将卷积累加结果数据发送至精度转换模块,若无效,则将卷积累加结果数据写入卷积累加中间结果数据缓存单元m_sram;

22、步骤s5:对数据进行饱和截断处理,根据配置信息中的截断参数来确定截断长度,依据数据符号位和数据有效位的值是否相同,判断卷积累加运算的结果是否溢出;

23、步骤s6:若溢出,则精度转换后的数据值为输出位宽能表示的最大正数或最小负数;若未溢出,则精度转换后的数据值为累加最终结果截断处理之后的数值,将数据写入卷积累加输出缓存单元d_sram。

24、本发明与现有技术相比,具有如下有益效果:

25、本发明提出一种配置卷积累加处理装置及其方法,卷积累加处理包含卷积累加预处理模块、卷积累加控制模块、卷积累加加法阵列模块、卷积累加精度转换模块和卷积累加缓存模块,其中卷积累加控制模块根据卷积累加模式,选择进行累加运算的加法单元以及存储卷积累加运算结果的缓存单元,卷积累加精度转换模块接收来自卷积累加加法阵列模块的累加结果数据,对数据进行饱和截断处理,将卷积累加运算的最终卷积结果存入卷积累加输出缓存单元。本发明支持不同的卷积模式,不同的数据精度,具有与硬件信息匹配可以灵活配置的累加运算,提高卷积神经网络加速计算的并行度,且可扩展性好。

文档序号 : 【 40163297 】

技术研发人员:何清,王少华,杨亮,庞博
技术所有人:中电科申泰信息科技有限公司

备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
何清王少华杨亮庞博中电科申泰信息科技有限公司
一种便于拼装的物流货架 一种可调节照射角度的汽车内饰灯的制作方法
相关内容