一种轻量化卷积神经网络的加速器及加速方法

xiaoxiao9天前  12


本发明属于芯片设计,具体涉及一种轻量化卷积神经网络的加速器及加速方法。


背景技术:

1、随着神经网络技术的不断发展,其在现实生活中的应用也越来越广泛,例如图片分类、语音识别、自动驾驶等方面。但是随着神经网络层数的加深,网络的参数量越来越大,这就导致其在移动端的部署面临许多难题。巨大的计算量导致神经网络在推理时延迟太高,而这在一些领域的应用中是不可接受的。

2、目前,神经网络的硬件加速受到广泛关注,也得到了巨大的发展,但是传统的加速方案太过简单,没有对不同类型的卷积操作分别制定加速方案。并且在进行卷积计算的时候,资源的利用率也不够高,造成了很大的资源浪费,导致计算效率低下。除此之外,常规的加速方案往往将每一层的计算结果传输到片外进行存储,这通常会造成很高的功耗。


技术实现思路

1、为了解决现有技术中存在的上述问题,本发明提供了一种轻量化卷积神经网络的加速器及加速方法。本发明要解决的技术问题通过以下技术方案实现:

2、第一方面,本发明提供了一种轻量化卷积神经网络的加速器,包括:

3、控制模块,用于根据自身接收到的信息控制加速器中各个模块对应进行工作;

4、计算参数存储模块,用于在所述控制模块的控制下,接收并存储片外存储输出的神经网络中当前卷积层的权重数据和偏置参数,以及神经网络中第一个卷积层的特征图数据;其中,所述计算参数存储模块第一次处理时,当前卷积层为第一个卷积层;

5、计算窗口截取模块,用于在所述控制模块的控制下,对当前卷积层的特征图数据的最后一行进行补零处理,得到处理后的特征图数据;对处理后的特征图数据采用预设方式进行重新排列和拼接截取,得到特征图窗口数据;将当前卷积层的权重数据进行重新排列后截取为权重窗口数据;

6、专用卷积计算模块,用于在所述控制模块的控制下,根据当前卷积层的类型,选择对应的卷积计算单元对当前卷积层的特征图窗口数据和权重窗口数据进行对应的卷积操作处理,得到当前卷积层对应的计算处理结果;其中,进行对应的卷积操作处理时均采用dsp拼接分离操作;

7、计算数据处理模块,用于在所述控制模块的控制下,将当前卷积层对应的计算处理结果与对应的偏置参数进行相应处理,得到当前卷积层对应的数据处理结果;

8、特征图数据存储模块,用于在所述控制模块的控制下,对当前卷积层对应的数据处理结果进行存储;将当前卷积层对应的数据处理结果作为其下一个卷积层的特征图数据,传输至所述计算窗口截取模块;

9、非卷积计算模块,用于在所述控制模块的控制下,对最后一个卷积层对应的数据处理结果进行池化处理和全连接处理,输出神经网络的最终结果;

10、计算结果传出模块,用于将所述最终结果传输至所述片外存储。

11、在本发明的一个实施例中,控制模块接收到的信息,包括:

12、数据总线输出的模块控制命令以及神经网络中当前卷积层的参数。

13、在本发明的一个实施例中,对处理后的特征图数据采用预设方式进行重新排列和拼接截取,得到特征图窗口数据,包括:

14、对当前卷积层对应的处理后的特征图数据采用反向跨行传输的方式进行重新排列,得到重新排列的特征图数据;

15、将所述重新排列的特征图数据中相邻两行的数据分别进行拼接截取,得到所述特征图窗口数据。

16、在本发明的一个实施例中,卷积计算单元,包括:

17、标准卷积计算单元、逐点卷积计算单元和深度卷积计算单元。

18、在本发明的一个实施例中,将当前卷积层对应的计算处理结果与对应的偏置参数进行相应处理,得到当前卷积层对应的数据处理结果,包括:

19、所述计算数据处理模块将当前卷积层对应的计算处理结果与对应的偏置参数相加,对相加得到的结果进行函数激活、量化处理和残差连接处理,输出当前卷积层对应的数据处理结果。

20、在本发明的一个实施例中,计算数据处理模块进行函数激活时,采用relu激活函数进行处理。

21、在本发明的一个实施例中,特征图数据存储模块对当前卷积层对应的数据处理结果进行存储,包括:

22、所述特征图数据存储模块根据当前卷积层的类型,选择所述特征图数据存储模块内部设置的与当前卷积层的类型所对应的区域,对当前卷积层对应的数据处理结果进行存储。

23、在本发明的一个实施例中,特征图数据存储模块对当前卷积层对应的数据处理结果进行存储的过程中,将所述数据处理结果中相邻两行的结果进行连续储存。

24、第二方面,本发明提供了一种轻量化卷积神经网络的加速方法,应用于轻量化卷积神经网络的加速器,所述加速器包括:控制模块、计算参数存储模块、计算窗口截取模块、专用卷积计算模块、计算数据处理模块、特征图数据存储模块、非卷积计算模块和计算结果传出模块;所述方法包括:

25、利用所述控制模块接收数据总线输出的模块控制命令,以及神经网络中当前卷积层的参数;

26、利用所述控制模块控制所述计算参数存储模块,接收并存储片外存储输出的神经网络中当前卷积层的权重数据和偏置参数,以及神经网络中第一个卷积层的特征图数据;其中,所述计算参数存储模块第一次处理时,当前卷积层为第一个卷积层;

27、利用所述控制模块控制所述计算窗口截取模块,对当前卷积层的特征图数据的最后一行进行补零处理,得到处理后的特征图数据;对处理后的特征图数据采用预设方式进行重新排列和拼接截取,得到特征图窗口数据;将当前卷积层的权重数据进行重新排列后截取为权重窗口数据;

28、利用所述控制模块控制所述专用卷积计算模块,根据当前卷积层的类型,选择对应的卷积计算单元对当前卷积层的特征图窗口数据和权重窗口数据进行对应的卷积操作处理,得到当前卷积层对应的计算处理结果;其中,进行对应的卷积操作处理时均采用dsp拼接分离操作;

29、利用所述控制模块控制所述计算数据处理模块,将当前卷积层对应的计算处理结果与对应的偏置参数进行相应处理,得到当前卷积层对应的数据处理结果;

30、利用所述控制模块控制所述特征图数据存储模块,对当前卷积层对应的数据处理结果进行存储;将当前卷积层对应的数据处理结果作为其下一个卷积层的特征图数据,传输至所述计算窗口截取模块;

31、利用所述控制模块控制所述非卷积计算模块,对最后一个卷积层对应的数据处理结果进行池化处理和全连接处理,输出神经网络的最终结果;

32、利用所述计算结果传出模块将所述神经网络的最终结果传输至所述片外存储。

33、本发明的有益效果:

34、本发明所提供的方案中,利用计算窗口截取模块对神经网络中每个卷积层对应的特征图数据的最后一行进行补零处理,对处理后的特征图数据采用预设方式进行重新排列和拼接截取,消除了计算中的无效窗口,减少了计算窗口截取模块的处理时间,在满足数据复用的同时很好地匹配了特征图窗口数据的获取,大大减少了功耗,在提高了资源利用率的同时,加快了计算速度;通过专用卷积计算模块对神经网络中不同类型的卷积层,选择对应的卷积计算单元进行卷积操作处理时均采用dsp拼接分离操作,使得一次处理能够得到两个对应的计算结果,极大地提高了计算效率。


技术特征:

1.一种轻量化卷积神经网络的加速器,其特征在于,包括:

2.根据权利要求1所述的一种轻量化卷积神经网络的加速器,其特征在于,所述控制模块接收到的信息,包括:

3.根据权利要求1所述的一种轻量化卷积神经网络的加速器,其特征在于,所述对处理后的特征图数据采用预设方式进行重新排列和拼接截取,得到特征图窗口数据,包括:

4.根据权利要求1所述的一种轻量化卷积神经网络的加速器,其特征在于,所述卷积计算单元,包括:

5.根据权利要求1所述的一种轻量化卷积神经网络的加速器,其特征在于,所述将当前卷积层对应的计算处理结果与对应的偏置参数进行相应处理,得到当前卷积层对应的数据处理结果,包括:

6.根据权利要求5所述的一种轻量化卷积神经网络的加速器,其特征在于,所述计算数据处理模块进行函数激活时,采用relu激活函数进行处理。

7.根据权利要求1所述的一种轻量化卷积神经网络的加速器,其特征在于,所述特征图数据存储模块对当前卷积层对应的数据处理结果进行存储,包括:

8.根据权利要求1所述的一种轻量化卷积神经网络的加速器,其特征在于,所述特征图数据存储模块对当前卷积层对应的数据处理结果进行存储的过程中,将所述数据处理结果中相邻两行的结果进行连续储存。

9.一种轻量化卷积神经网络的加速方法,其特征在于,应用于轻量化卷积神经网络的加速器,所述加速器包括:控制模块、计算参数存储模块、计算窗口截取模块、专用卷积计算模块、计算数据处理模块、特征图数据存储模块、非卷积计算模块和计算结果传出模块;所述方法包括:


技术总结
本发明公开了一种轻量化卷积神经网络的加速器及加速方法,本发明利用计算窗口截取模块对神经网络中每个卷积层对应的特征图数据的最后一行进行补零处理,对处理后的特征图数据采用预设方式进行重新排列和拼接截取,消除了计算中的无效窗口,减少了计算窗口截取模块的处理时间,在满足数据复用的同时很好地匹配了特征图窗口数据的获取,大大减少了功耗,在提高了资源利用率的同时,加快了计算速度;通过专用卷积计算模块对神经网络中不同类型的卷积层,选择对应的卷积计算单元进行卷积操作处理时均采用DSP拼接分离操作,使得一次处理能够得到两个对应的计算结果,极大地提高了计算效率。

技术研发人员:彭琪,石文斌,祁仲冬
受保护的技术使用者:西安电子科技大学
技术研发日:
技术公布日:2024/9/23

最新回复(0)