内存分配方法、装置、设备、可读存储介质及程序产品制造方法及图纸

技术编号:30707120 阅读:26 留言:0更新日期:2021-11-06 09:55
本申请实施例提供了一种内存分配方法、装置、设备、计算机可读存储介质及计算机程序产品,涉及人工智能领域,该方法包括:获取至少一个目标模型的权值文件;根据至少一个目标模型的权值文件,确定图类;根据图类,确定至少一个目标模型中任一目标模型对应的会话类的内存分配信息;根据任一目标模型对应的会话类的内存分配信息,在任一目标模型的推理过程中,对任一目标模型对应的会话类的内存进行复用。本申请实施例实现了对任一目标模型对应的会话类的内存进行复用,从而减少了任一目标模型的推理过程中的内存占用。推理过程中的内存占用。推理过程中的内存占用。

【技术实现步骤摘要】
内存分配方法、装置、设备、可读存储介质及程序产品


[0001]本申请涉及计算机
,具体而言,本申请涉及一种内存分配方法、装置、设备、计算机可读存储介质及计算机程序产品。

技术介绍

[0002]随着人们在深度学习领域的不断探索,深度学习模型在朝向两个方向发展,一个方面是模型变得越来越大,另一个方面是设备端部署比例提高。对于服务器部署,更大的深度学习模型在推理过程中需要更大的内存;对于移动终端部署,移动终端在推理过程中内存有限;上述两个现象往往导致内存变成瓶颈,从而导致服务器端并发数降低、算力空闲等问题,以及移动终端无法部署更大的模型。现有技术中使用量化方案,使用int8计算代替浮点型数据类型float计算,将float 32bit的卷积操作转换为int8的卷积操作,虽然经过量化后的模型大小会显著减小,但实际运行中需要先进行量化和反量化操作,因此,模型在推理过程中内存占用有可能不降反增。

技术实现思路

[0003]本申请针对现有的方式的缺点,提出一种内存分配方法、装置、设备、计算机可读存储介质及计算机程序产品,用于解决如何减少模型的推理过程中内存占用的问题。
[0004]第一方面,本申请提供了一种内存分配方法,包括:获取至少一个目标模型的权值文件;根据至少一个目标模型的权值文件,确定图类;根据图类,确定至少一个目标模型中任一目标模型对应的会话类的内存分配信息;根据任一目标模型对应的会话类的内存分配信息,在任一目标模型的推理过程中,对任一目标模型对应的会话类的内存进行复用。
[0005]在一个实施例中,根据至少一个目标模型的权值文件,确定图类,包括:根据至少一个目标模型的权值文件,确定图类的权值、图类的参数,以及图类的第一内存池,第一内存池用于存储图类的权值和图类的参数,图类的权值包括至少一个目标模型中各层的权值,图类的参数包括至少一个目标模型中各层的参数。
[0006]在一个实施例中,根据图类,确定至少一个目标模型中任一目标模型对应的会话类的内存分配信息,包括:根据图类的参数,确定任一目标模型对应的会话类的第二内存池的内存总容量,以及第二内存池中各内存块的内存容量;第二内存池用于存储任一目标模型的推理过程中除图类的权值和图类的参数之外的数据。
[0007]在一个实施例中,根据图类的参数,确定任一目标模型对应的会话类的第二内存池的内存总容量,以及第二内存池中各内存块的内存容量,包括:针对任一目标模型中每一层的推理过程,根据图类的参数,确定每一层的输入数
据所占用的第一内存、每一层的推理过程中数据计算所占用的第二内存,以及每一层的输出数据所占用的第三内存;将各第一内存中容量最大的第一内存的容量、各第二内存中容量最大的第二内存的容量,以及各第三内存中容量最大的第三内存的容量,分别确定为第二内存池的第一内存块的容量、第二内存块的容量和第三内存块的容量;根据第一内存块的容量、第二内存块的容量和第三内存块的容量,确定第二内存池的内存总容量。
[0008]在一个实施例中,根据任一目标模型对应的会话类的内存分配信息,在任一目标模型的推理过程中,对任一目标模型对应的会话类的内存进行复用,包括:根据任一目标模型对应的会话类的内存分配信息,在任一目标模型中第N层的推理过程中,调用任一目标模型对应的会话类的第二内存池的第一内存块、第二内存块和第三内存块;第N层的输入数据占用第一内存块中的内存,第N层的推理过程中数据计算占用第二内存块中的内存,第N层的输出数据占用第三内存块中的内存;在任一目标模型中第N+1层的推理过程中,将第N层的推理过程中占用的第一内存块中的内存、第二内存块中的内存和第三内存块中的内存释放到第二内存池,并调用第三内存块中的内存复用为第N+1层的输入数据所占用的内存、第二内存块中的内存复用为第N+1层的推理过程中数据计算所占用的内存,以及第一内存块中的内存复用为第N+1层的输出数据所占用的内存;其中,N为正整数。
[0009]在一个实施例中,对会话类的内存进行调用,包括:通过预设的指针偏移方式,对会话类的内存进行调用。
[0010]在一个实施例中,在至少一个目标模型的推理过程完成之后,包括:释放图类的第一内存池和至少一个目标模型对应的会话类的第二内存池。
[0011]第二方面,本申请提供了一种内存分配装置,包括:第一处理模块,用于获取至少一个目标模型的权值文件;第二处理模块,用于根据至少一个目标模型的权值文件,确定图类;第三处理模块,用于根据图类,确定至少一个目标模型中任一目标模型对应的会话类的内存分配信息;第四处理模块,用于根据任一目标模型对应的会话类的内存分配信息,在任一目标模型的推理过程中,对任一目标模型对应的会话类的内存进行复用。
[0012]第三方面,本申请提供了一种电子设备,包括:处理器、存储器和总线;总线,用于连接处理器和存储器;存储器,用于存储操作指令;处理器,用于通过调用操作指令,执行本申请第一方面的内存分配方法。
[0013]第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被用于执行本申请第一方面的内存分配方法。
[0014]第五方面,本申请提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本申请第一方面中内存分配方法的步骤。
[0015]本申请实施例提供的技术方案,至少具有如下有益效果:
获取至少一个目标模型的权值文件;根据至少一个目标模型的权值文件,确定图类;根据图类,确定至少一个目标模型中任一目标模型对应的会话类的内存分配信息;根据任一目标模型对应的会话类的内存分配信息,在任一目标模型的推理过程中,对任一目标模型对应的会话类的内存进行复用。如此,实现了对任一目标模型对应的会话类的内存进行复用,从而减少了任一目标模型的推理过程中的内存占用;针对服务器部署,可以有效解决目标模型(例如深度学习模型)在推理过程中内存瓶颈导致的并发度低、算力空闲的问题;针对移动终端部署,在有限的内存资源下,可以部署参数更大、效果更好的目标模型。
附图说明
[0016]为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0017]图1为本申请实施例提供的内存分配系统的架构示意图;图2为本申请实施例提供的一种内存分配方法的流程示意图;图3为本申请实施例提供的一种内存分配的示意图;图4为本申请实施例提供的一种内存分配方法的流程示意图;图5为本申请实施例提供的一种内存分配方法的流程示意图;图6为本申请实施例提供的一种内存分配装置的结构示意图;图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
[0018]下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
[0019]本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存分配方法,其特征在于,包括:获取至少一个目标模型的权值文件;根据所述至少一个目标模型的权值文件,确定图类;根据所述图类,确定所述至少一个目标模型中任一目标模型对应的会话类的内存分配信息;根据所述任一目标模型对应的会话类的内存分配信息,在所述任一目标模型的推理过程中,对所述任一目标模型对应的会话类的内存进行复用。2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个目标模型的权值文件,确定图类,包括:根据所述至少一个目标模型的权值文件,确定图类的权值、所述图类的参数,以及所述图类的第一内存池,所述第一内存池用于存储所述图类的权值和所述图类的参数,所述图类的权值包括所述至少一个目标模型中各层的权值,所述图类的参数包括所述至少一个目标模型中各层的参数。3.根据权利要求1所述的方法,其特征在于,所述根据所述图类,确定所述至少一个目标模型中任一目标模型对应的会话类的内存分配信息,包括:根据所述图类的参数,确定所述任一目标模型对应的会话类的第二内存池的内存总容量,以及所述第二内存池中各内存块的内存容量;所述第二内存池用于存储所述任一目标模型的推理过程中除所述图类的权值和所述图类的参数之外的数据。4.根据权利要求3所述的方法,其特征在于,所述根据所述图类的参数,确定所述任一目标模型对应的会话类的第二内存池的内存总容量,以及所述第二内存池中各内存块的内存容量,包括:针对所述任一目标模型中每一层的推理过程,根据所述图类的参数,确定所述每一层的输入数据所占用的第一内存、所述每一层的推理过程中数据计算所占用的第二内存,以及所述每一层的输出数据所占用的第三内存;将各第一内存中容量最大的第一内存的容量、各第二内存中容量最大的第二内存的容量,以及各第三内存中容量最大的第三内存的容量,分别确定为所述第二内存池的第一内存块的容量、第二内存块的容量和第三内存块的容量;根据所述第一内存块的容量、所述第二内存块的容量和所述第三内存块的容量,确定所述第二内存池的内存总容量。5.根据权利要求1所述的方法,其特征在于,所述根据所述任一目标模型对应的会话类的内存分配信息,在所述任一目标模型的推理过程中,对所述任一目标模型对应的会话类的内存进行复用,包括:根据所述任一目标模型对应的会话类的内存...

【专利技术属性】
技术研发人员:杨伟光
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1