CN115063282A - 一种gpu资源调度方法、装置、设备及存储介质 - Google Patents

一种gpu资源调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115063282A
CN115063282A CN202210621765.1A CN202210621765A CN115063282A CN 115063282 A CN115063282 A CN 115063282A CN 202210621765 A CN202210621765 A CN 202210621765A CN 115063282 A CN115063282 A CN 115063282A
Authority
CN
China
Prior art keywords
resource
gpu
application
application program
target gpu
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.)
Pending
Application number
CN202210621765.1A
Other languages
English (en)
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202210621765.1A priority Critical patent/CN115063282A/zh
Publication of CN115063282A publication Critical patent/CN115063282A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种GPU资源调度方法、装置、设备及存储介质,涉及计算机技术领域,可以充分利用GPU的资源且避免GPU资源冲突。该方法包括:获取应用程序的应用资源描述,确定满足应用资源描述的目标GPU;应用资源描述用于指示应用程序的GPU能力需求;获取用于启动应用程序的启动应用请求,启动应用程序;在获取到应用程序的资源请求时,若确定目标GPU的当前可用资源满足应用资源描述指示的资源,向应用程序分配目标GPU中应用资源描述指示的资源;或者,在获取到应用程序的资源请求后,在应用程序使用目标GPU资源的过程中,控制应用程序使用目标GPU资源小于或等于应用资源描述指示的资源。本申请可用于GPU资源调度的过程中。

Description

一种GPU资源调度方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种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控制应用程序使用目标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的可用资源满足的情况下,才允许应用程序使用目标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资源的过程中,获取应用程序对目标GPU的实时算力利用率;在实时算力利用率大于额定算力利用率的情况下,延迟执行应用程序使用目标GPU算力的指令,直至获取的实时算力利用率小于或等于额定算力利用率。
又一种可能的实现方式中,创建模块具体用于,函数劫持目标GPU的用于调用资源的底层功能函数,得到虚拟GPU。
又一种可能的实现方式中,算力包括下述一项或多项:计算算力、编码算力、解码算力。
第三方面,本申请提供一种服务器,该服务器包括:处理器和存储器;存储器存储有处理器可执行的指令;处理器被配置为执行指令时,使得服务器实现上述第一方面的方法。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括:计算机软件指令;当计算机软件指令在电子设备中运行时,使得电子设备实现上述第一方面的方法。
第五方面,本申请提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面描述的相关方法的步骤,以实现上述第一方面的方法。
上述第二方面至第五方面的有益效果可以参考第一方面的对应描述,不再赘述。
附图说明
图1为本申请提供的一种GPU资源调度方法的应用环境示意图;
图2为本申请提供的一种GPU资源调度装置的架构示意图;
图3为本申请提供的一种本机GPU资源管理模块的组成示意图;
图4为本申请提供的一种GPU资源调度方法的流程示意图;
图5为本申请提供的另一种GPU资源调度方法的流程示意图;
图6为本申请提供的一种分配显存的流程示意图;
图7为本申请提供的一种释放显存的流程示意图;
图8为本申请提供的一种算力控制的流程示意图;
图9为本申请提供的一种GPU资源调度装置的组成示意图;
图10为本申请提供的一种服务器的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
如何充分利用GPU的计算能力来解决复杂的运算问题,寻求合适的GPU资源调度方案,已经成为当今计算机技术领域的研究热点之一。目前的GPU资源调度方案包括独占模式。独占模式即一个应用程序完全占用一个GPU,这种模式下GPU的性能不能得到充分的发挥,存在GPU资源浪费,不能有效利用的问题。因此,GPU资源调度方案还包括共享模式,共享模式指的是多个应用程序共用一个GPU,虽然一定程度上可用解决GPU资源浪费,不能有效利用的问题。但是这种模式下存在多个应用程序相互抢占资源、异常相互传播、以及GPU运行不稳定的问题。
综上所述,如何在有效利用GPU资源的前提下,保证应用程序不会抢占资源,GPU可以稳定运行,是一个亟待解决的问题。
基于此,本申请实施例提供一种GPU资源调度方法,根据应用资源描述,控制应用程序使用GPU的资源,避免了共享模式下资源抢占的问题,提高了GPU的运行稳定性。
本申请提供的GPU资源调度方法,可以应用于如图1所示的应用环境中。如图1所示,该应用环境可以包括:中心装置101和多个子服务器102。中心装置101和多个子服务器102相连接。
其中,中心装置101可以应用于服务器中。其中,这里所说的服务器可以是多个服务器组成的服务器集群、或者单个服务器、又或者计算机。中心装置101具体可以是服务器中的处理器或处理芯片等。本申请实施例对上述服务器的具体设备形态不作限制。图1中以中心装置101应用于单个服务器为例示出。
子服务器102可以应用于服务器中,每个子服务器102中可以设置有一个或多个GPU。多个子服务器102与中心装置101构成服务器集群。每个子服务器102可以称为一个节点,在进行GPU资源调度时,用户可以通过中心装置101查询合适的目标节点,以使得用户使用该目标节点中GPU的资源。本申请实施例对子服务器102的具体形态,个数不作限制,图1中以子服务器102的个数为4个为例示出。
图2为本申请实施例提供的一种GPU资源调度装置(或称为资源调度装置)的架构示意图。该资源调度装置可以部署于上述图1的应用环境中所示的任一服务器。如图2所示,该架构包括四个部分,从上到下分别为应用层,资源层,虚拟化层和硬件层。
应用层:用户可以通过应用层的机器学习平台(例如tensorflow应用和pytorch应用),根据自身的实际需求,搭配各种资源的比例,生成用于指示应用程序的GPU能力需求的应用资源描述,并下发到资源层。其中,GPU能力需求是指应用程序对算力、显存等能力的需求。
资源层:按照应用资源描述,在预先建立的GPU资源池中选取合适的GPU,并在虚拟化层创建虚拟GPU(virtual GPU,vGPU),以及启动应用。虚拟GPU是指经过劫持的功能函数,其本质为在底层功能函数的基础上,叠加了新的功能。该虚拟GPU用于对应用程序使用GPU资源的过程进行控制,具体控制过程和创建虚拟GPU的过程参见下述实施例,在此不作具体赘述。
虚拟化层:运行应用程序,按照应用程序的应用资源描述,实现访问GPU资源时不同应用程序间的资源隔离,即应用程序互不抢占资源。
硬件层:包括GPU硬件以及驱动,为应用程序的运行提供资源。
其中,应用层和资源层可以集成于图1中的中心装置101中,虚拟化层和硬件层可以集成于图1中的每一个子服务器102中。
资源层包括集群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状态、可用性等,用于集群GPU的运维;通过通信通道,与GPU虚拟化模块提供必要的信息,如实时GPU利用率(或称为实时算力利用率)等。其中,如图3所示,本机GPU资源管理模块包括以下四个模块:通信模块、信息采集模块、资源管理模块和接口模块(或称为rest服务模块)。通信模块,用于与GPU虚拟化模块通信。通信内容包括操作命令(如vGPU的申请使用和释放)以及实时性数据通信(如进程的算力利用率等)。信息采集模块,用于收集GPU进行信息与状态和GPU硬件信息与状态,并将GPU信息发送至其他模块(如通信模块、资源管理模块和接口模块)。资源管理模块,接收来自集群GPU资源管理模块的配置,将GPU资源按照一定的策略分配管理。接口模块,提供对外接口,例如与集群GPU资源管理模块连接,接收下发的vGPU的相关操作指令发送至资源管理模块。
图4为本申请实施例提供的一种GPU资源调度方法的流程示意图。示例性的,本申请提供的GPU资源调度方法,可以应用于图1所示的应用环境中,以及图2所示的系统架构中。
本申请提供的GPU资源调度方法,主要通过中心化服务器中的集群GPU资源管理模块实现集群GPU资源的集中调度。因此,集群GPU资源管理模块事先收集与中心化服务器连接的所有子服务器(或称为节点)中各个GPU的资源信息进行整合,以供后续的GPU资源调度方法的执行。
如前所述,每个子服务器的本机GPU资源管理模块中包括信息采集模块,用于收集GPU的硬件信息。集群GPU资源管理模块可以向各节点中的本机GPU资源管理模块获取GPU资源信息,包括GPU编号、GPU类型、功率、驱动版本、显存大小、算力大小等信息。集群GPU资源管理模块可以按照一定的规则将GPU归类,实现将所有节点的GPU进行池化分类,形成不同的资源池。
在应用资源描述指示应用程序需要一个GPU的情况下,示例性的,可以将各节点中具有相同GPU类型的GPU归为一类。例如,可以将类型为T4的显卡归为一个集合,例如称为T4资源池。将类型为V100的显卡归为一个集合,例如称为V100资源池(其中T4、V100均为具体的显卡型号),方便后续根据应用资源描述从集合到具体的显卡,由粗到细查找选择合适的GPU。在调度查询可用GPU时,可能存在多个GPU均满足该应用程序的资源需求。在此情况下,可用根据这些GPU的优先级(比如事先制定的使用顺序,或者按照时延大小排序等)确定要使用哪一个GPU。
在应用资源描述指示应用程序需要两个或两个以上GPU的情况下,由于应用程序不能同时运行在多台主机上,因此这种情况下应用程序需要的多个GPU应该设置在同一节点上。示例性的,可以将在同一节点的GPU归为一类,进一步的,将具有相同数量GPU的节点归为一类。例如,将安装有一个GPU的节点归为一类,将安装有两个GPU的节点归为一类,等等。在进行目标GPU查询时,可以先查询GPU数量满足应用程序需求的节点,进一步从节点中查询资源满足的多个GPU。
如图4所示,本申请提供的GPU资源调度方法具体可以包括以下步骤:
S401、资源调度装置获取应用程序的应用资源描述,确定满足应用资源描述的目标GPU。
其中,应用资源描述用于指示应用程序的GPU能力需求。
在一些实施例中,用户在需要使用GPU资源时,可通过资源调度装置配置用于指示应用程序的GPU能力需求的应用资源描述,以使得资源调度装置可以获取并根据该应用资源描述,确定满足应用资源描述的目标GPU。
其中,在S401中,根据应用资源描述的要求,确定的目标GPU可以是一个GPU,也可以是多个GPU。当目标GPU是多个GPU时,可以是同一节点上的多个GPU。
图5示意了一种在图2示意的架构中,本申请提供GPU资源调度方法的流程。结合图5,对S401的具体实现进行说明。如前所述,应用管理模块负责应用资源描述的创建、修改等功能。用户可以通过图2中,应用层的机器学习平台(例如tensorflow应用和pytorch应用),配置需要运行的应用程序所需的GPU能力需求,包括GPU类型、显存大小、算力大小等,得到应用资源描述发送至应用管理模块,应用管理模块将该应用资源描述进一步发送至集群GPU资源管理模块。以使得集群GPU资源管理模块根据应用管理模块发送的应用资源描述,确定满足应用资源描述的目标GPU。
集群GPU资源管理模块事先记录有各个GPU信息,并按照一定规则生成不同的资源池。因此,以前述应用程序需要一个GPU的情况,事先按照GPU类型划分资源池为例进行说明,确定目标GPU的具体过程如下,集群GPU资源管理模块可以根据应用资源描述中GPU类型,确定对应类型的资源池。进一步的,根据应用资源描述中显存大小和算力大小等要求,从当前类型的资源池中选择显存和算力均符合应用资源描述的GPU,进而按照预先设定的优先级规则确定目标GPU。例如记录符合要求的GPU编号以标记目标GPU。
S402、资源调度装置获取用于启动应用程序的启动应用请求,启动应用程序。
在一些实施例中,资源调度装置可以获取用于启动应用程序的启动应用请求,响应于该请求,启动请求相应的应用程序。
结合图5,对S402的具体实现进行说明。应用资源描述中还包括应用程序的标识。在资源调度装置中,目标节点(即目标GPU所在的节点)中应用加载器可以接收应用管理模块发送的启动应用请求,该启动应用请求中包括应用程序的标识,响应于该请求,应用加载器注入到GPU虚拟化模块中,以在GPU虚拟化模块中启动对应该标识的应用程序。
在另一些实施例中,在启动应用程序之前,资源调度装置还创建应用程序对应的虚拟GPU。其中,创建虚拟GPU的数量与目标GPU的数量相同,虚拟GPU与目标GPU一一对应。一个虚拟GPU用于控制对其对应的目标GPU的访问过程。
示例性的,资源调度装置采用函数劫持的方法,劫持目标GPU的用于调用资源的底层功能函数,以得到虚拟GPU。该虚拟GPU可以控制应用程序使用目标GPU的资源,具体见S403。
具体的,如图5所示,集群GPU资源管理模块确定目标GPU后,可以生成虚拟GPU的标识(vGPU-ID),并向目标节点中本机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虚拟化模块中,以在GPU虚拟化模块中启动对应的应用程序。并且,GPU虚拟化模块可以使用启动应用请求中虚拟GPU的标识,向本机GPU资源管理模块申请使用应用资源描述,以根据应用资源描述来控制应用程序的资源使用。
每个虚拟GPU分别根据应用资源描述,控制应用程序访问虚拟GPU对应的目标GPU的资源的过程一致,具体如下S403描述。
S403、资源调度装置在获取到应用程序的资源请求时,若确定目标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的显存总量。本申请实施例通过虚拟GPU,在应用程序使用显存时做一层逻辑判断,以精确控制目标GPU的显存使用量。
图6为本申请实施例提供的一种分配显存的流程示意图,结合图6对上述申请显存的流程进行说明。应用程序可以调用虚拟GPU,以向GPU虚拟化模块请求分配显存。GPU虚拟化模块在接收到请求后,检查目标GPU的可用显存(GPU虚拟化模块可以通过本机GPU资源管理模块获取可用显存并保存)是否满足(大于或等于)应用资源描述中的额定显存。若不满足,则返回响应码1(例如描述为CUDA_ERROR_OUT_OF_MEMORY)至用户侧,方便用户根据响应码确定问题。若满足,则GPU虚拟化模块分配额定显存大小的显存(即应用资源描述中该应用程序所需的额定显存)。进一步的,若分配显存失败,则返回原错误码至用户侧,方便用户根据错误码确定分配失败原因。若分配成功,GPU虚拟化模块更新目标GPU的可用显存(可用显存大小减去额定显存大小),并保存存储标识(例如指针),该存储标识指示目标GPU中由当前应用程序使用的显存(或者说分配给该应用程序的显存),返回响应码2(例如描述为CUDA_SUCCESS),指示用户分配显存成功。
另外,在显存使用后,应用程序还可以释放显存。具体包括:
1、获取应用程序的资源释放请求,资源释放请求包括存储标识,存储标识指示目标GPU中由应用程序使用的显存。
2、释放目标GPU中存储标识指示的显存,更新目标GPU的可用显存。
图7为本申请实施例提供的一种释放显存的流程示意图,结合图7对上述释放显存的流程进行说明。应用程序通过调用虚拟GPU向GPU虚拟化模块发送资源释放请求,该资源释放请求中携带有上述存储标识(例如指针)。GPU虚拟化模块在接收资源释放请求后,查询指针是否存在。若不存在,则返回响应码3(例如描述为CUDA_ERROR_INVALID_VALUE)至用户侧。若存在,则GPU虚拟化模块释放目标GPU中指针指示的显存。进一步的,若释放显存失败,则返回原错误码至用户侧。若释放显存成功,则GPU虚拟化模块更新目标GPU的可用显存(目标GPU的可用显存大小加上额定显存大小),并移除指针的存储记录,返回响应码2,指示用户显存释放成功。
在另一些实施例中,在资源调度装置创建虚拟GPU的情况下,在获取到应用程序的资源请求后,在应用程序使用目标GPU资源的过程中,虚拟GPU控制应用程序使用目标GPU资源小于或等于应用资源描述指示的资源。
示例性的,应用资源描述包括应用程序的额定算力利用率。上述资源请求用于请求使用目标GPU的算力。在获取到应用程序请求使用GPU的算力后,在应用程序使用目标GPU资源的过程中,获取应用程序对目标GPU的实时算力利用率。在实时算力利用率大于额定算力利用率的情况下,延迟执行应用程序使用目标GPU算力的指令,直至获取的实时算力利用率小于或等于额定算力利用率。
需要说明的时,算力包括计算算力、编码算力和解码算力。其中,编解码算力可以用于对视频信息的编码解码的过程中。上述三种算力资源的控制方式相同,区别在于调用的底层功能函数不同。对算力资源进行控制,主要在于应用程序调用底层功能函数使用算力时,时刻确保应用程序运行的进程的实时算力利用率稳定在预期的范围内(即实时算力利用率小于或等于额定)。控制方式也是通过上述对算力调用的底层功能函数进行函数劫持得到虚拟GPU实现,在此不再重复赘述。
图8为本申请实施例提供的一种算力控制的流程示意图,结合图8对上述算力资源控制的流程进行说明。在GPU虚拟化模块申请使用虚拟GPU,并接收到本机GPU资源管理模块下发的应用资源描述后,应用程序调用虚拟GPU,以使用目标GPU的算力资源。在使用目标GPU资源的过程中,本机GPU资源管理模块定时获取应用程序运行的进程对目标GPU的实时算力利用率更新到共享内存中,GPU虚拟化模块可以定时从共享内容中获取实时算力利用率,通过虚拟GPU提供的判断功能,与应用资源描述中额定算力利用率进行比较。若实时算力利用率大于额定算力利用率,说明此刻该应用程序占用算力资源过多,GPU虚拟化模块可以采用延迟的方式,延迟执行应用程序使用目标GPU算力的指令,直至获取的实时算力利用率小于或等于额定算力利用率。具体的延迟过程,可以采用逐步增减延迟粒度方式,在应用程序使用算力资源的指令中增加时延指令,时延的大小可以根据实时算力利用率的下降速度不断优化调整。简单来说,实时算力利用率下降的快,时延的大小可以设置小一点。实时算力利用率下降的慢,时延的大小可以设置大一点。采用上述思路,控制应用程序运行的进程的实时算力利用率,降低至小于或等于应用资源描述中限定的额定算力利用率,实现控制应用程序在预期范围内使用算力资源,防止资源抢占以及GPU运行不稳定的问题。
需要说明的是,上述S403的资源控制流程,是以应用程序使用一个GPU资源(即满足应用程序的应用资源描述的目标GPU是一个)为例进行说明的。对于应用资源描述指示应用程序使用多个GPU(即满足应用程序的应用资源描述的目标GPU是多个)的情况,则创建多个虚拟GPU,每个虚拟GPU对应用程序使用资源的控制过程均与S403描述的方式一致,在此不作重复赘述。例如,应用资源描述指示应用程序使用两个GPU,则应用资源描述中分别指示各GPU的资源需求。如应用资源描述指示占用一个GPU的额定算力利用率为30%,占用另一个GPU的额定算力利用率为20%。则生成两个虚拟GPU,分别依附于调度查询到的两个资源满足的GPU上,应用程序通过调用这两个虚拟GPU使用这两个GPU的资源。每个虚拟GPU根据资源描述各自的部分进行独立控制。
以下结合图2所示的系统架构对本方案的完整流程进行综合的说明。1、集群GPU资源管理模块向各节点的本机GPU资源管理模块获取GPU资源信息,按照一定的规则(例如将同类型的GPU归为一类),将所有节点的GPU按照类型进行池化,得到不同GPU类型的资源池。2、用户的通过机器学习平台配置资源描述并发送至应用管理模块。3、应用管理模块向集群GPU资源管理模块请求可用GPU。集群GPU资源管理模块寻找合适的资源池,在其中选定目标GPU,并向目标GPU所在节点的本机GPU管理模块发送创建虚拟GPU指令。并且集群GPU资源管理模块将虚拟GPU的标识、目标节点的信息返回给应用管理模块。4、本机GPU管理模块绑定包括虚拟GPU的标识及应用资源描述,并在GPU虚拟化模块中创建虚拟GPU。5、应用管理模块向目标节点的应用加载器发送启动应用请求。应用加载器注入GPU虚拟化模块,并启动对应的应用程序。6、应用程序启动后,GPU虚拟化模块使用虚拟GPU的标识向本机GPU管理模块请求应用资源描述。本机GPU管理模块确认后,向GPU虚拟化模块下发资源描述。GPU虚拟化模块根据应用资源描述进行隔离资源(即上述S403)。
上述实施例提供的技术方案至少带来以下有益效果,本申请实施例提供的GPU资源调度方法,根据应用程序的应用资源描述选择合适的目标GPU,并控制应用程序使用目标GPU的资源。本方案基于应用资源描述进行控制,使得应用程序的对目标GPU的资源使用量在合理范围内,或者,在目标GPU的可用资源满足的情况下,才允许应用程序使用目标GPU的资源。使得应用程序获得资源隔离的功能,以保证在共享模式充分利用GPU资源的情况下,不会出现多个应用程序共用一个GPU时存在的资源相互抢占、异常相互传播的问题,保证GPU运行的稳定性。
进一步的,本方案采用函数劫持底层功能函数创建虚拟GPU的方式,通过虚拟GPU实现精确控制应用程序使用GPU的资源量,以实现资源隔离,有效地解决共享模式下资源抢占的问题。另外,本方案整合显存、计算算力、编码算力和解码算力在集群中统一调度,可以根据用户的需求,配置合适的GPU,解决整卡GPU调度存在的资源浪费问题,有效提高了集群GPU的资源利用率。并且,用户可以通过配置应用资源描述,定义合适的资源配额,满足各种场景下GPU的使用需求。
在示例性的实施例中,本申请还提供一种资源调度装置。该资源调度装置可以包括一个或多个功能模块,用于实现以上方法实施例的GPU资源调度方法。例如,图9为本申请实施例提供的一种资源调度装置的组成示意图。如图9所示,该装置包括:获取模块901和处理模块902。获取模块901和处理模块902互相连接。
获取模块901用于,获取应用程序的应用资源描述,确定满足应用资源描述的目标GPU;应用资源描述用于指示应用程序的GPU能力需求。
获取模块901还用于,获取用于启动应用程序的启动应用请求,启动应用程序。
处理模块902用于,在获取到应用程序的资源请求时,若确定目标GPU的当前可用资源满足应用资源描述指示的资源,向应用程序分配目标GPU中应用资源描述指示的资源。或者,处理模块902用于,在获取到应用程序的资源请求后,在应用程序使用目标GPU资源的过程中,控制应用程序使用目标GPU资源小于或等于应用资源描述指示的资源。
在一些实施例中,上述装置还包括:创建模块903。
创建模块903用于,创建应用程序对应的虚拟GPU。
处理模块902具体用于,在获取到应用程序的资源请求时,虚拟GPU在确定目标GPU的当前可用资源满足应用资源描述指示的资源的情况下,向应用程序分配目标GPU中应用资源描述指示的资源。
处理模块902具体用于,在获取到应用程序的资源请求后,在应用程序使用目标GPU资源的过程中,虚拟GPU控制应用程序使用目标GPU资源小于或等于应用资源描述指示的资源。
在一些实施例中,应用资源描述包括应用程序的额定显存;资源请求用于分配显存;处理模块902具体用于,若确定目标GPU的可用显存大于或等于额定显存,向应用程序分配目标GPU中额定显存大小的显存,更新目标GPU的可用显存。
在一些实施例中,获取模块901还用于,获取应用程序的资源释放请求,资源释放请求包括存储标识,存储标识指示目标GPU中由应用程序使用的显存。
处理模块902还用于,释放目标GPU中存储标识指示的显存,更新目标GPU的可用显存。
在一些实施例中,应用资源描述包括应用程序的额定算力利用率;资源请求用于请求使用目标GPU的算力;处理模块902具体用于,在应用程序使用目标GPU资源的过程中,获取应用程序对目标GPU的实时算力利用率;在实时算力利用率大于额定算力利用率的情况下,延迟执行应用程序使用目标GPU算力的指令,直至获取的实时算力利用率小于额定算力利用率。
在一些实施例中,创建模块903具体用于,函数劫持目标GPU的用于调用资源的底层功能函数,得到虚拟GPU。
在一些实施例中,算力包括下述一项或多项:计算算力、编码算力、解码算力。
在示例性的实施例中,本申请实施例还提供了一种服务器,该服务器可以是上述方法实施例中的资源调度装置。图10为本申请实施例提供的服务器的组成示意图。如图10所示,该服务器可以包括:处理器1001和存储器1002;存储器1002存储有处理器1001可执行的指令;处理器1001被配置为执行指令时,使得服务器实现如前述方法实施例中描述的方法。
在示例性的实施例中,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令;当计算机程序指令被计算机执行时,使得计算机实现如前述实施例中描述的方法。其中,计算机可以是上述服务器。计算机可读存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性的实施例中,本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关方法步骤,以实现上述实施例中的GPU资源调度方法。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(Comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (11)

1.一种图形处理器GPU资源调度方法,其特征在于,所述方法包括:
获取应用程序的应用资源描述,确定满足所述应用资源描述的目标GPU;所述应用资源描述用于指示应用程序的GPU能力需求;
获取用于启动所述应用程序的启动应用请求,启动所述应用程序;
在获取到所述应用程序的资源请求时,若确定所述目标GPU的当前可用资源满足所述应用资源描述指示的资源,向所述应用程序分配所述目标GPU中所述应用资源描述指示的资源;或者,在获取到所述应用程序的资源请求后,在所述应用程序使用所述目标GPU资源的过程中,控制所述应用程序使用所述目标GPU资源小于或等于所述应用资源描述指示的资源。
2.根据权利要求1所述的方法,其特征在于,在启动所述应用程序之前,所述方法还包括:
创建所述应用程序对应的虚拟GPU;
所述在获取到所述应用程序的资源请求时,若确定所述目标GPU的当前可用资源满足所述应用资源描述指示的资源,向所述应用程序分配所述目标GPU中所述应用资源描述指示的资源,包括:
在获取到所述应用程序的资源请求时,所述虚拟GPU在确定所述目标GPU的当前可用资源满足所述应用资源描述指示的资源的情况下,向所述应用程序分配所述目标GPU中所述应用资源描述指示的资源;
所述在获取到所述应用程序的资源请求后,在所述应用程序使用所述目标GPU资源的过程中,控制所述应用程序使用所述目标GPU资源小于或等于所述应用资源描述指示的资源,包括:
在获取到所述应用程序的资源请求后,在所述应用程序使用所述目标GPU资源的过程中,所述虚拟GPU控制所述应用程序使用所述目标GPU资源小于或等于所述应用资源描述指示的资源。
3.根据权利要求1或2所述的方法,其特征在于,所述应用资源描述包括所述应用程序的额定显存;所述资源请求用于分配显存;
所述若确定所述目标GPU的当前可用资源满足所述应用资源描述指示的资源,向所述应用程序分配所述目标GPU中所述应用资源描述指示的资源,包括:
若确定所述目标GPU的可用显存大于或等于所述额定显存,向所述应用程序分配所述目标GPU中所述额定显存大小的显存,更新所述目标GPU的可用显存。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述应用程序的资源释放请求,所述资源释放请求包括存储标识,所述存储标识指示所述目标GPU中由所述应用程序使用的显存;
释放所述目标GPU中所述存储标识指示的显存,更新所述目标GPU的可用显存。
5.根据权利要求1或2所述的方法,其特征在于,所述应用资源描述包括所述应用程序的额定算力利用率;所述资源请求用于请求使用所述目标GPU的算力;
所述在所述应用程序使用所述目标GPU资源的过程中,控制所述应用程序使用所述目标GPU资源小于或等于所述应用资源描述指示的资源,包括:
在所述应用程序使用所述目标GPU资源的过程中,获取所述应用程序对所述目标GPU的实时算力利用率;
在所述实时算力利用率大于所述额定算力利用率的情况下,延迟执行所述应用程序使用所述目标GPU算力的指令,直至获取的实时算力利用率小于或等于所述额定算力利用率。
6.根据权利要求2所述的方法,其特征在于,所述创建所述应用程序对应的虚拟GPU,包括:
函数劫持所述目标GPU的用于调用资源的底层功能函数,得到所述虚拟GPU。
7.根据权利要求5所述的方法,其特征在于,所述算力包括下述一项或多项:计算算力、编码算力、解码算力。
8.一种图像处理器GPU资源调度装置,其特征在于,所述装置包括:获取模块和处理模块;
所述获取模块用于,获取应用程序的应用资源描述,确定满足所述应用资源描述的目标GPU;所述应用资源描述用于指示应用程序的GPU能力需求;
所述获取模块还用于,获取用于启动所述应用程序的启动应用请求,启动所述应用程序;
所述处理模块用于,在获取到所述应用程序的资源请求时,若确定所述目标GPU的当前可用资源满足所述应用资源描述指示的资源,向所述应用程序分配所述目标GPU中所述应用资源描述指示的资源;或者,在获取到所述应用程序的资源请求后,在所述应用程序使用所述目标GPU资源的过程中,控制所述应用程序使用所述目标GPU资源小于或等于所述应用资源描述指示的资源。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:创建模块;
所述创建模块用于,创建所述应用程序对应的虚拟GPU;
所述处理模块具体用于,在获取到所述应用程序的资源请求时,所述虚拟GPU在确定所述目标GPU的当前可用资源满足所述应用资源描述指示的资源的情况下,向所述应用程序分配所述目标GPU中所述应用资源描述指示的资源;
所述处理模块具体用于,在获取到所述应用程序的资源请求后,在所述应用程序使用所述目标GPU资源的过程中,所述虚拟GPU控制所述应用程序使用所述目标GPU资源小于或等于所述应用资源描述指示的资源;
所述应用资源描述包括所述应用程序的额定显存;所述资源请求用于分配显存;所述处理模块具体用于,若确定所述目标GPU的可用显存大于或等于所述额定显存,向所述应用程序分配所述目标GPU中所述额定显存大小的显存,更新所述目标GPU的可用显存;
所述获取模块还用于,获取所述应用程序的资源释放请求,所述资源释放请求包括存储标识,所述存储标识指示所述目标GPU中由所述应用程序使用的显存;
所述处理模块还用于,释放所述目标GPU中所述存储标识指示的显存,更新所述目标GPU的可用显存;
所述应用资源描述包括所述应用程序的额定算力利用率;所述资源请求用于请求使用所述目标GPU的算力;所述处理模块具体用于,在所述应用程序使用所述目标GPU资源的过程中,获取所述应用程序对所述目标GPU的实时算力利用率;在所述实时算力利用率大于所述额定算力利用率的情况下,延迟执行所述应用程序使用所述目标GPU算力的指令,直至获取的实时算力利用率小于或等于所述额定算力利用率;
所述创建模块具体用于,函数劫持所述目标GPU的用于调用资源的底层功能函数,得到所述虚拟GPU;
所述算力包括下述一项或多项:计算算力、编码算力、解码算力。
10.一种服务器,其特征在于,所述服务器包括:处理器和存储器;
所述存储器存储有所述处理器可执行的指令;
所述处理器被配置为执行所述指令时,使得所述服务器实现如权利要求1-7任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括:计算机软件指令;
当所述计算机软件指令在计算机中运行时,使得所述计算机实现如权利要求1-7任一项所述的方法。
CN202210621765.1A 2022-06-02 2022-06-02 一种gpu资源调度方法、装置、设备及存储介质 Pending CN115063282A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210621765.1A CN115063282A (zh) 2022-06-02 2022-06-02 一种gpu资源调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210621765.1A CN115063282A (zh) 2022-06-02 2022-06-02 一种gpu资源调度方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115063282A true CN115063282A (zh) 2022-09-16

Family

ID=83199202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210621765.1A Pending CN115063282A (zh) 2022-06-02 2022-06-02 一种gpu资源调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115063282A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117611425A (zh) * 2024-01-17 2024-02-27 之江实验室 图形处理器算力配置方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117611425A (zh) * 2024-01-17 2024-02-27 之江实验室 图形处理器算力配置方法、装置、计算机设备和存储介质
CN117611425B (zh) * 2024-01-17 2024-06-11 之江实验室 图形处理器算力配置方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN112199194B (zh) 基于容器集群的资源调度方法、装置、设备和存储介质
CN110647394B (zh) 一种资源分配方法、装置及设备
US10146580B2 (en) Lazy persistent storage volume provisioning
US11231955B1 (en) Dynamically reallocating memory in an on-demand code execution system
CN108737468B (zh) 云平台服务集群、构建方法及装置
CN107066319B (zh) 一种面向异构资源的多维调度系统
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
WO2018149263A1 (zh) 一种网络业务实例化的方法及装置
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
WO2020177564A1 (zh) Vnf的生命周期管理方法及装置
CN112052068A (zh) 一种Kubernetes容器平台CPU绑核的方法与装置
CN108900626B (zh) 一种云环境下数据存储方法、装置及系统
CN110221920B (zh) 部署方法、装置、存储介质及系统
US20150128136A1 (en) Graphics processing unit controller, host system, and methods
CN113672391B (zh) 一种基于Kubernetes的并行计算任务调度方法与系统
CN114356543A (zh) 一种基于Kubernetes的多租户机器学习任务资源调度方法
Ma et al. vLocality: Revisiting data locality for MapReduce in virtualized clouds
CN113674131A (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
CN111124674B (zh) 一种硬件资源的管理方法、存储介质及终端
CN109213567B (zh) 一种管理vnf实例化的方法和设备
CN115063282A (zh) 一种gpu资源调度方法、装置、设备及存储介质
WO2020108337A1 (zh) 一种cpu资源调度方法及电子设备
CN112039963B (zh) 一种处理器的绑定方法、装置、计算机设备和存储介质
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
Wang et al. Provision of storage QoS in distributed file systems for clouds

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