基于支持加法写入存储介质的卷积实现方法、装置及设备与流程
本发明涉及数据处理,尤其涉及基于支持加法写入存储介质的卷积实现方法、装置及设备。
背景技术:
1、二维卷积被广泛应用于图像处理、信号处理以及神经网络推理等场景。常规二维卷积通常通过卷积核矩阵在输入矩阵上沿横向和纵向滑动实现。在卷积核矩阵移动至一个位置后,将卷积核矩阵中的各元素与输入矩阵对应位置的元素分别相乘,并对乘积进行求和,从而得到输出矩阵中的一个元素。
2、现有技术中为了提高卷积运算效率,常采用im2col(图像数据列展开)方法,将输入矩阵中的各个滑动窗口展开为列向量,将多个列向量组成展开矩阵,并将展开后的卷积核与展开矩阵相乘。
3、然而,该方法易导致输入矩阵中的同一元素可能被复制到展开矩阵中的多个位置,当输入矩阵和卷积核矩阵的尺寸较大、卷积步长较小时,展开矩阵可能占用较大的存储空间,并产生较大的数据搬移开销,且在单输出通道场景下,展开后的卷积核与展开矩阵相乘实际上是向量-矩阵乘法,而现有的计算设备中,矩阵-矩阵乘法的运算部件运算效率显著高于向量-矩阵乘法的运算部件,im2col方法无法充分利用高效计算部件。
技术实现思路
1、本发明提供了一种基于支持加法写入存储介质的卷积实现方法、装置及设备,在纵向卷积步长为1的情况下,降低将卷积转换为矩阵乘运算时所需的中间展开数据量,核心运算均为矩阵乘运算,避免向量矩阵乘带来的算力利用率损失。
2、根据本发明的一方面,提供了一种基于支持加法写入存储介质的卷积实现方法,应用于包含矩阵乘运算单元以及支持加法写入存储介质的卷积计算系统,包括:
3、根据卷积核矩阵的尺寸,对输入矩阵进行填充处理,获取填充矩阵,并在所述支持加法写入存储介质中初始化累加存储区域;
4、当纵向卷积步长为1时,将所述填充矩阵中的各行分别确定为待处理行;
5、针对各待处理行,根据横向卷积步长以及卷积核矩阵的列数,从所述待处理行中提取多个连续数据段,并将多个连续数据段分别作为列向量组合成行展开矩阵;
6、将所述卷积核矩阵以及所述行展开矩阵输入至所述矩阵乘运算单元,获取所述矩阵乘运算单元输出的乘积矩阵,并对所述乘积矩阵进行行序上下翻转,得到行反转矩阵;
7、通过所述支持加法写入存储介质,将所述行反转矩阵的各行对应累加至所述累加存储区域中的目标数据行;
8、在全部待处理行均处理完成后,在所述累加存储区域中获取输出矩阵。
9、根据本发明的另一方面,提供了一种基于支持加法写入存储介质的卷积实现装置,应用于包含矩阵乘运算单元以及支持加法写入存储介质的卷积计算系统,包括:
10、初步处理模块,用于根据卷积核矩阵的尺寸,对输入矩阵进行填充处理,获取填充矩阵,并在所述支持加法写入存储介质中初始化累加存储区域;
11、待处理行确定模块,用于当纵向卷积步长为1时,将所述填充矩阵中的各行分别确定为待处理行;
12、行展开矩阵生成模块,用于针对各待处理行,根据横向卷积步长以及卷积核矩阵的列数,从所述待处理行中提取多个连续数据段,并将多个连续数据段分别作为列向量组合成行展开矩阵;
13、反转矩阵生成模块,用于将所述卷积核矩阵以及所述行展开矩阵输入至所述矩阵乘运算单元,获取所述矩阵乘运算单元输出的乘积矩阵,并对所述乘积矩阵进行行序上下翻转,得到行反转矩阵;
14、反转矩阵写入模块,用于通过所述支持加法写入存储介质,将所述行反转矩阵的各行对应累加至所述累加存储区域中的目标数据行;
15、输出矩阵获取模块,用于在全部待处理行均处理完成后,在所述累加存储区域中获取输出矩阵。
16、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
17、至少一个处理器;以及
18、与所述至少一个处理器通信连接的存储器;其中,
19、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的基于支持加法写入存储介质的卷积实现方法。
20、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于支持加法写入存储介质的卷积实现方法。
21、本发明实施例的技术方案,通过根据卷积核矩阵的尺寸,对输入矩阵进行填充处理,获取填充矩阵,并在支持加法写入存储介质中初始化累加存储区域;当纵向卷积步长为1时,将填充矩阵中的各行分别确定为待处理行;针对各待处理行,根据横向卷积步长以及卷积核矩阵的列数,从待处理行中提取多个连续数据段,并将多个连续数据段分别作为列向量组合成行展开矩阵;将卷积核矩阵以及行展开矩阵输入至矩阵乘运算单元,获取矩阵乘运算单元输出的乘积矩阵,并对乘积矩阵进行行序上下翻转,得到行反转矩阵;通过支持加法写入存储介质,将行反转矩阵的各行对应累加至累加存储区域中的目标数据行;在全部待处理行均处理完成后,在累加存储区域中获取输出矩阵的方式,能够在卷积核尺寸较大的场景下,解决了现有技术需要耗费大量空间存储过程数据的问题,有效减少中间内存占用,且核心运算均为矩阵乘法,避免向量矩阵乘带来的算力利用率损失,累加操作直接在存储介质内部原位完成,大幅度减少数据搬运次数,且仅需调整滑动窗口的移动间隔,即可适配任意正整数的横向卷积步长,能够以低存储占用、高效率的方式实现卷积运算。
22、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
1.一种基于支持加法写入存储介质的卷积实现方法,应用于包含矩阵乘运算单元以及支持加法写入存储介质的卷积计算系统,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,根据卷积核矩阵的尺寸,对输入矩阵进行填充处理,获取填充矩阵,包括:
3.根据权利要求1所述的方法,其特征在于,在所述支持加法写入存储介质中初始化累加存储区域,包括:
4.根据权利要求1所述的方法,其特征在于,根据横向卷积步长以及卷积核矩阵的列数,从所述待处理行中提取多个连续数据段,并将多个连续数据段分别作为列向量组合成行展开矩阵,包括:
5.根据权利要求1所述的方法,其特征在于,通过所述支持加法写入存储介质,将所述行反转矩阵的各行对应累加至所述累加存储区域中的目标数据行,包括:
6.根据权利要求5所述的方法,其特征在于,在所述累加存储区域中确定所述行反转矩阵对应的目标写入行,包括:
7.根据权利要求1所述的方法,其特征在于,在全部待处理行均处理完成后,在所述累加存储区域中获取输出矩阵,包括:
8.一种基于支持加法写入存储介质的卷积实现装置,应用于包含矩阵乘运算单元以及支持加法写入存储介质的卷积计算系统,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的基于支持加法写入存储介质的卷积实现方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com