CN115373861B - Gpu资源调度方法、装置、电子设备及存储介质 - Google Patents
Gpu资源调度方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115373861B CN115373861B CN202211317231.6A CN202211317231A CN115373861B CN 115373861 B CN115373861 B CN 115373861B CN 202211317231 A CN202211317231 A CN 202211317231A CN 115373861 B CN115373861 B CN 115373861B
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- gpu
- target
- model
- 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
Images
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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Abstract
本公开关于一种GPU资源调度方法、装置、电子设备及存储介质,涉及计算机技术领域。其中,所述GPU资源调度方法,包括:在接收到目标神经网络模型的部署指令的情况下,确定目标神经网络模型的服务类型,然后获取目标神经网络模型的服务类型对应的目标预设模型分割方式,再根据目标预设模型分割方式将目标神经网络模型划分为多个子模型,最后将多个子模型加载至每个子模型对应的图形处理器GPU,以通过每个子模型对应的GPU实现GPU资源调度。采用本公开实施例提供的GPU资源调度方法,能够避免人工分割子模型和二次运算的过程,从而可以有效简化目标神经网络模型的推理部署过程,提高部署效率,进而提高神经网络模型的应用效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种GPU资源调度方法、装置、电子设备及存储介质。
背景技术
相关技术中,大规模神经网络模型由于庞大的结构和众多的参数,单个GPU(GraphicsProcessingUnit,图形处理器)的显存范围难以支持其推理运算。在实际推理运算过程中,需要将大规模神经网络模型分割成多个子模型,然后将多个子模型加载到多个物理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资源调度方法、装置、电子设备及存储介质进行详细说明。
图1是根据一示例性实施例示出的一种GPU资源调度方法的流程图,该GPU资源调度方法可以应用于服务器,例如可以是单台服务器或者服务器集群等。如图1所示,GPU资源调度方法可以包括以下步骤:
在步骤S110中,在接收到目标神经网络模型的部署指令的情况下,确定目标神经网络模型的服务类型。
其中,目标神经网络模型可以是需要进行运算部署的神经网络模型,进一步地,可以是需要进行运算部署的大规模神经网络模型。
在本公开的实施例中,用于运算部署目标神经网络模型的服务器可以预先安装有多个GPU,目标神经网络模型可以由用户预先存储在上述服务器中。目标神经网络模型的部署指令可以由用户通过服务器的操作界面进行输入,例如,可以通过键盘敲击输入指定格式的部署指令语句,或者通过触摸屏幕点击虚拟按键输入相应部署指令。服务器在接收到目标神经网络模型的部署指令的情况下,可以确定目标神经网络模型的服务类型,例如,可以解析针对目标神经网络模型的部署指令,根据解析结果确定目标神经网络模型的服务类型。
在步骤S120中,获取目标神经网络模型的服务类型对应的目标预设模型分割方式。
其中,目标预设模型分割方式可以是在根据不同神经网络模型的服务类型预先设置的模型分割方式集合中,与目标神经网络模型的服务类型对应的模型分割方式,模型分割方式可以与服务类型一一对应,且模型分割方式至少可以用于指示子模型的划分数量和子模型的分割方式。
在本公开的实施例中,在确定目标神经网络模型的服务类型之后,可以获取根据不同神经网络模型的服务类型预先设置的模型分割方式集合,进一步在上述集合中进行神经网络模型的服务类型的匹配。在匹配到与目标神经网络模型的服务类型相同的服务类型的情况下,可以获取该与目标神经网络模型的服务类型相同的服务类型对应的模型分割方式,将该模型分割方式确定为目标神经网络模型的服务类型对应的目标预设模型分割方式。
可以理解的是,在未能匹配到与目标神经网络模型的服务类型相同的神经网络模型的服务类型的情况下,用户可以自行设计目标神经网络模型的模型分割方式,并将其加入前述模型分割方式集合中,以供将来用于与目标神经网络模型的服务类型相同的神经网络模型的分割。
在步骤S130中,根据目标预设模型分割方式将目标神经网络模型划分为多个子模型。
在本公开的实施例中,在获取到目标神经网络模型的服务类型对应的目标预设模型分割方式后,可以根据目标预设模型分割方式将目标神经网络模型划分为多个子模型。也就是说,可以根据目标预设模型分割方式自动将目标神经网络模型划分为多个子模型,即使对目标神经网络模型进行更改,只要可以获取到与更改后的目标神经网络模型的服务类型对应的目标预设模型分割方式,也可以自动将更改后的目标神经网络模型划分为多个子模型。
需要说明的是,每个子模型用于完成目标神经网络模型的部分运算,子模型运算结束后,可以得到与子模型对应的中间结果。
在步骤S140中,将多个子模型加载至每个子模型对应的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调度组件在重启服务器后生效。这样,可以通过与目标神经网络模型的服务类型对应的预设虚拟GPU调度组件获取目标预设模型分割方式,进而实现目标神经网络模型的分割,如此,可以避免人工分割子模型和二次运算的过程,能够有效简化目标神经网络模型的推理部署过程,可以提高部署效率,进而提高神经网络模型的应用效率。
在一种可能的实施方式中,虚拟GPU设备的显存数量根据虚拟GPU设备的物理GPU数量与每个物理GPU的显存设置。
在本公开的实施例中,虚拟GPU设备是基于物理GPU设计构造的,虚拟GPU设备的显存数量可以根据虚拟GPU设备的物理GPU数量与每个物理GPU的显存设置。也就是说,虚拟GPU设备的显存数量等于每个物理GPU的显存之和,特别地,在每个物理GPU的显存相同的情况下,虚拟GPU设备的显存数量等于物理GPU数量与物理GPU的显存的乘积。如此,可以将每个物理GPU设备的显存集中,构成逻辑上独立的虚拟GPU设备的显存,以为后续的GPU调度提供支撑。
基于相同的发明构思,本公开的实施例还提供了一种GPU资源调度装置,如图2所示,图2是根据一示例性实施例示出的一种GPU资源调度的框图。参照图2,该GPU资源调度装置200可以包括:
第一确定模块210,用于在接收到目标神经网络模型的部署指令的情况下,确定目标神经网络模型的服务类型;
第一获取模块220,用于获取目标神经网络模型的服务类型对应的目标预设模型分割方式;
模型分割模块230,用于根据目标预设模型分割方式将目标神经网络模型划分为多个子模型;
模型加载模块240,用于将多个子模型加载至每个子模型对应的图形处理器GPU,以通过每个子模型对应的GPU实现GPU资源调度。
在一种可能的实施方式中,GPU资源调度装置200,还包括:
第二获取模块,用于获取多种服务类型的神经网络模型;
设置模块,用于为每种服务类型的神经网络模型设置对应的预设模型分割方式。
在一种可能的实施方式中,GPU资源调度装置200,还包括:
第二确定模块,用于确定目标神经网络模型是否为大规模神经网络模型;
相应地,第一确定模块210,包括:
第一确定单元,用于在目标神经网络模型为大规模神经网络模型的情况下,确定目标神经网络模型的服务类型。
在一种可能的实施方式中,第一获取模块220,包括:
第二确定单元,用于通过虚拟GPU设备在虚拟GPU代理程序中确定与服务类型对应的目标虚拟GPU插件;其中,虚拟GPU代理程序对应有多个虚拟GPU插件,每个虚拟GPU插件对应一种服务类型的神经网络模型;
第一获取单元,用于通过虚拟GPU设备调用目标虚拟GPU插件获取目标神经网络模型的服务类型对应的目标预设模型分割方式。
在一种可能的实施方式中,模型加载模块240,包括:
加载单元,用于通过虚拟GPU设备调用目标虚拟GPU插件,将多个子模型加载至每个子模型对应的物理GPU。
在一种可能的实施方式中,第一获取模块220,包括:
第二获取单元,用于通过目标神经网络模型的服务类型对应的预设虚拟GPU调度组件,获取目标预设模型分割方式。
在一种可能的实施方式中,虚拟GPU设备的显存数量根据虚拟GPU设备的物理GPU数量与每个物理GPU的显存设置。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开的实施例,本公开还提供了一种电子设备、一种存储介质和一种计算机程序产品。
图3示出了可以用来实施本公开的实施例的示例电子设备300的示意性框图。电子设备300旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图3所示,电子设备300包括计算单元301,其可以根据存储在只读存储器(ROM)302中的计算机程序或者从存储单元308加载到随机访问存储器(RAM)303中的计算机程序,来执行各种适当的动作和处理。在RAM303中,还可存储设备300操作所需的各种程序和数据。计算单元301、ROM302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
电子设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许电子设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元301执行上文所描述的各个方法和处理,例如GPU资源调度方法。例如,在一些实施例中,GPU资源调度方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 302和/或通信单元309而被载入和/或安装到电子设备300上。当计算机程序加载到RAM 303并由计算单元301执行时,可以执行上文描述的GPU资源调度方法的一个或多个步骤。备选地,在其他实施例中,计算单元301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行GPU资源调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的计算机程序产品的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。存储介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称 "VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (14)
1.一种GPU资源调度方法,其特征在于,包括:
在接收到目标神经网络模型的部署指令的情况下,确定所述目标神经网络模型的服务类型;其中,所述目标神经网络模型的服务类型根据所述部署指令的解析结果确定;
获取所述目标神经网络模型的服务类型对应的目标预设模型分割方式;
根据所述目标预设模型分割方式将所述目标神经网络模型划分为多个子模型;
将所述多个子模型加载至每个所述子模型对应的图形处理器GPU,以通过每个所述子模型对应的GPU实现GPU资源调度;
所述获取所述目标神经网络模型的服务类型对应的目标预设模型分割方式,包括:
通过虚拟GPU设备在虚拟GPU代理程序中确定与所述服务类型对应的目标虚拟GPU插件;其中,所述虚拟GPU代理程序对应有多个虚拟GPU插件,每个所述虚拟GPU插件对应一种服务类型的神经网络模型;
通过所述虚拟GPU设备调用所述目标虚拟GPU插件获取所述目标神经网络模型的服务类型对应的目标预设模型分割方式。
2.根据权利要求1所述的GPU资源调度方法,其特征在于,所述在接收到目标神经网络模型的部署指令的情况下,确定所述目标神经网络模型的服务类型之前,还包括:
获取多种服务类型的神经网络模型;
为每种服务类型的所述神经网络模型设置对应的预设模型分割方式。
3.根据权利要求1所述的GPU资源调度方法,其特征在于,所述确定所述目标神经网络模型的服务类型之前,还包括:
确定所述目标神经网络模型是否为大规模神经网络模型;
所述确定所述目标神经网络模型的服务类型,包括:
在所述目标神经网络模型为大规模神经网络模型的情况下,确定所述目标神经网络模型的服务类型。
4.根据权利要求1所述的GPU资源调度方法,其特征在于,所述将所述多个子模型加载至每个所述子模型对应的图形处理器GPU,包括:
通过所述虚拟GPU设备调用所述目标虚拟GPU插件,将所述多个子模型加载至每个所述子模型对应的物理GPU。
5.根据权利要求1所述的GPU资源调度方法,其特征在于,所述获取所述目标神经网络模型的服务类型对应的目标预设模型分割方式,包括:
通过所述目标神经网络模型的服务类型对应的预设虚拟GPU调度组件,获取目标预设模型分割方式。
6.根据权利要求5所述的GPU资源调度方法,其特征在于,所述虚拟GPU设备的显存数量根据所述虚拟GPU设备的物理GPU数量与每个所述物理GPU的显存设置。
7.一种GPU资源调度装置,其特征在于,包括:
第一确定模块,用于在接收到目标神经网络模型的部署指令的情况下,确定所述目标神经网络模型的服务类型;其中,所述目标神经网络模型的服务类型根据所述部署指令的解析结果确定;
第一获取模块,用于获取所述目标神经网络模型的服务类型对应的目标预设模型分割方式;
模型分割模块,用于根据所述目标预设模型分割方式将所述目标神经网络模型划分为多个子模型;
模型加载模块,用于将所述多个子模型加载至每个所述子模型对应的图形处理器GPU,以通过每个所述子模型对应的GPU实现GPU资源调度;
所述第一获取模块,包括:
第二确定单元,用于通过虚拟GPU设备在虚拟GPU代理程序中确定与所述服务类型对应的目标虚拟GPU插件;其中,所述虚拟GPU代理程序对应有多个虚拟GPU插件,每个所述虚拟GPU插件对应一种服务类型的神经网络模型;
第一获取单元,用于通过所述虚拟GPU设备调用所述目标虚拟GPU插件获取所述目标神经网络模型的服务类型对应的目标预设模型分割方式。
8.根据权利要求7所述的GPU资源调度装置,其特征在于,所述装置,还包括:
第二获取模块,用于获取多种服务类型的神经网络模型;
设置模块,用于为每种服务类型的所述神经网络模型设置对应的预设模型分割方式。
9.根据权利要求7所述的GPU资源调度装置,其特征在于,所述装置,还包括:
第二确定模块,用于确定所述目标神经网络模型是否为大规模神经网络模型;
所述第一确定模块,包括:
第一确定单元,用于在所述目标神经网络模型为大规模神经网络模型的情况下,确定所述目标神经网络模型的服务类型。
10.根据权利要求7所述的GPU资源调度装置,其特征在于,所述模型加载模块,包括:
加载单元,用于通过所述虚拟GPU设备调用所述目标虚拟GPU插件,将所述多个子模型加载至每个所述子模型对应的物理GPU。
11.根据权利要求7所述的GPU资源调度装置,其特征在于,所述第一获取模块,包括:
第二获取单元,用于通过所述目标神经网络模型的服务类型对应的预设虚拟GPU调度组件,获取目标预设模型分割方式。
12.根据权利要求11所述的GPU资源调度装置,其特征在于,所述虚拟GPU设备的显存数量根据所述虚拟GPU设备的物理GPU数量与每个所述物理GPU的显存设置。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的GPU资源调度方法。
14.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的GPU资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211317231.6A CN115373861B (zh) | 2022-10-26 | 2022-10-26 | Gpu资源调度方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211317231.6A CN115373861B (zh) | 2022-10-26 | 2022-10-26 | Gpu资源调度方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115373861A CN115373861A (zh) | 2022-11-22 |
CN115373861B true CN115373861B (zh) | 2022-12-27 |
Family
ID=84073900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211317231.6A Active CN115373861B (zh) | 2022-10-26 | 2022-10-26 | Gpu资源调度方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373861B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116739090B (zh) * | 2023-05-12 | 2023-11-28 | 北京大学 | 基于Web浏览器的深度神经网络推理度量方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399222B (zh) * | 2019-07-25 | 2022-01-21 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN111445026B (zh) * | 2020-03-16 | 2023-08-22 | 东南大学 | 面向边缘智能应用的深度神经网络多路径推理加速方法 |
US20210390405A1 (en) * | 2020-06-11 | 2021-12-16 | Ulsan National Institute Of Science And Technology | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof |
CN114819084B (zh) * | 2022-04-26 | 2024-03-01 | 北京百度网讯科技有限公司 | 模型推理方法、装置、设备及存储介质 |
-
2022
- 2022-10-26 CN CN202211317231.6A patent/CN115373861B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115373861A (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220174122A1 (en) | Fusing and degradation method and apparatus for micro-service, device, and medium | |
CN114157701B (zh) | 一种任务测试方法、装置、设备以及存储介质 | |
CN115373861B (zh) | Gpu资源调度方法、装置、电子设备及存储介质 | |
CN113139660A (zh) | 模型推理方法、装置、电子设备及存储介质 | |
CN115631273A (zh) | 一种大数据的去重方法、装置、设备及介质 | |
CN115358411A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN115150471A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN112925811A (zh) | 数据处理的方法、装置、设备、存储介质及程序产品 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113590217B (zh) | 基于引擎的函数管理方法、装置、电子设备及存储介质 | |
CN113691403A (zh) | 拓扑节点配置方法、相关装置及计算机程序产品 | |
CN113656268B (zh) | 业务服务的性能测试方法、装置、电子设备和存储介质 | |
CN113900734B (zh) | 一种应用程序文件配置方法、装置、设备及存储介质 | |
CN113360689B (zh) | 图像检索系统、方法、相关装置及计算机程序产品 | |
CN114780021B (zh) | 副本修复方法、装置、电子设备及存储介质 | |
CN117519996B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN117057411B (zh) | 一种大语言模型训练方法、装置、设备及存储介质 | |
CN114841267B (zh) | 实时预测方法、装置、电子设备及计算机程序产品 | |
CN115617454A (zh) | 一种容器化服务部署方法、装置、设备及存储介质 | |
CN115964243A (zh) | 接口模拟方法、装置、电子设备及存储介质 | |
CN113535187A (zh) | 服务上线方法、服务更新方法及服务提供方法 | |
CN115756729A (zh) | 一种部署方法、装置、设备及存储介质 | |
CN115981847A (zh) | 服务网格部署方法及装置、电子设备和存储介质 | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
CN117271104A (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 |