一种数据处理方法、设备及装置制造方法及图纸

技术编号:19024061 阅读:38 留言:0更新日期:2018-09-26 19:13
本发明专利技术实施例提供了一种数据处理方法、设备及装置,其中,数据处理方法包括:获取预设卷积核,并确定卷积框宽度;获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度;按照数据列宽度对待处理数据矩阵进行划分,得到多列区域;针对任一列区域,提取第二预设行数的待运算数据发送至芯片缓存,利用预设卷积核,对待运算数据进行卷积运算;在待运算数据中的第一行数据参与完卷积运算后,删除第一行数据,并提取对应列区域的下一行数据,更新待运算数据;对更新的待运算数据进行卷积运算,直至区域中的所有行数据均参与完卷积运算。通过本发明专利技术可以降低芯片在进行数据处理时所产生的功耗、提高处理性能。

【技术实现步骤摘要】
一种数据处理方法、设备及装置
本专利技术涉及芯片设计
,特别是涉及一种数据处理方法、设备及装置。
技术介绍
CNN(ConvolutionalNeuralNetwork,卷积神经网络)属于深度学习算法中的一种,是一种模拟大脑神经网络的工作方式实现数据信息提取的算法。该算法利用卷积计算完成信息的初步提取,结合一些非线性运算,实现高性能的目标检测。随着深度学习算法的不断发展,CNN在目标检测、数据分类、信息提取及匹配等图像处理领域中得到了广泛应用。由于CNN算法本身的特性,有大量的数据需要重复参与运算,因此对芯片片内缓存空间有较高的要求,需要有足够大的存储空间才能存储CNN运算所需要的所有信息,现有的大部分芯片无法达到直接存储所有所需的信息的要求。针对上述大部分芯片无法在片内直接存储所有所需信息的问题,现有技术提出一种CNN实现方法,该方法在进行卷积运算之前,每次都重新从内存中导入运算所需的所有数据,进行计算。由于CNN计算中存在着大量重复使用的数据,现有技术每次从内存导入的数据块中存在着大量重复数据的情况,从而导致读取的过程当中有大量的带宽被浪费,进而使得芯片在进行数据处理时产生了较大的功耗、影响处理性能。
技术实现思路
本专利技术实施例的目的在于提供一种数据处理方法、设备及装置,以降低芯片在进行数据处理时所产生的功耗、提高处理性能。具体技术方案如下:第一方面,本专利技术实施例提供了一种数据处理方法,所述方法包括:获取预设卷积核,并确定所述预设卷积核的卷积框宽度;获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度,其中,所述数据列宽度大于或等于所述卷积框宽度;按照所述数据列宽度对待处理数据矩阵进行列划分,得到多列区域,其中,所述待处理数据矩阵为存储在内存中的、包含所有待处理数据的矩阵;在接收到数据处理指令时,针对所有列区域中的任一列区域,提取第二预设行数的待运算数据发送至所述芯片缓存,以利用所述预设卷积核,对缓存的所述待运算数据进行卷积运算,其中,所述第二预设行数大于或等于所述卷积框宽度、且小于或等于所述第一预设行数;在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据;利用所述预设卷积核,对更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存。可选的,所述获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度的步骤,包括:获取芯片缓存容量及预设数据量,将所述芯片缓存容量与所述预设数据量相除,得到所述芯片缓存的数据个数的最大值;获取第一预设行数,将所述数据个数的最大值与所述第一预设行数相除,得到所述芯片缓存的每行数据的个数;确定所述芯片缓存的每行数据的个数为数据列宽度。可选的,所述按照所述数据列宽度对待处理数据矩阵进行列划分,得到多列区域的步骤之前,所述方法还包括:将所述卷积框宽度减去预设值,得到重合区域的宽度,其中,所述重合区域为任一数据列与相邻数据列重合的区域;确定所述数据列宽度中包含所述重合区域的宽度。可选的,所述接收数据处理指令,针对所有区域中的任一列区域,提取第二预设行数的待运算数据发送至所述芯片缓存的步骤之前,所述方法还包括:针对所有区域中的任一列区域,在第一行数据之前添加第一空行,并设置所述第一空行的数据为0;在最后一行数据之后添加第二空行,并设置所述第二空行的数据为0;所述提取第二预设行数的待运算数据发送至所述芯片缓存的步骤,包括:从所述第一空行开始提取第二预设行数的待运算数据发送至所述芯片缓存。可选的,所述在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据的步骤,包括:在所述待运算数据中的第一行数据参与完卷积运算时,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据;或者,在进行完任一次卷积运算后,将所述第一行数据从所述芯片缓存中删除,并在删除所述第一行数据后进行任一次卷积运算时,从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据。可选的,所述利用所述预设卷积核,对更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存的步骤,包括:利用所述预设卷积核,对更新的待运算数据进行卷积运算,得到卷积结果;将所述卷积结果存储至与对应列区域的列数相同的下一卷积层的列中;发送所述下一卷积层至所述内存。第二方面,本专利技术实施例提供了一种数据处理设备,所述设备包括:主控单元,用于接收数据处理指令,并发送控制命令至滚动缓存及计算单元,以控制滚动缓存从内存中提取数据、控制计算单元对提取的数据进行卷积运算;滚动缓存,用于获取预设卷积核,并确定所述预设卷积核的卷积框宽度;获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度,其中,所述数据列宽度大于或等于所述卷积框宽度;在接收到所述主控单元发送的控制命令后,针对按照所述数据列宽度对内存中的待处理数据矩阵进行列划分得到的多列区域中的任一列区域,提取第二预设行数的待运算数据;在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据删除,并从对应列区域中提取下一行数据,作为待运算数据的最后一行数据,更新待运算数据;计算单元,用于在接收到所述滚动缓存发送的所述待运算数据后,利用所述预设卷积核,对所述待运算数据或更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存。可选的,所述滚动缓存,具体还用于:获取芯片缓存容量及预设数据量,将所述芯片缓存容量与所述预设数据量相除,得到所述滚动缓存的数据个数的最大值;获取第一预设行数,将所述数据个数的最大值与所述第一预设行数相除,得到所述滚动缓存的每行数据的个数;确定所述滚动缓存的每行数据的个数为数据列宽度。可选的,所述滚动缓存,具体还用于:将所述卷积框宽度减去预设值,得到重合区域的宽度,其中,所述重合区域为任一数据列与相邻数据列重合的区域;确定所述数据列宽度中包含所述重合区域的宽度。可选的,所述滚动缓存,具体还用于:针对所有区域中的任一列区域,在提取第一行数据之前,于所述第一行数据前添加第一空行,并设置所述第一空行的数据为0;在提取最后一行数据之前,于所述最后一行数据后添加第二空行,并设置所述第二空行的数据为0;从所述第一空行开始提取第二预设行数的待运算数据。可选的,所述滚动缓存,具体还用于:在所述待运算数据中的第一行数据参与完卷积运算时,将所述第一行数据删除,并从对应列区域中提取下一行数据,作为待运算数据的最后一行数据,更新待运算数据;或者,在进行完任一次卷积运算后,将所述第一行数据从所述芯片缓存中删除,并在删除所述第一行数据后进行任一次卷积运算时,从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:获取预设卷积核,并确定所述预设卷积核的卷积框宽度;获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度,其中,所述数据列宽度大于或等于所述卷积框宽度;按照所述数据列宽度对待处理数据矩阵进行列划分,得到多列区域,其中,所述待处理数据矩阵为存储在内存中的、包含所有待处理数据的矩阵;在接收到数据处理指令时,针对所有列区域中的任一列区域,提取第二预设行数的待运算数据发送至所述芯片缓存,利用所述预设卷积核,对缓存的所述待运算数据进行卷积运算,其中,所述第二预设行数大于或等于所述卷积框宽度、且小于或等于所述第一预设行数;在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据;利用所述预设卷积核,对更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存。

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:获取预设卷积核,并确定所述预设卷积核的卷积框宽度;获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度,其中,所述数据列宽度大于或等于所述卷积框宽度;按照所述数据列宽度对待处理数据矩阵进行列划分,得到多列区域,其中,所述待处理数据矩阵为存储在内存中的、包含所有待处理数据的矩阵;在接收到数据处理指令时,针对所有列区域中的任一列区域,提取第二预设行数的待运算数据发送至所述芯片缓存,利用所述预设卷积核,对缓存的所述待运算数据进行卷积运算,其中,所述第二预设行数大于或等于所述卷积框宽度、且小于或等于所述第一预设行数;在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据;利用所述预设卷积核,对更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存。2.根据权利要求1所述的数据处理方法,其特征在于,所述获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度的步骤,包括:获取芯片缓存容量及预设数据量,将所述芯片缓存容量与所述预设数据量相除,得到所述芯片缓存的数据个数的最大值;获取第一预设行数,将所述数据个数的最大值与所述第一预设行数相除,得到所述芯片缓存的每行数据的个数;确定所述芯片缓存的每行数据的个数为数据列宽度。3.根据权利要求1所述的数据处理方法,其特征在于,所述按照所述数据列宽度对待处理数据矩阵进行列划分,得到多列区域的步骤之前,所述方法还包括:将所述卷积框宽度减去预设值,得到重合区域的宽度,其中,所述重合区域为任一数据列与相邻数据列重合的区域;确定所述数据列宽度中包含所述重合区域的宽度。4.根据权利要求1所述的数据处理方法,其特征在于,所述在接收到数据处理指令时,针对所有区域中的任一列区域,提取第二预设行数的待运算数据发送至所述芯片缓存的步骤之前,所述方法还包括:针对所有区域中的任一列区域,在第一行数据之前添加第一空行,并设置所述第一空行的数据为0;在最后一行数据之后添加第二空行,并设置所述第二空行的数据为0;所述提取第二预设行数的待运算数据发送至所述芯片缓存的步骤,包括:从所述第一空行开始提取第二预设行数的待运算数据发送至所述芯片缓存。5.根据权利要求1所述的数据处理方法,其特征在于,所述在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据的步骤,包括:在所述待运算数据中的第一行数据参与完卷积运算时,将所述第一行数据从所述芯片缓存中删除,并从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据;或者,在进行完任一次卷积运算后,将所述第一行数据从所述芯片缓存中删除,并在删除所述第一行数据后进行任一次卷积运算时,从对应列区域中提取下一行数据发送至所述芯片缓存,作为待运算数据的最后一行数据,更新待运算数据。6.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述预设卷积核,对更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存的步骤,包括:利用所述预设卷积核,对更新的待运算数据进行卷积运算,得到卷积结果;将所述卷积结果存储至与对应列区域的列数相同的下一卷积层的列中;发送所述下一卷积层至所述内存。7.一种数据处理设备,其特征在于,所述设备包括:主控单元,用于接收数据处理指令,并发送控制命令至滚动缓存及计算单元,以控制滚动缓存从内存中提取数据、控制计算单元对提取的数据进行卷积运算;滚动缓存,用于获取预设卷积核,并确定所述预设卷积核的卷积框宽度;获取并根据芯片缓存容量、预设数据量及第一预设行数,确定数据列宽度,其中,所述数据列宽度大于或等于所述卷积框宽度;在接收到所述主控单元发送的控制命令后,针对按照所述数据列宽度对内存中的待处理数据矩阵进行列划分得到的多列区域中的任一列区域,提取第二预设行数的待运算数据;在所述待运算数据中的第一行数据参与完卷积运算后,将所述第一行数据删除,并从对应列区域中提取下一行数据,作为待运算数据的最后一行数据,更新待运算数据;计算单元,用于在接收到所述滚动缓存发送的所述待运算数据后,利用所述预设卷积核,对所述待运算数据或更新的待运算数据进行卷积运算,直至所述区域中的所有行数据均参与完卷积运算,将卷积运算后得到的所有运算结果发送至所述内存。8.根据权利要求7所述的数据处理设备,其特征在于,所述滚动缓存,具体还用于:获取芯片缓存容量及预设数据量,将所述芯片缓存容量与所述预设数据量相除,得到所述滚动缓存的数据个数的最大值;获取第一预设行数,将所...

【专利技术属性】
技术研发人员:胡睿方颉翔张铧铧
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江,33

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

1