对数据块的存储空间进行复用的方法和相关产品技术

技术编号:28870680 阅读:24 留言:0更新日期:2021-06-15 23:02
本公开提供一种对数据块的存储空间进行复用的方法及相关产品,该方法可以实现在计算装置中,其中计算装置可以包括在组合处理装置中,该组合处理装置还可以包括通用互联接口和其他处理装置。所述计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据。

【技术实现步骤摘要】
对数据块的存储空间进行复用的方法和相关产品
本公开涉及计算机领域,更具体地,涉及存储空间的复用。
技术介绍
神经网络技术最近被普遍的应用,一些硬件厂商开始设计神经网络处理器来加速神经网络的计算。对于一个神经网络处理器来说,片上存储空间是有限的。随着神经网络的深度和宽度的增大,所需要的数据量也在逐渐增大,那么存储空间的大小有可能将会成为瓶颈,特别在神经网络的训练阶段,所需的存储空间是非常巨大的。神经网络在运行的过程中,很多数据块的空间是可以复用。为此,许多框架做了内存管理模块,以提高内存复用。但是,现有的很多算法容易产生内存碎片,不能充分高效地利用内存。
技术实现思路
本公开的一个目的在于克服现有技术中在进行空间复用时容易产生内存碎片,空间复用效率较低的缺陷。根据本公开的第一方面,提供一种对数据块的存储空间进行复用的方法,包括:确定多个数据块之间的冲突关系;根据所述冲突关系来确定存在复用关系的数据块;调整所述多个数据块的存储空间的分配顺序,以使得分配顺序中在后数据块能够复用在前数据块的存储空间。根据本公开的第二方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。根据本公开的第三方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。本公开的技术方案能够取得较高的空间复用率,降低存储空间的浪费,并且能够以更快的收敛速度达到相应的空间复用率,特别是对于具有较小存储空间的边缘设备而言具有积极的意义。附图说明通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:图1a示出了传统的神经网络结构示意图;图1b示出了一个双核处理器执行的神经网络结构示意图;图1c示出了示例性的执行流;图1d示出了一个示例性的冲突矩阵;图2a和图2b示出了根据本公开一个实施方式的不同复用方法的对比示意图;图3示出了根据本公开的一个实施方式的对数据块的存储空间进行复用的方法流程图;图4示出了根据本公开一个实施方式的调整所述多个数据块的存储空间的分配顺序的流程示意图;图5a示出了根据本公开一个实施方式的为数据块预分配存储空间的示意图;图5b示出了根据本公开另一个实施方式的为数据块预分配存储空间的示意图;图6a至图6c示出了另外两种序列的存储空间的示例性分配情况;图7示出了根据本公开一个实施方式的调整所述数据块序列中数据块的顺序,以使得存在复用关系的数据块的连续度最大化的方法流程图;图8示出了调整数据块序列的示例性图示;图9示出了根据本公开另一个实施方式的进一步调整所述数据块序列中数据块的顺序,以使得存在复用关系的数据块的连续度最大化的方法流程图;图10a示出了本公开的技术方案(遗传算法,GA)与第一适配(first-fit,FF)算法和最佳适配合并(bestfitwithcoalescing)算法在不同运行环境下的比较结果;图10b示出了在ResNet50,MobileNetV1,MobileNetV2,InceptionV3,GoogLeNet,DensetNet网络类型下本公开的遗传算法与采用随机搜索算法的FF的收敛速度的对比;图11示出了根据本公开的组合处理装置的示意图;图12示出了一种示例性板卡。具体实施方式下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。首先,为了便于下文中更好地对空间复用的技术进行描述,下文中举例说明书数据块之间的冲突关系。深度神经网络(DNN),例如卷积神经网络神经网络(CNN)和递归神经网络(RNN),已在多个领域取得成功。以较为普遍的CNN为例,其主要由卷积层,池化层,激活层,完整连接层等组成。每个层所操作的多维数据可以称为张量。在多核处理器平台中,为了借助于神经网络的并行特性以及充分利用硬件资源,CNN中的操作通常被划分为多个子操作,并且网络拓扑结构会动态地发生改变。在本公开中,以图1a至图1d为例来进行示例性说明,其中,图1a示出了传统的神经网络,其包括卷积层和池化层以及三个张量数据块D0,D1和D2。当在GPU平台上执行时,可以假设数据块D0能够与数据块D2共享存储空间。但是对于多核处理器平台,传统神经网络的层和张量被进行了划分并且划分后的各个层如图1b所示。在图1b中,在处理核A中,将数据块D0拆分为数据块D00和D01,数据块D00通过卷积层后生成数据块D10,数据块D01通过池化层后生成数据块D20;在处理核B中,数据块D01通过卷积层后生成数据块D11,数据块D11通过池化层后生成数据块D21;在处理核A中,将生成的数据块D20和D21组合为数据块D2。需要理解的是,存在冲突的数据块可以是由不同的处理核来处理的(例如数据块D20和D21),也可以是由同一个处理核来处理的(例如数据块D01和D00)。以数据块D01和D00为例,在处理核A中,首先执行执行指令StoreD00,接下来执行指令StoreD01,此时数据块D00的生命周期尚未结束,因为后续还要执行指令LoadD00。因此,数据块D0本文档来自技高网...

【技术保护点】
1.一种对数据块的存储空间进行复用的方法,包括:/n确定多个数据块之间的冲突关系;/n根据所述冲突关系来确定存在复用关系的数据块;/n调整所述多个数据块的存储空间的分配顺序,以使得分配顺序中在后数据块能够复用在前数据块的存储空间。/n

【技术特征摘要】
1.一种对数据块的存储空间进行复用的方法,包括:
确定多个数据块之间的冲突关系;
根据所述冲突关系来确定存在复用关系的数据块;
调整所述多个数据块的存储空间的分配顺序,以使得分配顺序中在后数据块能够复用在前数据块的存储空间。


2.根据权利要求1所述的方法,其中,确定多个数据块之间的冲突关系包括:
确定所述多个数据块的生存周期;
将生存周期不存在交叉的数据块确定为无冲突关系。


3.根据权利要求1或2所述的方法,其中,根据所述冲突关系来确定存在复用关系的数据块包括:
确定无冲突关系的数据块的大小,其中,存储空间能够被复用的数据块的大小不小于进行复用的数据块的大小。


4.根据权利要求3所述的方法,其中,调整所述多个数据块的存储空间的分配顺序,以使得分配顺序中在后数据块能够复用在前数据块的存储空间包括:
调整所述多个数据块的存储空间的分配顺序,以使得多个数据块中至少一部分数据块的存储空间的连续性符合预设条件。


5.根据权利要求4所述的方法,其中,调整所述多个数据块的存储空间的分配顺序,以使得多个数据块中至少一部分数据块的存储空间的连续性符合预设条件包括:
为多个数据块中的每个数据块预分配存储空间,其中预分配的存储空间大小不小于相应的数据块大小;
根据预分配的存储空间的起始地址对所述多个数据块进行排序,以形成数据块序列;
调整所述数据块序列中数据块的排列顺序,以使得存在复用关系的数据块的连续度最大化。


6.根据权利要求5所述的方法,进一步包括:在为多个数据块中的每个数据块预分配存储空间之前,形成多个初始化数据块种群,每个初始数据块种群包括初始顺序不同的多个数据块,以便于根据初始顺序为每个初始种群中的多个数据块预分配存储空间;
根据预分配的存储空间的起始地址对所述多个数据块进行排序,以形成数据块序列包括:根据为每个初始种群中的多个数据块预分配的存储空间的起始地址,对每个初始种群中的多个数据块进行排序,以形成多个数据块序列,每个数据块序列包括排列顺序不同的所述多个数据块。


7.根据权利...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海;31

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

1