CN110930291A - 一种gpu显存管理控制方法及相关装置 - Google Patents
一种gpu显存管理控制方法及相关装置 Download PDFInfo
- Publication number
- CN110930291A CN110930291A CN201911122487.XA CN201911122487A CN110930291A CN 110930291 A CN110930291 A CN 110930291A CN 201911122487 A CN201911122487 A CN 201911122487A CN 110930291 A CN110930291 A CN 110930291A
- Authority
- CN
- China
- Prior art keywords
- video memory
- task
- gpu
- placeholder
- use condition
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本申请公开了一种GPU显存管理控制方法,包括:按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符;根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务;对所述超分配任务执行中止操作。通过从GPU显存获取到的显存使用情况数据,然后将该数据转码为显存使用情况占位符,最后根据该显存使用情况占位符进行显存使用监控,实现了对GPU显存进行准确及时的监控管理操作,提高了显存使用效率。本申请还公开了一种GPU显存管理控制装置、服务器以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种GPU显存管理控制方法、GPU显存管理控制装置、服务器以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,为了使计算机使用更加智能化,出现了AI深度学习技术。在设备中使用AI深度学习技术可以使数据处理更加智能化。进一步,为了提高深度学习的速度,在深度学习领域中采用GPU(Graphics Processing Unit图形处理器)对深度学习进行加速。但是,目前GPU卡的成本较高,不得不充分使用GPU的性能。目前,需要使用GPU卡的场景包括模型开发场景和模型训练场景。但是,GPU目前的显存都比较大,并且使用的GPU卡的模型开发场景或者是模型训练场景都没有办法将GPU中的显存进行百分之百的使用。
并且,在另一种显存使用情况中,一般只在客户开发的情况下使用GPU,调试模型是并不需要大量的显存进行调试。可见,此情况下无需使用过多的显存。还在另一中显存使用情况中,在对模型进行测试的过程中,才会使用到GPU的性能。可见,现有技术中在使用GPU调试模型的过程中,由于GPU显存较大,每个任务使用GPU显存情况复杂,无法对GPU中的任务使用GPU显存的情况进行准确及时的监控管理操作,进而降低了对GPU显存使用的监控力度,容易导致GPU显存使用者对显存进行滥用,不控制显存的大小,进一步造成GPU性能资源浪费。
因此,如何对GPU显存进行准确及时的监控管理操作是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种GPU显存管理控制方法、GPU显存管理控制装置、服务器以及计算机可读存储介质,通过从GPU显存获取到的显存使用情况数据,然后将该数据转码为显存使用情况占位符,最后根据该显存使用情况占位符进行显存使用监控,实现了对GPU显存进行准确及时的监控管理操作,提高了显存使用效率。
为解决上述技术问题,本申请提供一种GPU显存管理控制方法,包括:
按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;
将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符;
根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务;
对所述超分配任务执行中止操作。
可选的,按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据,包括:
当所述GPU显存中存在状态发生变化的任务时,将所述任务的显存情况按照所述预设数据结构进行记录,得到所述显存使用数据。
可选的,将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符,包括:
将所述显存使用情况数据中的任务名称进行十六进制转换,得到名称码;
将所述显存使用情况数据中的GPU卡号和显存使用大小进行占位符转换,得到占位符码;
将所述名称码和所述占位符码组合为所述显存使用情况占位符。
可选的,根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务,包括:
按照预设周期将所述显存分配表与所述显存使用情况占位符进行占位符差值运算,得到显存差值;
将所述显存差值大于预设显存的任务作为峰值任务;
判断峰值任务的存在时间是否大于阈值时间;
若是,将该峰值任务作为所述超分配任务。
可选的,还包括:
当定位任务时,根据所述任务对应的显存使用情况占位符确定所述任务对应的pod信息和GPU卡信息,实现任务的定位操作。
本申请还提供一种GPU显存管理控制装置,包括:
显存数据获取模块,用于按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;
显存数据转码模块,用于将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符;
显存监控模块,用于根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务;
超限任务处理模块,用于对所述超分配任务执行中止操作。
可选的,所述显存数据获取模块,具体用于当所述GPU显存中存在状态发生变化的任务时,将所述任务的显存情况按照所述预设数据结构进行记录,得到所述显存使用数据。
可选的,所述显存数据转码模块,包括:
名称码转换单元,用于将所述显存使用情况数据中的任务名称进行十六进制转换,得到名称码;
占位符码转换单元,用于将所述显存使用情况数据中的GPU卡号和显存使用大小进行占位符转换,得到占位符码;
占位符组合单元,用于将所述名称码和所述占位符码组合为所述显存使用情况占位符。
可选的,所述显存监控模块,包括:
显存差值计算单元,用于按照预设周期将所述显存分配表与所述显存使用情况占位符进行占位符差值运算,得到显存差值;
峰值任务获取单元,用于将所述显存差值大于预设显存的任务作为峰值任务;
延时判断单元,用于判断峰值任务的存在时间是否大于阈值时间;
超分配任务获取单元,用于当所述峰值任务的存在时间大于阈值时间时,将该峰值任务作为所述超分配任务。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的GPU显存管理控制方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的GPU显存管理控制方法的步骤。
本申请所提供的一种GPU显存管理控制方法,包括:按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符;根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务;对所述超分配任务执行中止操作。
通过按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据,采用预设的数据结构获取显存使用情况,避免了数据混乱的情况,然后将显存使用情况进行占位符转码得到显存使用情况占位符,最后通过该显存使用情况占位符进行监控操作,也就是可以直接进行占位符运算,提高了监控效率,保持监控的及时性和准确性,进一步的,通过显存使用监控得到了超分配任务,最后将超分配任务进行中止,也就是结束执行超出显存分配的任务,避免了对GPU显存资源进一步占用,使各个任务均按照分配的显存执行,提高管理控制操作的有效性。
本申请还提供一种GPU显存管理控制装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不作赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种GPU显存管理控制方法的流程图;
图2为本申请实施例所提供的一种GPU显存管理控制装置的结构示意图。
具体实施方式
本申请的核心是提供一种GPU显存管理控制方法、GPU显存管理控制装置、服务器以及计算机可读存储介质,通过从GPU显存获取到的显存使用情况数据,然后将该数据转码为显存使用情况占位符,最后根据该显存使用情况占位符进行显存使用监控,实现了对GPU显存进行准确及时的监控管理操作,提高了显存使用效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,一般只在客户开发的情况下使用GPU,调试模型是并不需要大量的显存进行调试。可见,此情况下无需使用过多的显存。还在另一中显存使用情况中,在对模型进行测试的过程中,才会使用到GPU的性能。可见,现有技术中在使用GPU调试模型的过程中,由于GPU显存较大,每个任务使用GPU显存情况复杂,无法对GPU中的任务使用GPU显存的情况进行准确及时的监控管理操作,进而降低了对GPU显存使用的监控力度,容易导致GPU显存使用者对显存进行滥用,不控制显存的大小,进一步造成GPU性能资源浪费。
因此,本申请提供一种GPU显存管理控制方法,通过按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据,采用预设的数据结构获取显存使用情况,避免了数据混乱的情况,然后将显存使用情况进行占位符转码得到显存使用情况占位符,最后通过该显存使用情况占位符进行监控操作,也就是可以直接进行占位符运算,提高了监控效率,保持监控的及时性和准确性,进一步的,通过显存使用监控得到了超分配任务,最后将超分配任务进行中止,也就是结束执行超出显存分配的任务,避免了对GPU显存资源进一步占用,使各个任务均按照分配的显存执行,提高管理控制操作的有效性。
请参考图1,图1为本申请实施例所提供的一种GPU显存管理控制方法的流程图。
本实施例中,该方法可以包括:
S101,按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;
本步骤主要是从GPU显存中获取到所有在GPU卡中执行的所有的任务的使用显存的显存使用情况。由于是从GPU显存中获取到显存的使用情况,并且,GPU显存容量通常较大,应用在深度学习领域时在GPU中一般会运行较多数量的任务,每个任务分配的pod不同,对每个pod分配的GPU卡数也不相同。其中,pod为一种工作负载型资源对象,是所有业务类型的基础,一个容器或者多个容器的组合。因此,获取到一个任务对应的显存使用情况数据是十分复杂的,并且,每个任务对应的显存使用情况数据随时进行变化。
在现有技术中,一般是CPU执行相应的程序按照每个任务为单位从GPU显存中获取该任务对应的使用情况数据。但是,GPU中执行的任务众多,每个任务又对应了复杂的硬件关系同时还随时发生变化。因此,直接从GPU显存中获取到任务使用显存的使用情况数据,不仅数据获取不及时,还会耗费大量的硬件资源在获取过程中。
因此,在本步骤中按照预设数据结构从GPU显存中获取所有任务的显存使用情况数据。主要是指首先在GPU显存中按照预设数据结构将所有任务使用显存的情况进行记录,然后在GPU显存中保持该记录数据实时更新。其中,保持数据更新的方式可以是当任务状态发生变化就更新数据,也可以是按照预设周期更新数据,还可以是通过上述两种方式都更新数据。最后,控制端也就是CPU端,将显存中已经记录的数据获取至内存中,再在内存中进行处理。当然,本步骤获取到内存中的步骤,为了降低传输的数据量,还可以通过以下的步骤将获取到显存使用情况数据进行转码处理,得到显存使用情况占位符,以降低数据的数据量,提高数据的传输效率。
可选的,本步骤可以包括:
当GPU显存中存在状态发生变化的任务时,将任务的显存情况按照预设数据结构进行记录,得到显存使用数据。
可见,本可选方案主要是对更新数据做进一步说明。其中,发生变化的任务可以包括被删除的任务、新增加的任务、内容变化的任务。
S102,将显存使用情况数据进行占位符转码,得到显存使用情况占位符;
在S101的基础上,本步骤主要是将数据进行转码。主要目的是降低数据的数据量,提高监控过程中的运算速度,并且,将显存使用情况展现的更加简单化。
具体来说,可以选择出显存使用情况数据中的关键数据,例如任务名称、GPU卡号以及使用内存大小。然后将这个数据进行转换,得到固定长度的占位符。可以是转换为十六进制的码,可以是二进制码,也可以是其他进制的码数,在此不做限定。
可选的,本步骤可以包括:
步骤1,将显存使用情况数据中的任务名称进行十六进制转换,得到名称码;
步骤2,将显存使用情况数据中的GPU卡号和显存使用大小进行占位符转换,得到占位符码;
步骤3,将名称码和占位符码组合为显存使用情况占位符。
可见,本可选方案中是将任务名称转换为十六进制,然后将GPU卡号和显存使用大小转换为二进制的占位符,最后将名称码和占位符码进行组合得到使用情况占位符。
举例来说,将任务编码作为任务名称进行相应的转码操作,将GPU卡号和显存使用大小转换为二进制的占位符,得到不同任务对应的显存使用情况。例如,四个不同的任务的显存使用情况可以表示为FF4010001101;CD010101000;AA0010101000;AF0010101000。
很显然,对每个任务进行显存大小的判断时,只需要对该显存使用情况中的二进制码进行运算即可。由于是直接计算二进制数,可以极大的提高运算的效率,可以针对众多任务在短时间内进行高频大量的运算。同时,减少了这些数据保存在内存中的数据量,避免数据冗余。
S103,根据显存分配表对显存使用情况占位符进行显存使用监控,得到超分配任务;
在S102的基础上,本步骤旨在根据转码得到的显存使用情况占位符对每个任务的显存使用情况进行监控,得到超分配任务。也就是,得到显存使用超出分配显存的任务。也就是,判断每个任务的显存使用情况是否大于显存分配表中规定的数据。
为了避免误判,降低错判数量,本步骤中可以判断每个任务的显存使用情况是否大于分配显存大小的预设比例大小。例如,判断每个任务显存的使用情况是否大于分配显存大小1.2倍的容量大小。
为了减少误判数量,还可以判断该任务超出规定大小后的持续时间是否大于预设时长,若是,才判定为超分配任务。也就是避免出现峰值抖动的情况,降低误判的数量。
具体的,避免出现峰值抖动的过程可以包括:
按照预设周期将显存分配表与显存使用情况占位符进行占位符差值运算,得到显存差值;
将显存差值大于预设显存的任务作为峰值任务;
判断峰值任务的存在时间是否大于阈值时间;
若是,将该峰值任务作为超分配任务。
S104,对超分配任务执行中止操作。
在S103的基础上,本步骤旨在结束超分配任务。也就是避免超分配任务占用其他的任务资源,使得任务在执行过程中更加遵循分配的内存大小,提高显存的使用效率。
其中,结束任务的执行的方式可以采用现有技术提供的任意一种结束方式,在此不作赘述。
可选的,本实施例中,还可以包括:
当定位任务时,根据所述任务对应的显存使用情况占位符确定所述任务对应的pod信息和GPU卡信息,实现任务的定位操作。
也就是说,如果在本实施例中需要对任务的显存进行定位,直接采用转码后的显存情况占位符即可定位到对应的pod信息和GPU信息,而不用再去显存中收集该任务对应的显存信息,提高了任务定位的速度,实现快速定位操作。
综上,本实施例通过按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据,采用预设的数据结构获取显存使用情况,避免了数据混乱的情况,然后将显存使用情况进行占位符转码得到显存使用情况占位符,最后通过该显存使用情况占位符进行监控操作,也就是可以直接进行占位符运算,提高了监控效率,保持监控的及时性和准确性,进一步的,通过显存使用监控得到了超分配任务,最后将超分配任务进行中止,也就是结束执行超出显存分配的任务,避免了对GPU显存资源进一步占用,使各个任务均按照分配的显存执行,提高管理控制操作的有效性。
以下通过另一个具体的实施例,对本申请提供的一种GPU显存管理控制方法做进一步说明。
本实施例中,该方法可以包括:
步骤1,在已经将GPU显存进行细粒度的分配的基础上,获取到GPU显存使用情况到内存中,通过内存表进行保存;
步骤2,根据内存表进行峰值判断;
步骤3,将大于峰值的任务进行结束操作;
步骤4,将不大于峰值的任务进行保留,并持续监控内存中的任务运行情况。
本实施例的基础是将GPU显存按照细粒度分配,且每个任务都已分配到对应的资源且都可以运行起来。所以在分配过程,要把内存使用数据进行记录。
为了后续控制性能提升,在基础数据这里定义内存表来存储。举例来说,数据表结构可以如下:
{
"jobname":[
{"podName":"caffe1","type":"dev","nodename":"ainode1"
"GPU":[{"gid":"GPU01","gsize":"2"},{"gid":"GPU02","gsize":"2"]},{"gid":"GPU03","gsize":"2"]}},
{"podName":"caffe2","type":"dev","nodename":"ainode2"
"GPU":[{"gid":"GPU05","gsize":"2"},{"gid":"GPU06","gsize":"2"]},{"gid":"GPU07","gsize":"2"]}},
"jobname":[
{"podName":"tensorflow","type":"dev","nodename":"ainode3"
"GPU":[{"gid":"GPU01","gsize":"2"}},
"jobname":[
{"podName":"test1","type":"dev","nodename":"ainode5"
"GPU":[{"gid":"GPU01","gsize":"2"},{"gid":"GPU02","gsize":"2","gsize":"2"]},{"gid":"GPU03","gsize":"2"]}},
{"podName":"test2","type":"dev","nodename":"ainode5"
"GPU":[{"gid":"GPU01","gsize":"2"},{"gid":"GPU03","gsize":"2"]},{"gid":"GPU04","gsize":"2"]}},
]
}
其中,jobname为任务名称,podName为pod名称,type为pod类型,nodename为对应的node名称,gid为GPU的ID,gsize为使用的GPU大小。
其中,本实施例因为每个任务分配的pod不同,而且每个pod分配的GPU卡数也不相同,所以这是一个动态的数据结构,方便统计和查询,通过采用常规的存储方法,方便后续的扩展使用。这里面把每个GPU卡的id都已记录,且每个卡在哪个节点都已记录,为了后面的查询做准备。每当任务发生变化自动更新和维护这个数据结构,平台发生变化状态包括创建、运行、删除、错误都会自动更新表数据,如果出现服务器重启,该平台业务自动在重启过程中把当前的任务和pod自动存储到内存中。
在基础的数据结构中,把每个运行的任务进行分类统计,为了提高运行统计速度,在业务层直接采用数据占位运算定义,可以减少内存占用,提高运算速度。例如,将8个任务进行定义,可以划分如下:
FF4010001101;CD010101000;AA0010101000;AF0010101000;
FF0010101001;XA0010101001;FF0010101001;DD4010101000。
其中,前面的十六进制表示名称,后面通过占位符定义GPU卡和显存大小。因为在一个pod中定义的显存颗粒度都一样,所以采用该计算方法快速的定位到显存。
通过该占位符可以实现快速得到每个pod的GPU卡分配的显存,且得到每个GPU卡的uuid值,该值是每个节点内唯一标志,每个pod采集信息全部采用并发机制控制,而且做了自动超时控制,出现超时自动回收,让下次轮动去采集,本次采集不作为参考。
采集得到对应此时的GPU卡显存利用情况,因为每个程序都会有一个显存峰值出现波动的过程,采用了免干扰数据处理过程。实现过程是当在一个秒级的采集周期内出现规定显存的20%以上,判定为一个程序峰值抖动过程,不做处理,只有显存达到稳定之后才进行统计。如果长时间超过规定阈值,比如持续5s规定的时间内显存占用一直不变化,表示本次应用是超过了规定分配的控制,因此获取到该任务pod号后,记录本次任务超过的时间和显存值,给予三次预警提示,默认自动把该任务结束掉,同时会写入到日志记录中。
可见,本实施例通过按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据,采用预设的数据结构获取显存使用情况,避免了数据混乱的情况,然后将显存使用情况进行占位符转码得到显存使用情况占位符,最后通过该显存使用情况占位符进行监控操作,也就是可以直接进行占位符运算,提高了监控效率,保持监控的及时性和准确性,进一步的,通过显存使用监控得到了超分配任务,最后将超分配任务进行中止,也就是结束执行超出显存分配的任务,避免了对GPU显存资源进一步占用,使各个任务均按照分配的显存执行,提高管理控制操作的有效性。
下面对本申请实施例提供的一种GPU显存管理控制装置进行介绍,下文描述的一种GPU显存管理控制装置与上文描述的一种GPU显存管理控制方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种GPU显存管理控制装置的结构示意图。
本实施例中,该装置可以包括:
显存数据获取模块100,用于按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;
显存数据转码模块200,用于将显存使用情况数据进行占位符转码,得到显存使用情况占位符;
显存监控模块300,用于根据显存分配表对显存使用情况占位符进行显存使用监控,得到超分配任务;
超限任务处理模块400,用于对超分配任务执行中止操作。
可选的,该显存数据获取模块100,具体用于当GPU显存中存在状态发生变化的任务时,将任务的显存情况按照预设数据结构进行记录,得到显存使用数据。
可选的,该显存数据转码模块200可以包括:
名称码转换单元,用于将显存使用情况数据中的任务名称进行十六进制转换,得到名称码;
占位符码转换单元,用于将显存使用情况数据中的GPU卡号和显存使用大小进行占位符转换,得到占位符码;
占位符组合单元,用于将名称码和占位符码组合为显存使用情况占位符。
可选的,该显存监控模块300,可以包括:
显存差值计算单元,用于按照预设周期将显存分配表与显存使用情况占位符进行占位符差值运算,得到显存差值;
峰值任务获取单元,用于将显存差值大于预设显存的任务作为峰值任务;
延时判断单元,用于判断峰值任务的存在时间是否大于阈值时间;
超分配任务获取单元,用于当峰值任务的存在时间大于阈值时间时,将该峰值任务作为超分配任务。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的GPU显存管理控制方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的GPU显存管理控制方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种GPU显存管理控制方法、GPU显存管理控制装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种GPU显存管理控制方法,其特征在于,包括:
按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;
将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符;
根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务;
对所述超分配任务执行中止操作。
2.根据权利要求1所述的GPU显存管理控制方法,其特征在于,按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据,包括:
当所述GPU显存中存在状态发生变化的任务时,将所述任务的显存情况按照所述预设数据结构进行记录,得到所述显存使用数据。
3.根据权利要求1所述的GPU显存管理控制方法,其特征在于,将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符,包括:
将所述显存使用情况数据中的任务名称进行十六进制转换,得到名称码;
将所述显存使用情况数据中的GPU卡号和显存使用大小进行占位符转换,得到占位符码;
将所述名称码和所述占位符码组合为所述显存使用情况占位符。
4.根据权利要求1所述的GPU显存管理控制方法,其特征在于,根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务,包括:
按照预设周期将所述显存分配表与所述显存使用情况占位符进行占位符差值运算,得到显存差值;
将所述显存差值大于预设显存的任务作为峰值任务;
判断峰值任务的存在时间是否大于阈值时间;
若是,将该峰值任务作为所述超分配任务。
5.根据权利要求1所述的GPU显存管理控制方法,其特征在于,还包括:
当定位任务时,根据所述任务对应的显存使用情况占位符确定所述任务对应的pod信息和GPU卡信息,实现任务的定位操作。
6.一种GPU显存管理控制装置,其特征在于,包括:
显存数据获取模块,用于按照预设数据结构从GPU显存中获取到所有任务的显存使用情况数据;
显存数据转码模块,用于将所述显存使用情况数据进行占位符转码,得到显存使用情况占位符;
显存监控模块,用于根据显存分配表对所述显存使用情况占位符进行显存使用监控,得到超分配任务;
超限任务处理模块,用于对所述超分配任务执行中止操作。
7.根据权利要求6所述的GPU显存管理控制装置,其特征在于,所述显存数据获取模块,具体用于当所述GPU显存中存在状态发生变化的任务时,将所述任务的显存情况按照所述预设数据结构进行记录,得到所述显存使用数据。
8.根据权利要求6所述的GPU显存管理控制装置,其特征在于,所述显存数据转码模块,包括:
名称码转换单元,用于将所述显存使用情况数据中的任务名称进行十六进制转换,得到名称码;
占位符码转换单元,用于将所述显存使用情况数据中的GPU卡号和显存使用大小进行占位符转换,得到占位符码;
占位符组合单元,用于将所述名称码和所述占位符码组合为所述显存使用情况占位符。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的GPU显存管理控制方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的GPU显存管理控制方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122487.XA CN110930291B (zh) | 2019-11-15 | 2019-11-15 | 一种gpu显存管理控制方法及相关装置 |
PCT/CN2020/103741 WO2021093365A1 (zh) | 2019-11-15 | 2020-07-23 | 一种gpu显存管理控制方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911122487.XA CN110930291B (zh) | 2019-11-15 | 2019-11-15 | 一种gpu显存管理控制方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110930291A true CN110930291A (zh) | 2020-03-27 |
CN110930291B CN110930291B (zh) | 2022-06-17 |
Family
ID=69853156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911122487.XA Active CN110930291B (zh) | 2019-11-15 | 2019-11-15 | 一种gpu显存管理控制方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110930291B (zh) |
WO (1) | WO2021093365A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093365A1 (zh) * | 2019-11-15 | 2021-05-20 | 山东英信计算机技术有限公司 | 一种gpu显存管理控制方法及相关装置 |
CN112957068A (zh) * | 2021-01-29 | 2021-06-15 | 青岛海信医疗设备股份有限公司 | 超声信号处理方法及终端设备 |
CN113259680A (zh) * | 2021-06-25 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、计算机设备和存储介质 |
WO2021203805A1 (zh) * | 2020-04-08 | 2021-10-14 | 苏州浪潮智能科技有限公司 | 一种gpu共享调度、单机多卡方法、系统及装置 |
CN115292199A (zh) * | 2022-09-22 | 2022-11-04 | 荣耀终端有限公司 | 一种显存泄露的处理方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04103996A (ja) * | 1990-08-21 | 1992-04-06 | Mitsubishi Electric Corp | 戦術表示装置 |
CN101515247A (zh) * | 2009-03-30 | 2009-08-26 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
CN102654830A (zh) * | 2011-03-03 | 2012-09-05 | 福建星网视易信息系统有限公司 | 利用纹理排料方式优化显存空间的方法 |
CN104050008A (zh) * | 2013-03-15 | 2014-09-17 | 中兴通讯股份有限公司 | 一种内存超分配管理系统及方法 |
CN104991825A (zh) * | 2015-03-27 | 2015-10-21 | 北京天云融创软件技术有限公司 | 一种基于负载感知的Hypervisor资源超分配及动态调整方法及系统 |
WO2015176689A1 (zh) * | 2014-05-23 | 2015-11-26 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN105824702A (zh) * | 2016-03-22 | 2016-08-03 | 乐视云计算有限公司 | 一种管理程序内存占用量的方法和终端 |
CN109992422A (zh) * | 2019-04-11 | 2019-07-09 | 北京朗镜科技有限责任公司 | 一种面向gpu资源的任务调度方法、装置和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0844546A (ja) * | 1994-07-29 | 1996-02-16 | Fujitsu Ltd | グラフィカルユーザインターフェースを備えたコンピュータシステム |
CN102662850B (zh) * | 2012-03-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种内存管理方法及其系统 |
CN106055407B (zh) * | 2016-05-25 | 2020-02-07 | 努比亚技术有限公司 | 进程资源调整装置及方法 |
CN108733531B (zh) * | 2017-04-13 | 2021-08-24 | 南京维拓科技股份有限公司 | 基于云计算的gpu性能监控系统 |
CN110187878A (zh) * | 2019-05-29 | 2019-08-30 | 北京三快在线科技有限公司 | 一种页面生成方法和装置 |
CN110930291B (zh) * | 2019-11-15 | 2022-06-17 | 山东英信计算机技术有限公司 | 一种gpu显存管理控制方法及相关装置 |
-
2019
- 2019-11-15 CN CN201911122487.XA patent/CN110930291B/zh active Active
-
2020
- 2020-07-23 WO PCT/CN2020/103741 patent/WO2021093365A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04103996A (ja) * | 1990-08-21 | 1992-04-06 | Mitsubishi Electric Corp | 戦術表示装置 |
CN101515247A (zh) * | 2009-03-30 | 2009-08-26 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
CN102654830A (zh) * | 2011-03-03 | 2012-09-05 | 福建星网视易信息系统有限公司 | 利用纹理排料方式优化显存空间的方法 |
CN104050008A (zh) * | 2013-03-15 | 2014-09-17 | 中兴通讯股份有限公司 | 一种内存超分配管理系统及方法 |
WO2015176689A1 (zh) * | 2014-05-23 | 2015-11-26 | 华为技术有限公司 | 一种数据处理的方法及装置 |
CN104991825A (zh) * | 2015-03-27 | 2015-10-21 | 北京天云融创软件技术有限公司 | 一种基于负载感知的Hypervisor资源超分配及动态调整方法及系统 |
CN105824702A (zh) * | 2016-03-22 | 2016-08-03 | 乐视云计算有限公司 | 一种管理程序内存占用量的方法和终端 |
CN109992422A (zh) * | 2019-04-11 | 2019-07-09 | 北京朗镜科技有限责任公司 | 一种面向gpu资源的任务调度方法、装置和系统 |
Non-Patent Citations (4)
Title |
---|
HSIANG-KUO TANG等: "Inserting Placeholder Slack to Improve Run-Time Scheduling of Non-preemptible Real-Time Tasks in Heterogeneous Systems", 《IEEE》 * |
周宽久等: "Direct3D Player性能优化", 《计算机工程与应用》 * |
孙立明等: "国产飞腾1500A处理器的显存管理优化", 《计算机技术与发展》 * |
李亮等: "应用动态生成树的GPU显存数据复用优化", 《西安交通大学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093365A1 (zh) * | 2019-11-15 | 2021-05-20 | 山东英信计算机技术有限公司 | 一种gpu显存管理控制方法及相关装置 |
WO2021203805A1 (zh) * | 2020-04-08 | 2021-10-14 | 苏州浪潮智能科技有限公司 | 一种gpu共享调度、单机多卡方法、系统及装置 |
US11768703B2 (en) | 2020-04-08 | 2023-09-26 | Inspur Suzhou Intelligent Technology Co., Ltd. | GPU-shared dispatching and single-machine multi-card methods, systems, and devices |
CN112957068A (zh) * | 2021-01-29 | 2021-06-15 | 青岛海信医疗设备股份有限公司 | 超声信号处理方法及终端设备 |
CN113259680A (zh) * | 2021-06-25 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、计算机设备和存储介质 |
CN113259680B (zh) * | 2021-06-25 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 视频流解码方法、装置、计算机设备和存储介质 |
CN115292199A (zh) * | 2022-09-22 | 2022-11-04 | 荣耀终端有限公司 | 一种显存泄露的处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021093365A1 (zh) | 2021-05-20 |
CN110930291B (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110930291B (zh) | 一种gpu显存管理控制方法及相关装置 | |
US8521986B2 (en) | Allocating storage memory based on future file size or use estimates | |
CN112346829B (zh) | 一种用于任务调度的方法及设备 | |
TWI604378B (zh) | 用於新應用程式之記憶體管理模型與介面 | |
US20130198730A1 (en) | Update systems responsive to ongoing processing at a storage system | |
CN110059004B (zh) | 一种应用测试的方法、装置、设备和介质 | |
CN106487601B (zh) | 资源监控方法、装置及系统 | |
CN104113576A (zh) | 一种客户端的更新方法及装置 | |
CN108475201B (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
CN115269544A (zh) | 一种数据库集群升级方法、装置、电子设备及存储介质 | |
US20140351550A1 (en) | Memory management apparatus and method for threads of data distribution service middleware | |
CN114706690A (zh) | 一种Kubernetes容器共享GPU方法及系统 | |
CN111901405A (zh) | 一种多节点监控方法、装置、电子设备及存储介质 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
CN111600771A (zh) | 网络资源探测系统、方法 | |
CN108197005B (zh) | Ios应用的底层运行性能监测方法、介质、设备及系统 | |
CN115858499A (zh) | 一种数据库分区处理方法、装置、计算机设备和存储介质 | |
CN114048465A (zh) | 一种堆栈状态检测方法、装置、设备及存储介质 | |
CN108920722B (zh) | 一种参数配置的方法、装置及计算机存储介质 | |
CN113239059A (zh) | 一种分布式锁的切换方法、装置、服务器和存储介质 | |
CN113032207A (zh) | 应用进程的监控方法、装置、电子设备及存储介质 | |
CN110286949A (zh) | 基于物理主机存储装置读写的进程挂起方法及相关设备 | |
CN114911668B (zh) | 一种数据资源监控方法及系统 | |
CN109189664B (zh) | 应用程序的信息采集方法及终端 | |
CN108959499A (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 |