CN112084017B - 一种内存管理方法、装置、电子设备及存储介质 - Google Patents
一种内存管理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112084017B CN112084017B CN202010755737.XA CN202010755737A CN112084017B CN 112084017 B CN112084017 B CN 112084017B CN 202010755737 A CN202010755737 A CN 202010755737A CN 112084017 B CN112084017 B CN 112084017B
- Authority
- CN
- China
- Prior art keywords
- training
- data set
- memory
- size
- training task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 238
- 238000007726 management method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000000875 corresponding effect Effects 0.000 claims description 19
- 230000002596 correlated effect Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Abstract
本发明实施例公开一种内存管理方法、装置、电子设备及存储介质,涉及计算机技术领域,能够有效提高多训练任务条件下的模型训练效率。所述内存管理方法,包括:当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行。本发明适用于多训练任务条件下的模型训练中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存管理方法、装置、电子设备及存储介质。
背景技术
近年来,人工智能技术在产业和生活中得到了越来越广泛的应用。机器学习作为人工智能领域的一个重要分支,能够通过大量的训练数据,得到较为理想的数学模型。
由于计算量巨大,各种模型训练通常由集群式服务器完成,集群中的各服务器可以相互协作完成多个训练任务。相应的,其中每台服务器也可能同时承担着多个模型训练任务。由于每个模型训练任务都要读取大量的训练数据,占用大量内存,而各个训练任务对内存寻求的时间和具体需求量都不尽相同,因此很容易造成相互争抢内存或没有充分利用内存的情况,从而降低模型训练效率。
发明内容
有鉴于此,本发明实施例提供一种内存管理方法、装置、电子设备及存储介质,能够有效提高多训练任务条件下的模型训练效率。
第一方面,本发明实施例提供一种内存管理方法,包括:当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行。
可选的,所述获取所述训练任务的训练参数包括以下至少一项:通过读取所述数据集的数据描述信息获取所述数据集的大小;通过读取所述训练任务的预设参数获取所述数据集的遍历次数;根据使用所述数据集进行模型训练的历史任务信息,确定所述数据集的共享系数。
可选的,所述根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略包括:若所述本地剩余内存的大小与所述数据集的大小的之比大于第一阈值,则从所述本地剩余内存中划分出所述数据集对应的内存空间给所述训练任务;若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第一阈值且大于第二阈值,则从所述本地剩余内存中划分出第一内存空间给所述训练任务,所述第一内存空间小于所述数据集对应的内存空间;若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第二阈值,则将所述本地剩余内存全部划分给所述训练任务,其中,所述第一阈值大于所述第二阈值。
可选的,对所述训练任务划分内存后,所述方法还包括:根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整。
可选的,所述根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整包括:将所述遍历次数和/或所述共享系数按照预设算法生成调整系数,其中,所述遍历次数与所述调整系数正相关,所述共享系数与所述调整系数正相关;利用所述调整系数对划分给所述训练任务的内存空间进行扩大调整或缩小调整。
第二方面,本发明的实施例还提供一种内存管理装置,包括:获取单元,用于当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;确定单元,用于根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行。
可选的,所述获取单元包括以下至少一项:第一获取模块,用于通过读取所述数据集的数据描述信息获取所述数据集的大小;第二获取模块,用于通过读取所述训练任务的预设参数获取所述数据集的遍历次数;第三获取模块,用于根据使用所述数据集进行模型训练的历史任务信息,确定所述数据集的共享系数。
可选的,所述确定单元具体用于:若所述本地剩余内存的大小与所述数据集的大小的之比大于第一阈值,则从所述本地剩余内存中划分出所述数据集对应的内存空间给所述训练任务;若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第一阈值且大于第二阈值,则从所述本地剩余内存中划分出第一内存空间给所述训练任务,所述第一内存空间小于所述数据集对应的内存空间;若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第二阈值,则将所述本地剩余内存全部划分给所述训练任务,其中,所述第一阈值大于所述第二阈值。
可选的,所述装置还包括调整单元,用于对所述训练任务划分内存后,根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整。
可选的,所述调整单元包括:生成模块,用于将所述遍历次数和/或所述共享系数按照预设算法生成调整系数,其中,所述遍历次数与所述调整系数正相关,所述共享系数与所述调整系数正相关;调整模块,用于利用所述调整系数对划分给所述训练任务的内存空间进行扩大调整或缩小调整。
第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种内存管理方法。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种内存管理方法。
本发明的实施例提供的内存管理方法、装置、电子设备及存储介质,当有新的训练任务需要执行时,能够获取所述训练任务的训练参数,根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,从而使本地内存能够支持至少两个训练任务同时运行。由于训练参数可以包括所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数中的一项或多项,这样,在进行内存分配时,就可以综合考虑训练任务的数据集大小和使用情况,至少能够保证该训练任务可以分配到合适的内存资源来维持运行或者能够使内存资源通过遍历和共享的方式最大程度的被重复利用,同时还能够对内存资源的使用进行合理规划,以便实现对多个训练任务的支持,从而有效提高了多训练任务条件下的模型训练效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的内存管理方法的一种流程图;
图2为本发明的实施例提供的内存管理装置的一种结构示意图;
图3为本发明的实施例提供的电子设备的一种结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在机器学习中,一方面需要具有强大计算能力的计算机进行模型训练,另一方面也需要足够的数据样本来供计算机进行学习。由于计算量和数据量巨大,模型训练可以由集群式服务器完成。集群中的各服务器可以相互协作完成多个训练任务,相应的,其中每台服务器也可能同时承担着多个模型训练任务中的一部分工作。由于每个模型训练任务都要读取大量的训练数据,占用大量内存,而各个训练任务对内存寻求的时间和具体需求量都不尽相同,因此很容易造成相互争抢内存或没有充分利用内存的情况,从而降低模型训练效率。
为了解决上述问题,发明人在研究中发现,可以通过对服务器的内存资源进行合理管理来改善内存利用效率,提高模型训练效率,从而对多个模型训练任务的同时运行实现更好的支持。下面通过具体实施例进行详细说明。
第一方面,本发明的实施例提供了一种内存管理方法,能够有效提高多训练任务条件下的模型训练效率。
如图1所示,本发明的实施例提供一种内存管理方法,该方法可以包括:
S11,当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;
同一台服务器中可以同时运行一个或多个训练任务。而伴随着已有训练任务的运行,随时也都可能会有新的训练任务加入。新任务加入时,原有训练任务的数量不限,既可以为1个、2个,也可以不存在,为0个。
模型训练中,训练参数的不同会影响模型的训练速度和训练效果。本发明的实施例中,可选的,训练参数可以包括所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数中的一种或多种。
其中,训练任务是指利用训练数据训练出模型的过程。每个训练任务可以训练出一个对应的模型。训练过程中,每个训练任务使用的所有训练数据的总和形成这个训练任务的数据集。
数据集的大小可以指数据集占据的存储空间,例如1G。
训练任务对数据集的遍历次数可以指,需要对整个数据集完整运行几轮才能够训练出模型从而完成训练任务,例如在本发明的一个实施例中,一个训练任务规定遍历次数为3,数据集中有2000个文件,则需要利用这2000个文件全部进行3遍模型训练,才完成该模型任务。
需要说明的是,模型训练是个通过大量数据进行训练,不断迭代优化的过程。在此过程中,训练服务器可以按照一定的规则从数据集中分批读取数据进行模型训练,当将数据集中的所有数据都读完一轮后,可以对模型参数进行调整,然后对数据集进行第二轮读取和模型训练。如此反复可以达几十、上百轮,甚至更高。
数据集的共享系数可以指,同一个数据集可以供几个不同的模型训练任务使用,得到几个不同的模型。例如,为了识别图像,使用数据集P分别进行两种不同的模型训练,得到模型A和模型B,则数据集P的共享系数为2。
S12,根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行。
步骤S11中获取了训练参数后,本步骤中可以根据该训练参数以及本地剩余内存的大小,确定对该训练任务的内存分配策略。其中,本地指用于进行模型训练的计算服务器。可选的,内存分配策略可以包括为该训练任务分配多大内存空间,并且通过这样的内存分配,本地内存可以支持至少两个训练任务同时运行。
本发明的实施例提供的内存管理方法,当有新的训练任务需要执行时,能够获取所述训练任务的训练参数,根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,从而使本地内存能够支持至少两个训练任务同时运行。由于训练参数可以包括所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数中的一项或多项,这样,在进行内存分配时,就可以综合考虑训练任务的数据集大小和使用情况,至少能够保证该训练任务可以分配到合适的内存资源来维持运行或者能够使内存资源通过遍历和共享的方式最大程度的被重复利用,同时还能够对内存资源的使用进行合理规划,以便实现对多个训练任务的支持,从而有效提高了多训练任务条件下的模型训练效率。
可选的,在步骤S11中,训练参数可以包括多种,不同的训练参数也具有不同的获取方式。例如,在本发明的一个实施例中,可以通过以下一项或多项操作获取训练任务的训练参数:通过读取所述数据集的数据描述信息获取所述数据集的大小;通过读取所述训练任务的预设参数获取所述数据集的遍历次数;根据使用所述数据集进行模型训练的历史任务信息,确定所述数据集的共享系数。
可选的,模型训练服务器在读取训练数据前,可以通过读取数据描述信息,例如文件头信息或通过其他交互信息,获知此次训练的数据集的数据量大小(size),也即是该数据集需要占据的数据存储空间的大小,例如132G、60G等,也可以通过训练任务的代码获知数据集的遍历次数。
可选的,在本发明的一个实施例中,可以在本地硬盘中维护一个模型训练的历史任务信息或者将该历史任务信息上传到云端,该历史任务信息中可以包括模型标识、任务标识、训练时间、训练所使用的数据集的标识等信息。这样,通过该历史任务信息即可获知一个数据集在一段时间内是否供多个模型训练任务使用,从而得到该数据集的共享系数。共享系数越大,表明这段时间内该数据集被重复使用的概率越大。
获取了上述训练参数后,即可以在步骤S12中根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略。虽然训练参数包括了数据集的大小、数据集的遍历次数和数据集的共享系数三个,但内存分配策略既可以根据三者中的任一个确定,也可以根据其中两个或三个参数的组合来确定。
其中,数据集的大小是内存分配的重要参考因素。虽然分配的内存不需要将数据集中的全部数据一次装下,但分配的内存越大,同等条件下去外部存储设备中读取数据的次数就会越少,从而有利于提高模型训练的速度。与此同时,为了使内存能够支持多个训练任务同时运行,使多个训练任务之间保持平衡,给当前训练任务分配的内存也不能太大,因此,内存分配策略需要权衡。
数据集的遍历次数是内存分配的另一个重要参考因素。在数据集大小相同的条件下,数据集的遍历次数越多,模型训练所消耗的时间也就越长,为该训练任务分配更多内存就会有更多的数据保留在内存中,从而使每次遍历都节省时间,因此,遍历次数越多,多分配内存所产生的收益就越大。
数据集的共享系数同样是内存分配的重要参数。其他条件相同的情况下,共享系数越大,说明使用该数据集进行模型训练的任务越多,这样如果对其中一个模型训练任务划分了较大内存,保留了较多的数据,则在该模型训练任务结束后,其他模型训练任务也能够使用该数据进行模型训练,从而使更多模型训练任务受益。
可选的,在本发明的一个实施例中,可以根据数据集的大小以及本地剩余内存的大小,确定训练任务的内存分配策略。具体而言,可以包括:
若所述本地剩余内存的大小与所述数据集的大小的之比大于第一阈值,则从所述本地剩余内存中划分出所述数据集对应的内存空间给所述训练任务;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第一阈值且大于第二阈值,则从所述本地剩余内存中划分出第一内存空间给所述训练任务,所述第一内存空间小于所述数据集对应的内存空间;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第二阈值,则将所述本地剩余内存全部划分给所述训练任务,其中,所述第一阈值大于所述第二阈值。
也即是说,在本发明的实施例中,可以将本地剩余内存的大小于数据集的大小做比值,如果比值大于第一阈值,例如大于5,也就意味着本地剩余内存中还有足够的空间,则可以将数据集所需的内存空间给划分给该训练任务。例如,本地剩余内存空间为12G,数据集为2G,则可以给该训练任务划分2G内存。
如果该比值小于或第一阈值而大于第二阈值,例如该比值位于0.8至5之间,则可以从本地剩余内存空间中划分出第一内存空间给该训练任务,其中,第一内存空间的大小小于数据集所需的内存空间,例如在本发明的一个实施例中,数据集为2G,本地剩余内存空间为5G,则可以划分给该训练任务1G。
如果该比值小于或等于第二阈值,例如该比值小于为0.5,则说明本地剩余内存与数据集的大小相比存在较大缺口,则可以将本地剩余内存全部分配给该训练任务。例如,数据集为2G,本地剩余内存空间为0.8G,则可以将0.8G全部划分给该训练任务。
需要说明的是,上述实施例中,第一阈值、第二阈值的具体取值仅仅为示例性的举例,其具体取值可以根据模型特点、数据集大小等实际需要进行灵活设置和调整。
在根据数据集的大小以及本地剩余内存的大小对训练任务进行内存划分后,为了对内存划分进行更精确的控制,进一步提高多任务条件下的内存使用效率,本发明的实施例提供的内存管理方法还可以包括:根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整。
举例而言,在上述实施例中,如果数据集大小为2G,根据数据集大小划分给训练任务1G,而该数据集的遍历次数为3,则可以对划分给该模型训练任务的内存空间进行调整,例如调整为1.2G。如果数据集大小为2G,根据数据集大小划分给训练任务2G,而该数据集的遍历次数为2,则可以对划分给该模型训练任务的内存空间进行调整,例如调整为1.6G。如果数据集大小为2G,根据数据集大小划分给训练任务0.5G,而该数据集的遍历次数为4,则可以对划分给该模型训练任务的内存空间进行调整,例如调整为0.8G。同样的,根据数据集的共享系数进行的调整也可以遵循类似的规律,此处不再赘述。
除了利用数据集的遍历次数或数据集的共享系数对划分给训练任务内存空间分别进行调整外,在本发明的一个实施例中,根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整可以包括:
将所述遍历次数和/或所述共享系数按照预设算法生成调整系数,其中,所述遍历次数与所述调整系数正相关,所述共享系数与所述调整系数正相关;
利用所述调整系数对划分给所述训练任务的内存空间进行扩大调整或缩小调整。
例如,该预设算法可以表达为:
k=0.3x+0.1y2
其中,k为调整系数,x为遍历次数,y为共享系数。
进一步的,除了对新任务的内存分配进行调整之外,在本发明的一个实施例中,还可以综合本地正在运行的各训练任务对应的各数据集的遍历次数和/或各数据集的共享系数,对划分给各训练任务的内存空间进行调整,从而使本地内存对训练任务的支持更为平衡。
需要说明的是,在上述调整方案中,如果本地剩余内存当前能够支持内存分配策略的调整,例如能够提供足够的内存空间来分配给训练任务则可以立即根据内存分配策略分配相应的内存,如果本地剩余内存当前无法支持内存分配策略的调整,例如当前剩余内存无法提供足够的内存空间来分配给训练任务,则可以等待,待其他任务的内存被释放后,执行该内存调整策略。
相应的,第二方面,本发明的实施例还提供一种内存管理装置,能够有效提高多训练任务条件下的模型训练效率。
如图2所示,本发明的实施例提供的内存管理装置可以包括:
获取单元21,用于当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;
确定单元22,用于根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行。
本发明的实施例提供的内存管理装置,当有新的训练任务需要执行时,能够获取所述训练任务的训练参数,根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,从而使本地内存能够支持至少两个训练任务同时运行。由于训练参数可以包括所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数中的一项或多项,这样,在进行内存分配时,就可以综合考虑训练任务的数据集大小和使用情况,至少能够保证该训练任务可以分配到合适的内存资源来维持运行或者能够使内存资源通过遍历和共享的方式最大程度的被重复利用,同时还能够对内存资源的使用进行合理规划,以便实现对多个训练任务的支持,从而有效提高了多训练任务条件下的模型训练效率。
可选的,获取单元21可以包括以下至少一项:
第一获取模块,用于通过读取所述数据集的数据描述信息获取所述数据集的大小;
第二获取模块,用于通过读取所述训练任务的预设参数获取所述数据集的遍历次数;
第三获取模块,用于根据使用所述数据集进行模型训练的历史任务信息,确定所述数据集的共享系数。
可选的,确定单元22具体可以用于:
若所述本地剩余内存的大小与所述数据集的大小的之比大于第一阈值,则从所述本地剩余内存中划分出所述数据集对应的内存空间给所述训练任务;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第一阈值且大于第二阈值,则从所述本地剩余内存中划分出第一内存空间给所述训练任务,所述第一内存空间小于所述数据集对应的内存空间;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第二阈值,则将所述本地剩余内存全部划分给所述训练任务,其中,所述第一阈值大于所述第二阈值。
可选的,所述内存管理装置还可以包括调整单元,用于对所述训练任务划分内存后,根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整。
可选的,所述调整单元可以包括:
生成模块,用于将所述遍历次数和/或所述共享系数按照预设算法生成调整系数,其中,所述遍历次数与所述调整系数正相关,所述共享系数与所述调整系数正相关;
调整模块,用于利用所述调整系数对划分给所述训练任务的内存空间进行扩大调整或缩小调整。
第三方面,本发明的实施例还提供一种电子设备,能够有效提高多训练任务条件下的模型训练效率。
如图3所示,本发明的实施例提供的电子设备,可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例提供的内存管理方法。
处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。
上述电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
相应的,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种内存管理方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种内存管理方法,其特征在于,包括:
当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;
根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行;
其中,所述根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略包括:
若所述本地剩余内存的大小与所述数据集的大小的之比大于第一阈值,则从所述本地剩余内存中划分出所述数据集对应的内存空间给所述训练任务;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第一阈值且大于第二阈值,则从所述本地剩余内存中划分出第一内存空间给所述训练任务,所述第一内存空间小于所述数据集对应的内存空间;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第二阈值,则将所述本地剩余内存全部划分给所述训练任务,其中,所述第一阈值大于所述第二阈值;
其中,对所述训练任务划分内存后,所述方法还包括:
根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整。
2.根据权利要求1所述的方法,其特征在于,所述获取所述训练任务的训练参数包括以下至少一项:
通过读取所述数据集的数据描述信息获取所述数据集的大小;
通过读取所述训练任务的预设参数获取所述数据集的遍历次数;
根据使用所述数据集进行模型训练的历史任务信息,确定所述数据集的共享系数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整包括:
将所述遍历次数和/或所述共享系数按照预设算法生成调整系数,其中,所述遍历次数与所述调整系数正相关,所述共享系数与所述调整系数正相关;
利用所述调整系数对划分给所述训练任务的内存空间进行扩大调整或缩小调整。
4.一种内存管理装置,其特征在于,包括:
获取单元,用于当有新的训练任务需要执行时,获取所述训练任务的训练参数,所述训练参数包括以下至少一种:所述训练任务使用的数据集的大小、所述训练任务对所述数据集的遍历次数、所述数据集的共享系数;
确定单元,用于根据所述训练参数以及本地剩余内存的大小,确定所述训练任务的内存分配策略,以使本地内存支持至少两个训练任务同时运行;
其中,所述确定单元具体用于:
若所述本地剩余内存的大小与所述数据集的大小的之比大于第一阈值,则从所述本地剩余内存中划分出所述数据集对应的内存空间给所述训练任务;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第一阈值且大于第二阈值,则从所述本地剩余内存中划分出第一内存空间给所述训练任务,所述第一内存空间小于所述数据集对应的内存空间;
若所述本地剩余内存的大小与所述数据集的大小之比小于或等于所述第二阈值,则将所述本地剩余内存全部划分给所述训练任务,其中,所述第一阈值大于所述第二阈值;
所述装置还包括调整单元,用于对所述训练任务划分内存后,根据所述训练任务中所述数据集的遍历次数和/或所述数据集的共享系数,对划分给所述训练任务的内存空间进行调整。
5.根据权利要求4所述的装置,其特征在于,所述获取单元包括以下至少一项:
第一获取模块,用于通过读取所述数据集的数据描述信息获取所述数据集的大小;
第二获取模块,用于通过读取所述训练任务的预设参数获取所述数据集的遍历次数;
第三获取模块,用于根据使用所述数据集进行模型训练的历史任务信息,确定所述数据集的共享系数。
6.根据权利要求4所述的装置,其特征在于,所述调整单元包括:
生成模块,用于将所述遍历次数和/或所述共享系数按照预设算法生成调整系数,其中,所述遍历次数与所述调整系数正相关,所述共享系数与所述调整系数正相关;
调整模块,用于利用所述调整系数对划分给所述训练任务的内存空间进行扩大调整或缩小调整。
7.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-3中任一项所述的内存管理方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述权利要求1至3中任一项所述的内存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010755737.XA CN112084017B (zh) | 2020-07-30 | 2020-07-30 | 一种内存管理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010755737.XA CN112084017B (zh) | 2020-07-30 | 2020-07-30 | 一种内存管理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084017A CN112084017A (zh) | 2020-12-15 |
CN112084017B true CN112084017B (zh) | 2024-04-19 |
Family
ID=73735936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010755737.XA Active CN112084017B (zh) | 2020-07-30 | 2020-07-30 | 一种内存管理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084017B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112733892A (zh) * | 2020-12-28 | 2021-04-30 | 北京聚云科技有限公司 | 一种用于模型训练的数据交互方法及装置 |
CN112749072B (zh) * | 2021-01-22 | 2024-03-01 | 北京聚云科技有限公司 | 一种对存储训练数据的云存储系统的测试方法及装置 |
CN115344505B (zh) * | 2022-08-01 | 2023-05-09 | 江苏华存电子科技有限公司 | 一种基于感知分类的内存访问方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020637A1 (zh) * | 2015-08-05 | 2017-02-09 | 杭州海康威视数字技术股份有限公司 | 一种分布式数据计算的任务分配方法和任务分配装置 |
CN108027889A (zh) * | 2016-01-25 | 2018-05-11 | 华为技术有限公司 | 一种用于增量式学习云系统的训练、调度方法及相关设备 |
CN109976903A (zh) * | 2019-02-22 | 2019-07-05 | 华中科技大学 | 一种基于层宽内存分配的深度学习异构计算方法和系统 |
WO2019137021A1 (zh) * | 2018-01-11 | 2019-07-18 | 华为技术有限公司 | 一种机器学习模型训练方法和装置 |
CN110502487A (zh) * | 2019-08-09 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种缓存管理方法与装置 |
CN110618870A (zh) * | 2019-09-20 | 2019-12-27 | 广东浪潮大数据研究有限公司 | 一种深度学习训练任务的工作方法及装置 |
CN110750363A (zh) * | 2019-12-26 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 计算机存储管理方法和装置、电子设备和存储介质 |
CN110928689A (zh) * | 2019-12-05 | 2020-03-27 | 中国人民解放军军事科学院国防科技创新研究院 | 面向分布式强化学习训练的自适应资源管理方法及装置 |
CN111176820A (zh) * | 2019-12-31 | 2020-05-19 | 中科院计算技术研究所大数据研究院 | 一种基于深度神经网络的边缘计算任务的分配方法及装置 |
CN111258965A (zh) * | 2020-01-10 | 2020-06-09 | 北京猎豹移动科技有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
CN111459650A (zh) * | 2019-01-21 | 2020-07-28 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的存储器的方法、设备和计算机程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144828B2 (en) * | 2017-06-09 | 2021-10-12 | Htc Corporation | Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same |
-
2020
- 2020-07-30 CN CN202010755737.XA patent/CN112084017B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020637A1 (zh) * | 2015-08-05 | 2017-02-09 | 杭州海康威视数字技术股份有限公司 | 一种分布式数据计算的任务分配方法和任务分配装置 |
CN108027889A (zh) * | 2016-01-25 | 2018-05-11 | 华为技术有限公司 | 一种用于增量式学习云系统的训练、调度方法及相关设备 |
WO2019137021A1 (zh) * | 2018-01-11 | 2019-07-18 | 华为技术有限公司 | 一种机器学习模型训练方法和装置 |
CN111459650A (zh) * | 2019-01-21 | 2020-07-28 | 伊姆西Ip控股有限责任公司 | 管理专用处理资源的存储器的方法、设备和计算机程序产品 |
CN109976903A (zh) * | 2019-02-22 | 2019-07-05 | 华中科技大学 | 一种基于层宽内存分配的深度学习异构计算方法和系统 |
CN110502487A (zh) * | 2019-08-09 | 2019-11-26 | 苏州浪潮智能科技有限公司 | 一种缓存管理方法与装置 |
CN110618870A (zh) * | 2019-09-20 | 2019-12-27 | 广东浪潮大数据研究有限公司 | 一种深度学习训练任务的工作方法及装置 |
CN110928689A (zh) * | 2019-12-05 | 2020-03-27 | 中国人民解放军军事科学院国防科技创新研究院 | 面向分布式强化学习训练的自适应资源管理方法及装置 |
CN110750363A (zh) * | 2019-12-26 | 2020-02-04 | 中科寒武纪科技股份有限公司 | 计算机存储管理方法和装置、电子设备和存储介质 |
CN111176820A (zh) * | 2019-12-31 | 2020-05-19 | 中科院计算技术研究所大数据研究院 | 一种基于深度神经网络的边缘计算任务的分配方法及装置 |
CN111258965A (zh) * | 2020-01-10 | 2020-06-09 | 北京猎豹移动科技有限公司 | 一种数据获取方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Exploiting Parallelism for CNN Applications on 3D Stacked Processing-In-Memory Architecture;Wang Yi ET AL.;《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》;20190301;第30卷(第3期);全文 * |
面向5G通信网络的NFV内存资源管理方法;苏畅 等;《计算机科学》;20200515;第47卷(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112084017A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112084017B (zh) | 一种内存管理方法、装置、电子设备及存储介质 | |
CN112087487B (zh) | 模型训练任务的调度方法、装置、电子设备及存储介质 | |
CN111258965B (zh) | 一种数据获取方法、装置、电子设备及存储介质 | |
CN111467806A (zh) | 游戏场景中资源生成方法、装置、介质及电子设备 | |
CN106775470B (zh) | 一种数据存储的方法及系统 | |
CN111258958A (zh) | 一种数据获取方法、数据提供方法及装置 | |
CN111161283B (zh) | 一种处理图片资源的方法、装置及电子设备 | |
CN109684033A (zh) | 云平台裸机管理方法、存储介质、电子设备及系统 | |
CN111258959A (zh) | 一种数据获取方法、数据提供方法及装置 | |
CN115170390B (zh) | 一种文件风格化方法、装置、设备及存储介质 | |
CN115577798A (zh) | 基于随机加速梯度下降的半联邦学习方法及装置 | |
CN112416709B (zh) | 芯片动态功耗估计方法、装置、处理器芯片及服务器 | |
CN114356512A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN111346372A (zh) | 一种基于数据备份的游戏登录加载方法、装置及服务器 | |
CN111240843B (zh) | 一种数据获取方法、装置、电子设备及存储介质 | |
CN113992757B (zh) | 异构网络中的存储资源共享管理方法、装置及相关产品 | |
CN117010484B (zh) | 基于注意力机制的个性化联邦学习泛化方法、设备、应用 | |
CN114885215B (zh) | 码率自适应模型的训练、视频码率自适应方法及装置 | |
CN117494816B (zh) | 基于计算单元部署的模型推理方法、装置、设备及介质 | |
CN116415295A (zh) | 数据安全处理方法、装置及相关产品 | |
CN116415133A (zh) | 数据纯净度的计算方法、装置 | |
CN111240843A (zh) | 一种数据获取方法、装置、电子设备及存储介质 | |
CN117725959A (zh) | 数据更新方法、装置、电子设备及计算机存储介质 | |
CN116911403A (zh) | 联邦学习的服务器和客户端的一体化训练方法及相关设备 | |
CN116388167A (zh) | 区域内供电单元部署方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |