CN114217977B - 资源分配方法、装置、设备以及存储介质 - Google Patents

资源分配方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN114217977B
CN114217977B CN202111590789.7A CN202111590789A CN114217977B CN 114217977 B CN114217977 B CN 114217977B CN 202111590789 A CN202111590789 A CN 202111590789A CN 114217977 B CN114217977 B CN 114217977B
Authority
CN
China
Prior art keywords
video memory
priority
gpu
amount
allocating
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
Application number
CN202111590789.7A
Other languages
English (en)
Other versions
CN114217977A (zh
Inventor
闫爽
黎世勇
李志�
王�华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202111590789.7A priority Critical patent/CN114217977B/zh
Publication of CN114217977A publication Critical patent/CN114217977A/zh
Application granted granted Critical
Publication of CN114217977B publication Critical patent/CN114217977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供了一种资源分配方法、装置、设备以及存储介质,涉及计算机技术领域,尤其涉及计算资源分配领域。具体实现方案为:接收显存申请请求,该显存申请请求中包括需要申请的显存量;根据优先级和需要申请的显存量,确定分配显存资源的方式。本公开实施例可以根据优先级和需要申请的合理分配显存资源,提高图形处理单元(GPU)的利用率,可应用于深度学习、大数据、云计算的GPU资源分配。

Description

资源分配方法、装置、设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及计算资源分配领域。
背景技术
很多领域对图形处理单元(Graphics Processing Unit,GPU)的需求增加。例如,GPU可以应用于深度学习、科学计算、视频处理、图像渲染、大数据分析、云计算等各大领域。GPU业务的迅猛增加,但是GPU价格高昂,并且GPU资源使用率低,使得GPU资源短缺。
发明内容
本公开提供了一种资源分配方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种资源分配方法,包括
接收显存申请请求,该显存申请请求中包括该需要申请的显存量;
根据优先级和该需要申请的显存量,确定分配显存资源的方式。
根据本公开的另一方面,提供了一种资源分配装置,包括
接收模块,用于接收显存申请请求,该显存申请请求中包括该需要申请的显存量;
分配模块,用于根据优先级和该需要申请的显存量,确定分配显存资源的方式。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开任一实施例的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开任一实施例的方法。
本公开实施例可以根据优先级和需要申请的合理分配显存资源,提高图形处理单元(GPU)的利用率,可应用于深度学习、大数据、云计算的GPU资源分配。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开一实施例的资源分配方法的流程示意图;
图2是根据本公开另一实施例的资源分配方法的流程示意图;
图3是根据本公开另一实施例的资源分配方法的流程示意图
图4是根据本公开一实施例的资源分配装置的结构示意框图;
图5是根据本公开另一实施例的资源分配装置的结构示意框图;
图6是根据本公开另一实施例的资源分配装置的结构示意框图;
图7是根据本公开实施例的资源分配方法的应用示例的流程示意图;
图8是用来实现本公开实施例的资源分配方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开一实施例的资源分配方法的流程示意图。该方法可以包括:
S101、接收显存申请请求,该显存申请请求中包括该需要申请的显存量;
S102、根据优先级和该需要申请的显存量,确定分配显存资源的方式。
示例性地,GPU设备例如包括GPU的终端或服务器等设备中可以使用GPU处理各种业务、任务或者服务等,在本公开实施例的示例中,主要以业务进行举例说明,任务或者服务可以参考业务的相关描述。GPU也可称为GPU卡或显卡,可以用于处理图形等显示信息。显存也可以称为显卡内存。在处理信息的过程中,GPU会产生大量的临时数据例如未处理的、正在处理的或已经处理完成的数据,这些临时数据可以通过显存来存放。
GPU可以处理很多场景例如深度学习、科学计算、视频处理、图像渲染、大数据分析、云计算等场景的业务。在各种场景下,不同类型的业务可能具有不同的优先级。例如,某些场景的在线业务具有高优先级,离线业务具有低优先级。类似的,不同类型的任务可能具有不同的优先级。例如,某些场景的在线任务具有高优先级,离线任务具有低优先级。不同类型的服务可能具有不同的优先级。例如,某些场景的在线服务具有高优先级,离线服务具有低优先级。
在本公开实施例中,业务运行需要申请显存资源。设备的显存管理模块例如代理API(Application Programming Interface,应用程序接口)接收到某个业务的显存申请请求后,可以根据该显存申请请求中包括的该业务需要申请的显存量,以及该业务的优先级,确定为该业务分配显存资源的具体方式。在本公开实施例中,可以根据优先级和需要申请的显存量合理分配显存资源,提高GPU的利用率,可应用于深度学习、大数据、云计算的GPU资源分配。
图2是根据本公开另一实施例的资源分配方法的流程示意图。该实施例的资源分配方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,在S102中,根据优先级和该需要申请的显存量,确定分配显存资源的方式,包括:
S201、在该优先级为第一类优先级的情况下,根据该需要申请的显存量与GPU的显存剩余量,确定分配显存资源的方式。
在本公开实施例中,GPU的显存剩余量可以根据GPU的显存总量和GPU的显存使用量来计算。例如,某个GPU的显存总量为8G,显存使用量为3G,则GPU的显存剩余量为5G。
在本公开实施例中,第一类优先级可以为高优先级,也可以包括多个优先级。例如,业务的优先级分为1、2、3、4、5,其中,优先级1和优先级2为第一类优先级。
在本公开实施例中,在业务的优先级为第一类优先级的情况下,可以根据该业务需要申请的显存量与GPU的显存剩余量,确定为该业务分配显存资源的方式。例如,如果第一类优先级为高优先级,代理API可以先根据该高优先级业务需要申请的显存量与GPU的显存剩余量进行计算,确定是为该高优先级业务分配所需的显存资源,还是拒绝为该高优先级业务分配显存资源。如果满足分配条件,代理API可以将该高优先级业务的显存申请请求发至驱动API(DriverAPI),DriverAPI将对应的显存资源分配给该高优先级业务,使该高优先级业务可以正常运行。如果不满足分配条件,代理API可以拒绝为该高优先级业务分配显存资源。
在本公开实施例中,通过比较需要申请的显存量和GPU的显存剩余量,能够合理地分配显存资源,有利于提高GPU利用率,保证第一类优先级的业务的正常运行。
在一种实施方式中,在S201中,根据该需要申请的显存量与GPU的显存剩余量,确定分配显存资源的方式,包括:在该需要申请的显存量小于或等于该GPU的显存剩余量的情况下,分配所需的显存资源。
示例性地,在某个业务需要申请的显存量小于或等于该GPU的显存剩余量的情况下,可以为该业务分配所需的显存资源。
例如,如果某个第一类优先级例如高优先级业务需要申请的显存量为2G,GPU的显存剩余量为5G,也就是说,剩余的显存资源较多,大于该高优先级业务的运行需求。这种情况下,可以为该高优先级业务分配所需的2G显存资源。具体例如,代理API可以将该高优先级业务的显存申请请求发至DriverAPI,DriverAPI将对应的显存即2G分配给该高优先级业务,使该高优先级业务可以正常运行。
再如,如果某个高优先级业务需要申请的显存量为2G,GPU的显存剩余量为2G,也就是说,剩余的显存资源刚好满足该高优先级业务的运行需求,可以为该高优先级业务分配所需的2G显存资源。
在本公开实施例中,如果需要申请的显存量小于或等于该GPU的显存剩余量,可以分配所需的显存资源,能够满足适当的显存需求,保证业务尤其是高优先级业务的正常运行。
在一种实施方式中,在S201中,根据该需要申请的显存量与GPU的显存剩余量,确定分配显存资源的方式,还包括:在该需要申请的显存量大于该GPU的显存剩余量的情况下,拒绝分配显存资源。
示例性地,在某个业务需要申请的显存量大于该GPU的显存剩余量的情况下,可以拒绝为该业务分配显存资源。例如,如果某个高优先级业务需要申请的显存量为2G,GPU的显存剩余量为1G,也就是说,剩余的显存资源较少,不能满足该高优先级业务的运行需求。这种情况下,代理API可以拒绝为该高优先级业务分配显存资源。在本公开实施例中,如果需要申请的显存量大于该GPU的显存剩余量,能够拒绝不适当的显存需求,合理地进行显存资源分配。
图3是根据本公开另一实施例的资源分配方法的流程示意图。该实施例的资源分配方法可以包括上述方法实施例的一个或多个特征。在一种实施方式中,该方法还包括:
S301、获取GPU对应的显存阈值。在本公开实施例中,通过显存阈值可以预留一部分GPU的显存资源。例如,超出显存阈值的资源不允许某些业务使用。显存阈值可以为显存总量的一部分。例如,显存总量为16G,显存阈值的取值可以为1G、2G、3G等。显存阈值的取值根据具体场景和业务的需求灵活设置,本公开实施例不做限定。
在一种实施方式中,在S102中,根据优先级和该需要申请的显存量,确定分配显存资源的方式,还包括:
S302、在该优先级为第二类优先级的情况下,根据该需要申请的显存量、该GPU的显存使用量与该显存阈值的关系,确定分配显存资源的方式。
在本公开实施例中,第二类优先级可以为低优先级,也可以包括多个优先级。例如,业务的优先级分为1、2、3、4、5,其中,优先级1和优先级2为第一类优先级,优先级3、优先级4、优先级5为第二类优先级。
在本公开实施例中,GPU的显存使用量可以表示当前GPU的显存资源被占用的量。在业务的优先级为第二类优先级的情况下,根据该业务需要申请的显存量、该GPU的显存使用量与该显存阈值的关系,确定为该业务的分配显存资源的方式。例如,如果第二类优先级为低优先级,代理API可以先根据该低优先级业务需要申请的显存量、GPU的显存使用量以及显存阈值进行计算,确定是为该低优先级业务分配所需的显存资源,还是拒绝为该低优先级业务分配显存资源。如果满足分配条件,代理API可以将该低优先级业务的显存申请请求发至驱动API(DriverAPI),DriverAPI将对应的显存资源分配给该低优先级业务,使该低优先级业务可以正常运行。如果不满足分配条件,代理API可以拒绝为该低优先级业务分配显存资源。
在本公开实施例中,通过比较需要申请的显存量、GPU的显存使用量,能够合理地分配显存资源,有利于提高GPU利用率,保证第二类优先级的业务的正常运行。
在一种实施方式中,在S302中,根据该需要申请的显存量、该GPU的显存使用量与该显存阈值的关系,确定分配显存资源的方式,包括:在该需要申请的显存量与该GPU的显存使用量之和小于该显存阈值的情况下,分配所需的显存资源。
示例性地,在该某个业务需要申请的显存量与该GPU的显存使用量之和小于该显存阈值的情况下,为该业务分配所需的显存资源。
例如,如果某个第二类优先级例如低优先级业务需要申请的显存量为2G,GPU的显存使用量为3G,显存阈值为7G,也就是说,需要申请的显存量和显存使用量的和与显存阈值还有较大差距。这种情况下,还有能够分配给低优先级业务的显存资源,能够满足该低优先级业务的运行需求,可以为该低优先级业务分配所需的2G显存资源。具体例如,代理API可以将该低优先级业务的显存申请请求发至DriverAPI,DriverAPI将对应的显存即2G分配给该低优先级业务,使该低优先级业务可以正常运行。
在本公开实施例中,如果该需要申请的显存量与该GPU的显存使用量之和小于或等于该显存阈值,可以分配所需的显存资源,能够满足适当的显存需求,保证业务的正常运行。
在一种实施方式中,在S302中,根据该需要申请的显存量、该GPU的显存使用量与该显存阈值的关系,确定分配显存资源的方式,还包括:在该需要申请的显存量与该GPU的显存使用量之和大于或等于该显存阈值的情况下,拒绝分配显存资源。
示例性地,在某个业务需要申请的显存量与该GPU的显存使用量之和大于或等于该显存阈值的情况下,即该需要申请的显存量与该GPU的显存使用量之和已达到该显存阈值,可以拒绝为该业务分配显存资源。
例如,如果某个低优先级业务需要申请的显存量为2G,GPU的显存使用量为5.5G,,显存阈值为7G。也就是说,该低优先级业务需要申请的显存量和显存使用量的和超出了显存阈值,不能满足该低优先级业务的运行需求。这种情况下,代理API可以拒绝为该低优先级业务分配显存资源。
再如,如果某个低优先级业务需要申请的显存量为2G,GPU的显存使用量为5G,显存阈值为7G,也就是说,需要申请的显存量和显存使用量的已经等于显存阈值,即将超出显存阈值。这种情况下,代理API可以拒绝为该低优先级业务分配显存资源。
在一种实施方式中,如果某个低优先级业务需要申请的显存量与该GPU的显存使用量之和等于该显存阈值,也可以为该低优先级业务分配所需的显存资源。如果某个低优先级业务需要申请的显存量与该GPU的显存使用量之和超出显存阈值,再拒绝分配。
本公开实施例中不限定显存阈值的具体大小,可以根据实际应用场景的需求灵活选择。
在本公开实施例中,如果需要申请的显存量与该GPU的显存使用量之和大于该显存阈值,能够拒绝不适当的显存需求,合理地进行显存资源分配。
在一种实施方式中,该第二类优先级为低优先级,该方法还包括:
S303、在拒绝分配显存资源的情况下,释放发送该显存申请请求的业务运行所占用的显存资源。
示例性地,在GPU的显存使用量已达到显存阈值的情况下,第二类优先级例如低优先级业务集合中谁先申请显存谁先被拒绝,直到低优先级业务需要申请的显存量加上GPU的显存使用量小于显存阈值,低优先级业务的显存申请请求才被通过。这样,通过释放申请显存的低优先级业务的显存资源,有利于保证后续的业务能够申请到显存资源,通过预先拦截,防止出现的高优先级所需的显存资源不足,有利于保证高优先级业务的正常运行。在高低优先级混布的情况下,可以提高GPU的利用率。
图4是根据本公开一实施例的资源分配装置的结构示意框图。该设备可以包括:
接收模块401,用于接收显存申请请求,该显存申请请求中包括需要申请的显存量;
分配模块402,用于根据优先级和该需要申请的显存量,确定分配显存资源的方式。
在本公开实施例中,可以根据优先级和需要申请的显存量合理分配显存资源,提高GPU的利用率。
图5是根据本公开另一实施例的资源分配装置的结构示意框图。该实施例的资源分配装置可以包括上述装置实施例的一个或多个特征。在一种实施方式中,该分配模块402还包括:
第一分配子模块501,用于在该优先级为第一类优先级的情况下,根据该需要申请的显存量与GPU的显存剩余量,确定分配显存资源的方式。
在本公开实施例中,第一分配子模块通过比较需要申请的显存量和GPU的显存剩余量,能够合理地分配显存资源,有利于提高GPU利用率,保证第一类优先级的业务的正常运行。
在一种实施方式中,该第一分配子模块501,具体用于在该需要申请的显存量小于或等于该GPU的显存剩余量的情况下,分配所需的显存资源。
在一种实施方式中,该第一分配子模块501,还具体用于在该需要申请的显存量大于该GPU的显存剩余量的情况下,拒绝分配显存资源。
图6是根据本公开另一实施例的资源分配装置的结构示意框图。该实施例的资源分配装置可以包括上述装置实施例的一个或多个特征。在一种实施方式中,还包括:阈值获取模块601,用于获取GPU对应的显存阈值。在本公开实施例中,通过显存阈值可以预留一部分GPU的显存资源。
在一种实施方式中,该分配模块402还包括:
第二分配子模块502,具体用于在该优先级为第二类优先级的情况下,根据该需要申请的显存量、该GPU的显存使用量与该显存阈值的关系,确定分配显存资源的方式。
在本公开实施例中,第二分配子模块通过比较需要申请的显存量、GPU的显存使用量,能够合理地分配显存资源,有利于提高GPU利用率,保证第二类优先级的业务的正常运行。
在一种实施方式中,该第二分配子模块502,具体用于在该需要申请的显存量与该GPU的显存使用量之和小于该显存阈值的情况下,分配所需的显存资源。
在一种实施方式中,该第二分配子模块502,还具体用于在该需要申请的显存量与该GPU的显存使用量之和大于或等于该显存阈值的情况下,拒绝分配显存资源。
在一种实施方式中,该第二类优先级为低优先级,该装置还包括:
资源释放模块602,用于在拒绝分配显存资源的情况下,释放发送该显存申请请求的业务运行所占用的显存资源。
在本公开实施例中,资源释放模块通过释放申请显存的低优先级业务的显存资源,有利于保证后续的业务能够申请到显存资源,通过预先拦截防止出现的高优先级所需的显存资源不足,有利于保证高优先级业务的正常运行。在高低优先级混布的情况下,可以提高GPU的利用率。
本公开实施例的资源分配装置的各模块的具体功能和示例,可以参见上述资源分配方法实施例中的相关描述,在此不再赘述。
在一种具体的应用场景中,基于集群环境,从业务层分析,类似CPU在线业务,GPU在线业务(也可以替换服务或任务等)也会根据业务的流量峰值申请GPU限额(quota),保留一定的冗余资源。但因为在线业务的流量高低峰特征,大多数时间内,资源都是空闲的,导致GPU的平均利用率很低,集群长期处于高分配率与低利用率并存的现象。且因为在线业务为高优先级的业务,当在线业务需要使用资源时,需要马上获取到足够的资源,否则可能会影响业务收益。而多个相同优先级的业务进行混布,会出现资源争抢,导致业务性能受损。
在GPU设备上,业务对显存资源的使用往往有着长期占有的特点,尤其是计算密集型的业务。因此在高优先级GPU业务和低优先级GPU业务混布时,如果高优先级GPU业务需要显存资源时,低优先级GPU业务对显存资源的释放不及时,可能会对高优先级GPU业务产生影响,可能导致业务无法正常运行。
例如,若GPU设备上同时有高优先级业务和低优先级业务在运行,若高优先级业务申请显存但是资源不够,而且低优先级业务的资源释放不够及时,导致高优先级业务因无显存资源而无法正常运行。
本公开实施例的资源分配方法是一种对低优先级任务集合的显存限制的方法,可以提高高低优先级GPU业务混布效率。该方法可以支持高低优先级业务混布在同一张GPU卡上,保证高优业务混布时,高优先级的任务有足够的显存资源使用,提高高优先级任务的稳定性。
本公开实施例的资源分配方法可以用于云计算平台,例如,基础架构即服务(Infrastructure-as-a-Service,IaaS)、平台即服务(Platform as a Service,PaaS)等平台。本公开实施例的资源分配方法的上述应用场景仅是示例而非限制,具体可以根据实际需求灵活使用本公开实施例的资源分配方法。
首先,可以为每张GPU卡设置一个显存大框阈值。显存大框阈值可以对低优先级业务的集合做限制,因此称为显存大框阈值。通过设置显存大框阈值可以为高优先级GPU业务预留一部分GPU显存资源,具体的预留方式包括:在低优先级GPU业务申请显存时,判断GPU的整卡显存使用量和显存大框阈值的关系,如果GPU的整卡显存使用量大于显存大框阈值(以下简称显存阈值),限制低优先级GPU业务的显存申请。如图7所示,通过显存阈值为高优先级业务预留显存资源的具体流程可以包括:
S701.为每张GPU卡设置一个显存阈值。例如,GPU卡上有8G显存,为高优先级业务预留1G的显存,阈值为7G。因为高优先级业务有时会有突发的资源需求,需要为其设置显存冗余,不然会因为资源不够导致高优先级业务无法正常运行。阈值是预先配置的,且可以动态调整。GPU卡上运行有多个高优先级业务和多个低优先级业务,即高低优混布。例如高优先级的在线业务和低优先级的离线业务混布。
S702.业务发出显存申请请求至代理API。
代理API可以提前做一些判断操作,包括:是否为高优先级或低优先级的判断、与显存申请量相关的计算结果比较等。
S703.例如代理API先进行优先级判断。如果是低优先级可以执行步骤S704,如果是高优先级可以执行步骤S707。
S704.如果在S703中代理API判断该业务的优先级为低,代理API可以进一步判断GPU卡的整体显存使用量是否达到显存阈值,例如大于或等于显存阈值。
S705.如果GPU卡的整体显存使用量达到显存阈值,且代理API判断该业务的优先级为低,则代理API拒绝会该低优先级业务的显存申请请求。该低优先级业务因无可用显存而无法正常运行。若该低优先级业务在之前是正常运行,则可以因为被拒绝而释放掉其占用的显存资源。例如,当GPU整卡的显存使用量已达到阈值时,低优先级业务集合中谁先申请显存谁先被拒绝,直到低优先级业务的申请量加上GPU整卡使用量小于阈值时该申请才被通过。
S706.如果GPU整卡的显存使用量低于显存阈值,之后代理API再收到一个低优先级业务的显存申请请求,若该申请的显存量与GPU整卡的显存使用量之和小于阈值,则该低优先级业务的显存申请请求成功。
例如,如果显存申请请求成功,代理API将显存申请请求发至DriverAPI,DriverAPI将对应的显存资源分配给该低优先级业务,使低优先级业务可以正常运行;若低优先级业务申请的显存量与GPU整卡的显存使用量之和大于阈值,代理API拒绝该低优先级业务的显存申请请求。
S707.如果在S703中代理API判断该业务的优先级为高,代理API可以进一步判断GPU整卡的剩余显存资源是否大于该显存申请量。
S708.若GPU整卡的剩余显存资源大于或等于该显存申请量,代理API将显存申请请求发至DriverAPI,DriverAPI将对应的显存资源分配给该高优先级业务,使高优先级业务可以正常运行。
S709.若GPU整卡的剩余显存资源小于该显存申请量,代理API拒绝该高优先级业务的显存申请请求。
在本公开实施例中,DriverAPI是GPU的一个驱动库,会通过向GPU发送信息指示GPU进行对应的处理。DriverAPI扮演沟通的角色,可以将GPU的功能告诉电脑系统,并且也可以将电脑系统的指令传达给GPU,指示GPU开始工作。
根据上述流程可知,对于低优先级业务,代理API可以判断低优先级任务申请的显存量与GPU整卡的显存使用量之和大于阈值。对于高优先级业务,代理API可以判断GPU整卡的剩余显存资源是否大于该显存申请量。具体例如,GPU整卡的显存总共8G,阈值7G,显存使用量是6G,剩余2G。如果高优先级申请的显存量是1.5G,小于剩余2G,可以通过显存申请请求;代理API将显存申请请求发至DriverAPI。如果低优先级申请的显存量是1.5G,但是1.5+6=7.5G大于阈值7G,则拒绝显存申请请求。
采用本申请实施例的方法,在高低优先级业务混布时,确保高优先级业务的预留显存不被低优先级业务使用,有效保证了高优先级业务的稳定性。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如一种资源分配方法。例如,在一些实施例中,一种资源分配方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的一种资源分配方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行一种资源分配方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (14)

1.一种资源分配方法,包括:
接收显存申请请求,所述显存申请请求中包括需要申请的显存量;
根据优先级和所述需要申请的显存量,确定分配显存资源的方式;
获取图形处理单元GPU对应的显存阈值,
其中,所述根据优先级和所述需要申请的显存量,确定分配显存资源的方式,包括:
在所述优先级为高优先级的情况下,若所述需要申请的显存量小于或等于所述GPU的显存剩余量,则分配所需的显存资源;
在所述优先级为低优先级的情况下,若所述需要申请的显存量与所述GPU的显存使用量之和小于所述显存阈值,则分配所需的显存资源。
2.根据权利要求1所述的方法,其中,所述根据优先级和所述需要申请的显存量,确定分配显存资源的方式,还包括:
在所述优先级为高优先级的情况下,根据所述GPU的显存总量和所述GPU的显存使用量,确定所述GPU的显存剩余量。
3.根据权利要求1或2所述的方法,其中,所述根据优先级和所述需要申请的显存量,确定分配显存资源的方式,还包括:
在所述优先级为高优先级的情况下,若所述需要申请的显存量大于所述GPU的显存剩余量,则拒绝分配显存资源。
4.根据权利要求1所述的方法,其中,所述根据优先级和所述需要申请的显存量,确定分配显存资源的方式,还包括:
在所述优先级为低优先级的情况下,确定是为该低优先级业务分配所需的显存资源,还是拒绝为该低优先级业务分配显存资源。
5.根据权利要求1或4所述的方法,其中,所述根据优先级和所述需要申请的显存量,确定分配显存资源的方式,还包括:
在所述优先级为低优先级的情况下,若所述需要申请的显存量与所述GPU的显存使用量之和大于或等于所述显存阈值,则拒绝分配显存资源。
6.根据权利要求5所述的方法,所述方法还包括:
在拒绝分配显存资源的情况下,释放发送所述显存申请请求的业务运行所占用的显存资源。
7.一种资源分配装置,包括:
接收模块,用于接收显存申请请求,所述显存申请请求中包括需要申请的显存量;
分配模块,用于根据优先级和所述需要申请的显存量,确定分配显存资源的方式;和
阈值获取模块,用于获取图形处理单元GPU对应的显存阈值,
其中,所述分配模块还包括:
第一分配子模块,用于在所述优先级为高优先级的情况下,若所述需要申请的显存量小于或等于所述GPU的显存剩余量,则分配所需的显存资源;
第二分配子模块,用于在所述优先级为低优先级的情况下,若所述需要申请的显存量与所述GPU的显存使用量之和小于所述显存阈值,则分配所需的显存资源。
8.根据权利要求7所述的装置,其中,所述第一分配子模块,还用于在所述优先级为高优先级的情况下,根据所述GPU的显存总量和所述GPU的显存使用量,确定所述GPU的显存剩余量。
9.根据权利要求7或8所述的装置,其中,所述第一分配子模块,还具体用于在所述优先级为高优先级的情况下,若所述需要申请的显存量大于所述GPU的显存剩余量,则拒绝分配显存资源。
10.根据权利要求7所述的装置,其中,所述第二分配子模块,还具体用于在所述优先级为低优先级的情况下,确定是为该低优先级业务分配所需的显存资源,还是拒绝为该低优先级业务分配显存资源。
11.根据权利要求7或10所述的装置,其中,所述第二分配子模块,还具体用于在所述优先级为低优先级的情况下,若所述需要申请的显存量与所述GPU的显存使用量之和大于或等于所述显存阈值,则拒绝分配显存资源。
12.根据权利要求11所述的装置,所述装置还包括:
资源释放模块,用于在拒绝分配显存资源的情况下,释放发送所述显存申请请求的业务运行所占用的显存资源。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
CN202111590789.7A 2021-12-23 2021-12-23 资源分配方法、装置、设备以及存储介质 Active CN114217977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111590789.7A CN114217977B (zh) 2021-12-23 2021-12-23 资源分配方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111590789.7A CN114217977B (zh) 2021-12-23 2021-12-23 资源分配方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN114217977A CN114217977A (zh) 2022-03-22
CN114217977B true CN114217977B (zh) 2023-01-10

Family

ID=80705396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111590789.7A Active CN114217977B (zh) 2021-12-23 2021-12-23 资源分配方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN114217977B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579319B (zh) * 2022-05-07 2022-07-19 北京象帝先计算技术有限公司 显存管理方法、显存管理模块、soc及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015204026A (ja) * 2014-04-15 2015-11-16 日本電信電話株式会社 資源使用許可システム及び資源使用許可方法
CN111694646A (zh) * 2020-05-29 2020-09-22 北京百度网讯科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质
CN112948079A (zh) * 2021-02-18 2021-06-11 北京百度网讯科技有限公司 任务调度方法、装置、设备和计算机存储介质
CN113127192A (zh) * 2021-03-12 2021-07-16 山东英信计算机技术有限公司 一种多个服务共享同一个gpu的方法、系统、设备及介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015026132A (ja) * 2013-07-24 2015-02-05 日本電信電話株式会社 リソース制御装置及び方法及びプログラム
FR3103596B1 (fr) * 2019-11-26 2021-11-19 Thales Sa Procede d'affectation de ressources en reponse a des requetes en fonction de leur priorite, programme d'ordinateur, bloc de controle d'affectation et systeme informatique associes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015204026A (ja) * 2014-04-15 2015-11-16 日本電信電話株式会社 資源使用許可システム及び資源使用許可方法
CN111694646A (zh) * 2020-05-29 2020-09-22 北京百度网讯科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质
CN112948079A (zh) * 2021-02-18 2021-06-11 北京百度网讯科技有限公司 任务调度方法、装置、设备和计算机存储介质
CN113127192A (zh) * 2021-03-12 2021-07-16 山东英信计算机技术有限公司 一种多个服务共享同一个gpu的方法、系统、设备及介质

Also Published As

Publication number Publication date
CN114217977A (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
US10772115B2 (en) Resource scheduling method and server
CN112269641B (zh) 一种调度方法、装置、电子设备及存储介质
CN107832143B (zh) 一种物理机资源的处理方法和装置
CN111966500A (zh) 资源调度方法、装置、电子设备及存储介质
CN112559182A (zh) 资源分配方法、装置、设备及存储介质
CN113849312B (zh) 数据处理任务的分配方法、装置、电子设备及存储介质
CN109766172B (zh) 一种异步任务调度方法以及装置
CN112783659B (zh) 一种资源分配方法、装置、计算机设备及存储介质
CN112905342B (zh) 资源调度方法、装置、设备及计算机可读存储介质
CN114356547B (zh) 基于处理器虚拟化环境的低优阻塞方法及装置
CN112749002A (zh) 一种集群资源动态管理的方法和装置
CN112887228A (zh) 云资源管理方法、装置、电子设备及计算机可读存储介质
CN114155026A (zh) 一种资源分配方法、装置、服务器及存储介质
CN114217977B (zh) 资源分配方法、装置、设备以及存储介质
CN114385353A (zh) 资源调度方法及装置、电子设备、存储介质
CN113986497B (zh) 基于多租户技术的队列调度方法、装置及系统
CN115904761A (zh) 片上系统、车辆及视频处理单元虚拟化方法
CN115617511A (zh) 资源数据处理的方法、装置、电子设备和存储介质
CN114116173A (zh) 动态调整任务分配的方法、装置和系统
CN117112222A (zh) 一种请求处理方法、装置、电子设备及存储介质
CN112527509A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN115328612A (zh) 资源分配方法、装置、设备以及存储介质
CN114265692A (zh) 服务调度方法、装置、设备以及存储介质
CN113918282A (zh) 一种数据库访问方法、装置、电子设备及计算机可读介质
CN112884382A (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