数据处理方法、装置以及电子设备制造方法及图纸

技术编号:26689947 阅读:14 留言:0更新日期:2020-12-12 02:39
本申请实施例公开了一种数据处理方法、装置以及电子设备。方法包括:获取进行矩阵乘法的待计算矩阵;将待计算矩阵所在内存块进行分块,得到多个子分块,子分块的尺寸小于内存块的尺寸;获取矩阵对应的内存排布方式;基于内存排布方式,将待计算矩阵的元素对应于多个子分块进行重新排列,得到重新排序后的待计算矩阵,其中,进行分块后,基于内存排布方式,从内存中读取重新排序后的待计算矩阵的元素时进行元素读取的次数,小于读取重新排序前的待计算矩阵的元素时进行元素读取的次数;基于重新排序后的待计算矩阵执行矩阵乘法。从而进而可以减小从内存中读取待计算矩阵的元素时进行元素读取的次数,以提升矩阵乘法的运算效率。

【技术实现步骤摘要】
数据处理方法、装置以及电子设备
本申请涉及计算机
,更具体地,涉及一种数据处理方法、装置以及电子设备。
技术介绍
深度学习的飞速发展伴随着移动端神经网络计算引擎的快速迭代,深度学习的算法一般都是具有大计算量的特点,尤其是矩阵乘法这类超大计算量的算子往往占据着深度学习算法算力需求的一大半。但是,在相关的矩阵乘法实施方式中,还存在矩阵乘法的运算效率有待提升的问题。
技术实现思路
鉴于上述问题,本申请提出了一种数据处理方法、装置以及电子设备,以改善上述问题。第一方面,本申请提供了一种数据处理方法,应用于电子设备,所述方法包括:获取进行矩阵乘法的待计算矩阵;将所述待计算矩阵所在内存块进行分块,得到多个子分块,所述子分块的尺寸小于所述内存块的尺寸;获取矩阵对应的内存排布方式;基于所述内存排布方式,将所述待计算矩阵的元素对应于所述多个子分块进行重新排列,得到重新排序后的待计算矩阵,其中,进行所述分块后,基于所述内存排布方式,从内存中读取所述重新排序后的待计算矩阵的元素时进行元素读取的次数,小于读取重新排序前的所述待计算矩阵的元素时进行元素读取的次数;基于所述重新排序后的待计算矩阵执行所述矩阵乘法。第二方面,本申请提供了一种数据处理装置,运行于电子设备,所述装置包括:矩阵获取单元,用于获取进行矩阵乘法的待计算矩阵;内存分块单元,用于将所述待计算矩阵所在内存块进行分块,得到多个子分块,所述子分块的尺寸小于所述内存块的尺寸;排布方式获取单元,用于获取矩阵对应的内存排布方式;内存重排单元,用于基于所述内存排布方式,将所述待计算矩阵的元素对应于所述多个子分块进行重新排列,得到重新排序后的待计算矩阵,其中,进行所述分块后,基于所述内存排布方式,从内存中读取所述重新排序后的待计算矩阵的元素时进行元素读取的次数,小于读取重新排序前的所述待计算矩阵的元素时进行元素读取的次数;数据处理单元,用于基于所述重新排序后的待计算矩阵执行所述矩阵乘法。第三方面,本申请提供了一种电子设备,所述电子设备至少包括处理器、以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现上述方法。第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。本申请提供的一种数据处理方法、装置以及电子设备,会在接收到矩阵乘法计算指令时,获取进行矩阵乘法的待计算矩阵,并对该计算矩阵所在的内存块进行分块,以得到多个子分块。并且,在获取到矩阵对应的内存排布方式以后,先基于所述内存排布方式,将所述待计算矩阵的元素对应于所述多个子分块进行重新排列,得到重新排序后的待计算矩阵,然后再基于所述重新排序后的待计算矩阵执行所述矩阵乘法。从而通过对待计算矩阵的元素在内存中的存储序列进行重新排列的方式,使得在对待矩阵原本的内存块进行分块以后,可以减少在进行分块后,在读取待计算矩阵的元素时,减少因为矩阵对应的内存排布方式所造成的较多的跨子分块进行元素读取的次数,进而可以减小从内存中读取所述待计算矩阵的元素时进行元素读取的次数,以提升矩阵乘法的运算效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了本申请实施例中基于列主序进行矩阵的元素进行存储的示意图;图2示出了本申请实施例中基于行主序进行矩阵的元素进行存储的示意图;图3示出了本申请实施例中处理器、缓存以及内存的关系示意图;图4示出了本申请实施例中对内存块进行分块的示意图;图5示出了本申请实施例提出的一种数据处理方法的流程图;图6示出了本申请实施例中一种对内存块进行分块得到两个子内存块的示意图;图7示出了本申请实施例中一种对矩阵的元素进行重新排列后的示意图;图8示出了本申请实施例中另一种对内存块进行分块得到两个子内存块的示意图;图9示出了本申请实施例中另一种对矩阵的元素进行重新排列后的示意图;图10示出了本申请另一实施例提出的一种数据处理方法的流程图;图11示出了本申请再一实施例提出的一种数据处理方法的流程图;图12示出了本申请实施例中矩阵乘法的示意图;图13示出了本申请实施例中多层循环嵌套的示意图;图14示出了本申请实施例提出的另一种数据处理装置的结构框图;图15示出了本申请实施例提出的再一种数据处理装置的结构框图;图16示出了本申请的用于执行根据本申请实施例的数据处理方法的另一种电子设备的结构框图;图17是本申请实施例的用于保存或者携带实现根据本申请实施例的数据处理方法的程序代码的存储单元。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。人工智能(ArtificialIntelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。深度学习是人工智能技术中一项重要的技术,深度学习的飞速发展伴随着移动端神经网络计算引擎的快速迭代,深度学习的算法一般都是具有大计算量的特点,尤其是矩阵乘法这类超大计算量的算子往往占据着深度学习算法算力需求的一大半。但是,专利技术人在对相关的矩阵乘法的研究中发现,在相关的矩阵乘法实施方式中,还存在矩阵乘法的运算效率有待提升的问题。具体的,矩阵通常会包括有多个元素,而在不同的电子设备中矩阵在内存中进行排布的方式可能是不同的。可选的,矩阵对应的内存排布方式可以有列主序排布以及行主序排布这两种方式。其中,列主序排布可以理解为,矩阵中的元素以列方向存储在内存中。示例性的,如图1所示,图1左侧示出了一8×8的矩阵,在矩阵中的第一行元素包括有h11、h12、h13、h14、h15、h16、h17以及h18,第一列的元素包括有h11、h21、h31、h41、h51、本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,应用于电子设备,所述方法包括:/n获取进行矩阵乘法的待计算矩阵;/n将所述待计算矩阵所在内存块进行分块,得到多个子分块,所述子分块的尺寸小于所述内存块的尺寸;/n获取矩阵对应的内存排布方式;/n基于所述内存排布方式,将所述待计算矩阵的元素对应于所述多个子分块进行重新排列,得到重新排序后的待计算矩阵,其中,进行所述分块后,基于所述内存排布方式,从内存中读取所述重新排序后的待计算矩阵的元素时进行元素读取的次数,小于读取重新排序前的所述待计算矩阵的元素时进行元素读取的次数;/n基于所述重新排序后的待计算矩阵执行所述矩阵乘法。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于电子设备,所述方法包括:
获取进行矩阵乘法的待计算矩阵;
将所述待计算矩阵所在内存块进行分块,得到多个子分块,所述子分块的尺寸小于所述内存块的尺寸;
获取矩阵对应的内存排布方式;
基于所述内存排布方式,将所述待计算矩阵的元素对应于所述多个子分块进行重新排列,得到重新排序后的待计算矩阵,其中,进行所述分块后,基于所述内存排布方式,从内存中读取所述重新排序后的待计算矩阵的元素时进行元素读取的次数,小于读取重新排序前的所述待计算矩阵的元素时进行元素读取的次数;
基于所述重新排序后的待计算矩阵执行所述矩阵乘法。


2.根据权利要求1所述的方法,其特征在于,所述基于所述内存排布方式,将所述待计算矩阵的元素对应于所述多个子分块进行重新排列,得到重新排序后的待计算矩阵,包括:
在内存中为所述待计算矩阵分配与所述多个子分块的尺寸相同的多个新的子内存块;
基于所述内存排布方式,在所述多个新的子内存块中对所述待计算矩阵的元素的存储序列进行重新排列,得到重新排序后的待计算矩阵;
所述基于所述重新排序后的待计算矩阵执行所述矩阵乘法,包括:
从所述多个新的内存块中读取所述重新排序后的待计算矩阵的元素,以执行所述矩阵乘法。


3.根据权利要求1所述的方法,其特征在于,所述重新排序后的待计算矩阵的数量为两个,所述基于所述重新排序后的待计算矩阵执行所述矩阵乘法,包括:
基于所述重新排序后的待计算矩阵生成多层循环嵌套计算式,其中,每层所述循环嵌套计算式的循环次数基于所述重新排序后的待计算矩阵的尺寸得到;
基于所述多层循环嵌套计算式执行所述矩阵乘法。


4.根据权利要求3所述的方法,其特征在于,所述基于所述重新排序后的待计算矩阵生成多层循环嵌套计算式之前还包括:基于OpenMP方式建立多个线程;
所述基于所述多层循环嵌套计算式执行所述矩阵乘法,包括:
基于所述多个线程并行执行所述多层循环嵌套计算式,以执行所述矩阵乘法。


5.根据权利要求4所述的方法,其特征在于,所述基于OpenMP方...

【专利技术属性】
技术研发人员:陈伟
申请(专利权)人:OPPO广东移动通信有限公司
类型:发明
国别省市:广东;44

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

1