显存的分配方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:31576821 阅读:12 留言:0更新日期:2021-12-25 11:18
本公开提供了一种显存的分配方法、装置、电子设备及可读存储介质,涉及计算机领域,尤其涉及芯片技术领域。具体实现方案为:响应于检测到目标进程的显存分配请求,从共享内存中获取显存占用信息;基于显存占用信息为目标进程分配显存资源。基于本方案,能够根据显存占用信息对显存资源进行合理分配,避免造成不同进程之间的相互影响。进程之间的相互影响。进程之间的相互影响。

【技术实现步骤摘要】
显存的分配方法、装置、电子设备及可读存储介质


[0001]本公开涉及计算机
,尤其涉及芯片
,具体而言,本公开涉及一种显存的分配方法、装置、电子设备及可读存储介质。

技术介绍

[0002]图形处理器(Graphic Processing Unit,GPU),是专门为处理图形任务而产生的芯片。GPU因其具有强大的计算能力,常被用于深度学习模型的开发调试以及部署使用。
[0003]为了提升GPU的利用率,一个GPU上可以运行多个进程,但如果不能对多个进程所使用的显存资源进行合理分配,就可能会造成不同进程之间的相互影响,因此,如何对显存资源进行合理分配成为了一个重要问题。

技术实现思路

[0004]本公开为了解决上述缺陷中的至少一项,提供了一种显存的分配方法、装置、电子设备及可读存储介质。
[0005]根据本公开的第一方面,提供了一种显存的分配方法,该方法包括:
[0006]响应于检测到目标进程的显存分配请求,从共享内存中获取显存占用信息;
[0007]基于显存占用信息为目标进程分配显存资源。
[0008]根据本公开的第二方面,提供了一种模型的部署方法,该方法包括:
[0009]确定目标进程的显存资源,目标进程用于部署目标模型,显存资源是根据上述显存的分配方法确定的;
[0010]基于显存资源部署目标模型。
[0011]根据本公开的第三方面,提供了一种显存的分配装置,该装置包括:
[0012]显存占用信息获取模块,用于响应于检测到目标进程的显存分配请求,从共享内存中获取显存占用信息;
[0013]显存分配模块,用于基于显存占用信息为目标进程分配显存资源。
[0014]根据本公开的第四方面,提供了一种模型的部署装置,该装置包括:
[0015]显存资源确定模块,用于确定目标进程的显存资源,目标进程用于部署目标模型,显存资源是根据上述显存的分配方法确定的;
[0016]模型部署模块,用于基于显存资源部署目标模型。
[0017]根据本公开的第五方面,提供了一种电子设备,该电子设备包括:
[0018]至少一个处理器;以及
[0019]与上述至少一个处理器通信连接的存储器;其中,
[0020]存储器存储有可被上述至少一个处理器执行的指令,指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述显存的分配方法。
[0021]根据本公开的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使计算机执行上述显存的分配方法。
[0022]根据本公开的第七方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述显存的分配方法。
[0023]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0024]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0025]图1是本公开实施例提供的一种显存的分配方法的流程示意图;
[0026]图2是本公开实施例提供的主机的结构系统图;
[0027]图3是本公开实施例提供的共享内存的结构系统图;
[0028]图4是本公开实施例提供的显存的分配方法的一种具体实施方式的流程示意图;
[0029]图5是本公开实施例提供的一种模型的部署方法的流程示意图;
[0030]图6是本公开实施例提供的一种模型的部署方式的结构示意图
[0031]图7是根据本公开提供的一种显存的分配装置的结构示意图;
[0032]图8是根据本公开提供的一种模型的部署装置的结构示意图;
[0033]图9是用来实现本公开实施例的显存的分配方法的电子设备的框图。
具体实施方式
[0034]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0035]目前,深度学习模型的开发调试以及部署使用中,GPU通常是独占的,有可能会导致GPU的利用率较低。
[0036]在深度学习模型的开发调试阶段,由于深度学习模型的模型开发调试通常是一个不断迭代的过程,迭代过程中涉及到开发人员对模型参数的反复修改调整,这使得开发调试过程中GPU大部分时间会处于低负载状态,导致GPU的利用率较低。
[0037]在深度学习模型的部署使用阶段中,若深度学习模型的调用量较少,也会造成GPU大部分时间处于低负载状态,导致GPU的利用率较低。
[0038]为了提升GPU的利用率,可以采用在一个GPU上运行多个进程的方式,但如果不能对多个进程所使用的显存资源进行合理分配,就可能会造成不同进程之间的相互影响,因此,如何对显存资源进行合理分配成为了一个重要问题。
[0039]本申请实施例提供的显存的分配方法、装置、电子设备及可读存储介质,旨在解决现有技术的如上技术问题中的至少一个。
[0040]图1示出了本公开实施例提供的一种显存的分配方法的流程示意图,如图1中所示,该方法主要可以包括:
[0041]步骤S110:响应于检测到目标进程的显存分配请求,从共享内存中获取显存占用信息;
[0042]步骤S120:基于显存占用信息为目标进程分配显存资源。
[0043]本公开实施例提供方法可以应用于搭载GPU的主机,共享内存为主机上的一块内存,可以用于在各进程之间传递消息。本方案中的共享内存可以用于在各进程之间传递显存占用信息。
[0044]本公开实施例中,显存占用信息可以包括但是不限于进程上下文信息,进程上下文信息中保存进程的诸多详细信息。
[0045]本公开实施例中,根据显存占用信息能够获知GPU的显存资源使用情况,根据显存占用信息为进程分配显存资源,能够避免不同进程所使用显存资源出现冲突,实现对显存资源的合理分配。
[0046]本公开实施例提供的方法,通过响应于检测到目标进程的显存分配请求,从共享内存中获取显存占用信息,从而基于显存占用信息为目标进程分配显存资源。基于本方案,能够根据显存占用信息对显存资源进行合理分配,避免造成不同进程之间的相互影响。
[0047]本公开实施例中,通过共享内存保存显存占用信息,使得在为目标进程分配显存时,能够快速获取显存占用信息,相较于采用其他方式获取显存占用信息更为快速便捷。
[0048]本公开实施例中,通过为多个进程合理分配显存资源,实现了对多个进程的合理管控,使得一个GPU能够支持多进程的运行,由于多进程的存在,能够避免GPU长时间处于低负载状态,提升GPU的利用率。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种显存的分配方法,包括:响应于检测到目标进程的显存分配请求,从共享内存中获取所述显存占用信息;基于所述显存占用信息为所述目标进程分配显存资源。2.根据权利要求1所述的方法,其中,所述共享内存被设置有读锁,所述共享内存中获取所述显存占用信息,包括:确定所述共享内存的读锁是否处于解锁状态;响应于所述共享内存的读锁处于解锁状态,从共享内存中获取所述显存占用信息。3.根据权利要求1或2所述的方法,在所述基于所述显存占用信息为所述目标进程分配显存资源之后,所述方法还包括:将所述目标进程的显存占用信息写入所述共享内存。4.根据权利要求3所述的方法,所述共享内存被设置有写锁,所述将所述目标进程的显存占用信息写入所述共享内存,包括:确定所述共享内存的写锁是否处于解锁状态;响应于所述共享内存的写锁处于解锁状态,从将所述目标进程的显存占用信息写入所述共享内存。5.根据权利要求1

4中任一项所述的方法,还包括:创建虚拟显存资源;所述基于所述显存占用信息为所述目标进程分配显存资源,包括:基于所述显存占用信息为所述目标进程分配虚拟显存资源。6.根据权利要求5所述的方法,所述创建虚拟显存资源,包括:基于物理内存资源以及物理显存资源,创建虚拟显存资源。7.根据权利要求1

6中任一项所述的方法,所述基于所述显存占用信息为所述目标进程分配显存资源,包括:基于所述显存占用信息确定当前的显存使用量;响应于所述显存使用量不大于预设阈值,基于所述显存占用信息为所述目标进程分配显存资源。8.根据权利要求1

7中任一项所述的方法,检测目标进程的显存分配请求,包括:响应于检测到目标进程通过调用统一计算设备架构CUDA驱动发起的显存分配请求,劫持所述显存分配请求。9.根据权利要求1

7中任一项所述的方法,还包括:响应于接收到对目标显存占用信息的查询请求,从所述共享内存中查询所述目标显存占用信息。10.一种模型的部署方法,包括:确定目标进程的显存资源,所述目标进程用于部署目标模型,所述显存资源是基于权利要求1

9中任一项所述的方法确定的;基于所述显存资源部署所述目标模型。11.根据权利要...

【专利技术属性】
技术研发人员:李子恒吴志全于佃海杨嘉义陈凯
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1