一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

神经网络模型的内存管理方法、装置、设备、介质及产品与流程

2023-10-20 21:34:07 来源:中国专利 TAG:

技术特征:
1.一种神经网络模型的内存管理方法,其特征在于,所述方法包括:获取神经网络模型对应的计算图,所述计算图中包括至少两个网络层算子,所述网络层算子用于表示所述神经网络模型中的网络层;基于所述计算图,确定待分配至所述网络层算子的内存大小,所述内存大小用于表示所述网络层算子在所述神经网络模型运行时需要占用的内存大小;从空闲内存块列表中的空闲内存块中获取与所述内存大小匹配的分配内存块,将所述分配内存块分配给所述网络层算子;其中,所述空闲内存块列表用于存放已被分配但被解除占用后的空闲内存块,所述分配内存块是指被分配给所述网络层算子用于存储数据的内存块。2.根据权利要求1所述的方法,其特征在于,所述内存大小包括所述网络层算子对应的输入张量的大小;所述从空闲内存块列表中的空闲内存块中获取与所述内存大小匹配的分配内存块,将所述分配内存块分配给所述网络层算子,包括:获取所述网络层算子的排列顺序,所述排列顺序用于表示所述网络层算子在所述神经网络模型运行时的执行顺序;在所述网络层算子对应的所述输入张量的大小大于张量大小阈值的情况下,从所述空闲内存块列表中获取与所述输入张量的大小匹配的所述分配内存块;按照所述排列顺序将所述分配内存块分配给所述网络层算子用于存储所述输入张量;其中,所述输入张量是指输入至所述网络层算子中的多维数组。3.根据权利要求2所述的方法,其特征在于,所述在所述网络层算子对应的所述输入张量的大小大于张量大小阈值的情况下,从所述空闲内存块列表中获取与所述输入张量的大小匹配的所述分配内存块,包括:在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中的空闲内存块的大小大于或等于所述输入张量的大小的情况下,从所述空闲内存块列表中获取与所述输入张量的大小匹配的所述分配内存块。4.根据权利要求3所述的方法,其特征在于,所述在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中的空闲内存块的大小大于或等于所述输入张量的大小的情况下,从所述空闲内存块列表中获取与所述输入张量的大小匹配的所述分配内存块,包括:在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中包括第一空闲内存块的情况下,将所述第一空闲内存块作为所述分配内存块;或,在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中包括第二空闲内存块的情况下,从所述第二空闲内存块中分割出与所述输入张量的大小匹配的第三内存块,将所述第三内存块作为所述分配内存块;其中,所述第一空闲内存块的大小与所述输入张量的大小相同,所述第二空闲内存块的大小大于所述输入张量的大小。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中的所述空闲内存块的大小小于所述输入张量的大小的情况下,从所述空闲内存块列表和未分配内存中
获取与所述输入张量的大小匹配的所述分配内存块;其中,所述未分配内存是指存储空间中未被分配占用过的内存。6.根据权利要求5所述的方法,其特征在于,所述在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中的所述空闲内存块的大小小于所述输入张量的大小的情况下,从所述空闲内存块列表和未分配内存中获取与所述输入张量的大小匹配的所述分配内存块,包括:在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中包括第四空闲内存块的情况下,将所述第四空闲内存块与合并内存块进行合并,得到所述分配内存块;其中,所述第四空闲内存块的大小小于所述输入张量的大小,所述合并内存块是从所述未分配内存中划分得到的内存块,所述合并内存块的大小为所述输入张量的大小与所述第四空闲内存块的大小的差值。7.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中没有空闲内存块的情况下,从未分配内存中划分出与所述输入张量的大小匹配的内存块作为所述分配内存块。8.根据权利要求7所述的方法,其特征在于,所述未分配内存包括一级未分配内存和二级未分配内存,所述一级未分配内存的分配优先级高于所述二级未分配内存的分配优先级;所述在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中没有空闲内存块的情况下,从所述未分配内存中划分出与所述输入张量的大小匹配的内存块作为所述分配内存块,包括:在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中没有空闲内存块的情况下,从所述一级未分配内存或所述二级未分配内存中划分与所述输入张量的大小匹配的内存块作为所述分配内存块。9.根据权利要求8所述的方法,其特征在于,所述在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中没有空闲内存块的情况下,从所述一级未分配内存或所述二级未分配内存中划分与所述输入张量的大小匹配的内存块作为所述分配内存块,包括:在所述输入张量的大小大于所述张量大小阈值,所述空闲内存块列表中没有空闲内存块,且所述一级未分配内存中的剩余内存大于或等于所述输入张量的大小的情况下,从所述一级未分配内存中划分与所述输入张量的大小匹配的内存块作为所述分配内存块。10.根据权利要求8所述的方法,其特征在于,所述在所述输入张量的大小大于所述张量大小阈值,且所述空闲内存块列表中没有空闲内存块的情况下,从所述一级未分配内存或所述二级未分配内存中划分与所述输入张量的大小匹配的内存块作为所述分配内存块,包括:在所述输入张量的大小大于所述张量大小阈值,所述空闲内存块列表中没有空闲内存块,且所述一级未分配内存中的剩余内存小于所述输入张量的大小的情况下,从所述二级未分配内存中划分与所述输入张量的大小匹配的内存块作为所述分配内存块。11.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述网络层算子对应的所述输入张量的大小小于或等于张量大小阈值的情况下,从未分配内存中获取与所述输入张量的大小匹配的所述分配内存块。12.根据权利要求1至11任一所述的方法,其特征在于,所述方法还包括:基于所述计算图,确定所述网络层算子的输入张量和输出张量对应的存储周期,所述存储周期用于表示所述网络层算子占用内存块的时间;响应于已分配内存块列表中的内存块的存储时间达到所述存储周期,释放所述内存块,并将所述内存块放入所述空闲内存块列表;其中,所述已分配内存块列表用于存放已被占用的内存块。13.根据权利要求12所述的方法,其特征在于,所述响应于已分配内存块列表中的内存块的存储时间达到所述存储周期,释放所述内存块,并将所述内存块放入所述空闲内存块列表,包括:响应于所述已分配内存块列表中的内存块的存储时间达到所述存储周期,释放所述内存块;在当前释放内存块的相邻位置存在已释放内存块的情况下,将所述当前释放内存块与所述已释放内存块进行合并,得到合并释放内存块;将所述合并释放内存块放入所述空闲内存块列表。14.根据权利要求1至11任一所述的方法,其特征在于,所述网络层算子包括数据处理层算子,所述数据处理层算子用于调整所述神经网络模型中的数据格式;所述方法还包括:获取所述数据处理层算子对应的输入张量和输出张量;基于所述输入张量占用的所述分配内存块,使所述输出张量复用所述输入张量占用的所述分配内存块。15.根据权利要求14所述的方法,其特征在于,所述数据处理层算子包括形状重塑算子,所述输出张量包括形状重塑张量;所述基于所述输入张量占用的所述分配内存块,使所述输出张量复用所述输入张量占用的所述分配内存块,包括:基于所述输入张量占用的所述分配内存块,将所述输入张量占用的所述分配内存块分配给所述形状重塑张量;其中,所述形状重塑算子用于调整所述输入张量的形状,但不会改变所述输入张量中的数据,所述形状重塑张量是指所述形状重塑算子输出的张量。16.根据权利要求14所述的方法,其特征在于,所述数据处理层算子包括分裂算子,所述输出张量包括至少两个子输出张量;所述基于所述输入张量占用的所述分配内存块,使所述输出张量复用所述输入张量占用的所述分配内存块,包括:将所述输入张量占用的所述分配内存块进行分割,得到所述至少两个子输入张量各自对应的子内存块;将所述子内存块分配给所述至少两个子输出张量;其中,所述分裂算子用于将所述输入张量分裂为至少两个子输入张量,所述子输出张量是指所述数据处理层算子输出的张量。17.根据权利要求14所述的方法,其特征在于,所述数据处理层算子包括拼接算子;所
述方法还包括:确定所述输出张量占用的所述分配内存块;基于所述输出张量占用的所述分配内存块,使至少两个所述输入张量偏移复用所述输出张量占用的所述分配内存块;其中,所述拼接算子用于将至少两个所述输入张量进行拼接。18.一种神经网络模型的内存管理装置,其特征在于,所述装置包括:获取模块,用于获取神经网络模型对应的计算图,所述计算图中包括至少两个网络层算子,所述网络层算子用于表示所述神经网络模型中的网络层;确定模块,用于基于所述计算图,确定待分配至所述网络层算子的内存大小,所述内存大小用于表示所述网络层算子在所述神经网络模型运行时需要占用的内存大小;分配模块,用于从空闲内存块列表中的空闲内存块中获取与所述内存大小匹配的分配内存块,将所述分配内存块分配给所述网络层算子;其中,所述空闲内存块列表用于存放已被分配但被解除占用后的空闲内存块,所述分配内存块是指被分配给所述网络层算子用于存储数据的内存块。19.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条计算机程序,至少一条所述计算机程序由所述处理器加载并执行以实现如权利要求1至17中任一项所述的神经网络模型的内存管理方法。20.一种计算机存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,至少一条计算机程序由处理器加载并执行以实现如权利要求1至17中任一项所述的神经网络模型的内存管理方法。

技术总结
本申请公开了一种神经网络模型的内存管理方法、装置、设备、介质及产品,属于内存管理技术领域。该方法包括:获取神经网络模型对应的计算图;基于所述计算图,确定待分配至所述网络层算子的内存大小;从空闲内存块列表中的空闲内存块中获取与所述内存大小匹配的分配内存块,将所述分配内存块分配给所述网络层算子;其中,所述空闲内存块列表用于存放已被分配但被解除占用后的空闲内存块,所述分配内存块是指被分配给所述网络层算子用于存储数据的内存块。通过利用空闲内存块列表中的空闲内存块,为网络层算子分配到与内存大小匹配的分配内存块,从而减少神经网络模型在运行过程中分配的内存,提高了内存的利用率。提高了内存的利用率。提高了内存的利用率。


技术研发人员:周刘成 蒋荣琳
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2023.09.11
技术公布日:2023/10/19
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表