CN115617364A - Gpu虚拟化部署方法、系统、计算机设备和存储介质 - Google Patents
Gpu虚拟化部署方法、系统、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115617364A CN115617364A CN202211636208.3A CN202211636208A CN115617364A CN 115617364 A CN115617364 A CN 115617364A CN 202211636208 A CN202211636208 A CN 202211636208A CN 115617364 A CN115617364 A CN 115617364A
- Authority
- CN
- China
- Prior art keywords
- gpu
- deployment
- user
- virtualization
- container
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及人工智能技术领域,具体涉及GPU虚拟化部署方法、系统、计算机设备和存储介质。该方法基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令;Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令;Kubernete根据用户选择数据的GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源;GPU资源分配完毕后,启动容器,并在容器启动后执行用户所选的启动脚本。本发明通过GPU虚拟化技术对服务器GPU资源进行资源分割,避免Kubernete在容器部署时独占一整块GPU显卡资源而导致资源浪费,可以充分利用服务器GPU资源,达到一张物理GPU显卡,可以同时部署多个模型应用的目的。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种GPU虚拟化部署方法、系统、计算机设备和存储介质。
背景技术
虚拟化容器技术使用很广泛,目前,很多深度学习领域中的模型部署与训练广泛使用docker容器进行部署,使用容器部署的好处是容器所使用的镜像文件,可以快速还原部署所需的环境,实现镜像一次生成,到处部署。
随着模型应用增多,docker容器也会相应增加,这样会不利于对docker容器的管理,因此,就需要借助容器编排技术实现对docker容器的统一管理和自动化部署。目前成熟的容器编排框架Kubernetes可实现对docker容器进行自动化管理,开发人员只需要通过简单的配置,就可以实现容器部署和资源的控制。
但是在使用Kubernetes对模型进行部署的时候,CPU和内存资源可以配置选择所需要的核心数和内存大小,GPU却无法进行内存和算力分割,导致在启动模型应用的时候会浪费一部分GPU算力和GPU内存。
而中国专利CN112486630A分布式训练部署系统及其方法,是通过Kubernetes的集群技术,对模型进行容器化部署,并且提供了一套容器自动化部署系统,用户不需要登录服务器进行命令行操作,只需通过系统模块,就可以轻松对模型和算法进行快速部署,这样大大减少了用户在模型部署上所使用的时间,使开发人员更专注于算法研发,但是在部署过程中会严重浪费GPU的使用资源,GPU资源是相对比较宝贵的硬件资源,成本会很高。
针对GPU资源消耗的问题,需要提供一种训练和在线预测容器GPU虚拟化部署及其方法,通过加入GPU算力和显存虚拟化技术,来实现GPU资源的合理运用,降低部署成本。
发明内容
为解决GPU资源消耗的问题,本发明提供了一种GPU虚拟化部署方法、系统、计算机设备和存储介质,通过基于NVIDIA官方插件(NVIDIA/k8s-device-plugin)的二次开发,扩展插件的GPU虚拟化分割功能,在保留官方功能的基础上,实现对物理GPU进行切分,并对显存和计算单元进行限制,从而模拟出多张小的vGPU卡。在Kubernetes集群中,基于这些切分后的vGPU进行调度,使不同的容器可以安全的共享同一张物理GPU,提高GPU的利用率。此外,插件还可以对显存做虚拟化处理(使用到的显存可以超过物理上的显存),运行一些超大显存需求的任务,或提高共享的任务数。
为实现上述目的,本发明实施例提供了如下的技术方案:
第一方面,在本发明提供的一个实施例中,提供了一种GPU虚拟化部署方法,包括以下步骤:
基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令;
Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令;
Kubernete根据用户选择数据的GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源;
GPU资源分配完毕后,启动容器,并在容器启动后执行用户所选的启动脚本。
作为本发明的进一步方案,所述在线部署系统用于镜像上传管理、模型管理以及算法管理,所述在线部署系统的配置页面上设置有镜像上传管理、模型管理以及算法管理的操作选项。
作为本发明的进一步方案,基于在线部署系统中的配置页面获取用户选择数据,包括:
基于在线部署系统中的配置页面获取用户选择的模型和部署镜像,进行环境部署,并获取用户选择上传的部署环境的镜像文件。
作为本发明的进一步方案,所述在线部署系统的配置页面还用于获取用户选择的容器内应用,并启动脚本文件。
作为本发明的进一步方案,所述基于在线部署系统中的配置页面获取用户选择数据,还包括获取用户选择所需要的配置参数,所述配置参数包括内存大小、GPU个数以及磁盘空间。
作为本发明的进一步方案,所述GPU虚拟化部署方法,还包括基于用户选择的配置参数提交部署请求,在线部署系统通过用户配置生成Kubernete所需的脚本文件,提交给Kubernete执行容器部署。
作为本发明的进一步方案,所述Kubernete自动拉取用户选择的镜像文件,通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令。
作为本发明的进一步方案,若Kubernete根据用户选择数据的GPU配置时,未识别到用户选择数据的GPU配置,则自动分配默认配置。
作为本发明的进一步方案,所述GPU虚拟化调度器用于监听Kubernetes中的容器启动时的资源分配器,通过容器启动参数,来匹配有资源的节点。
第二方面,在本发明提供的一个实施例中,提供了一种GPU虚拟化部署系统,该系统包括:
环境部署模块,用于基于在线部署系统中的配置页面获取用户选择的模型和部署镜像,进行环境部署,选择上传的部署环境的镜像文件;
部署指令生成模块,用于根据用户选择容器内应用启动脚本文件以及用户所选择的配置参数提交部署请求,生成容器部署指令,在线部署系统通过用户配置生成Kubernete所需的脚本文件,提交给Kubernete执行容器部署;
服务器选择模块,用于基于Kubernete自动拉取用户选择的镜像文件,通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送部署指令;
GPU分割模块,用于基于Kubernete根据用户GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源。
作为本发明的进一步方案,所述虚拟化插件为NVIDIA官方插件二次开发的开源插件4paradigm/k8s-device-plugin。
作为本发明的进一步方案,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源时,Kubernete集群master节点所在服务器,对官方device plugin驱动进行替换,基于二次扩展的开源插件切分出多张vGPU卡;
切分出多张vGPU卡时,还包括安装虚拟化插件配置默认的分割策略,将物理GPU显卡进行内存分割,分割成等份虚拟GPU,并配置虚拟GPU的可使用算力。
第三方面,在本发明提供的又一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现GPU虚拟化部署方法的步骤。
第四方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述GPU虚拟化部署方法的步骤。
本发明提供的技术方案,与现有的技术方案相比,具有如下有益效果:
本发明提供的GPU虚拟化部署方法、系统、计算机设备和存储介质,通过实现GPU虚拟化技术,对服务器GPU资源进行资源分割,避免Kubernete在容器部署时独占一整块GPU显卡资源而导致资源浪费,可以充分利用服务器GPU资源,达到一张物理GPU显卡,可以同时部署多个模型应用的目的。本发明可以降低服务器使用成本,可以将服务器资源充分利用起来,最大限度的降低不必要的资源浪费,以节省服务器资源,降低公司成本,提高模型应用的部署数量,合理分配服务器资源。
本发明的部署方案,在改造GPU虚拟化成本上做到了Kubernete版本兼容,在服务器现有的版本中直接无缝安装GPU虚拟化插件,避免了版本不兼容而导致系统需要整体升级的风险,安装虚拟化插件方便快捷。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。在附图中:
图1为本发明一个实施例的一种GPU虚拟化部署方法的流程图;
图2为本发明一个实施例的一种GPU虚拟化部署方法中虚拟化部署的流程图;
图3为本发明一个实施例的一种GPU虚拟化部署系统的系统框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
应当理解,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一回调函数和第二回调函数仅仅是为了区分不同的回调函数,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
由于在使用Kubernetes对模型进行部署的时候,CPU和内存资源可以配置选择所需要的核心数和内存大小,GPU却无法进行内存和算力分割,导致在启动模型应用的时候会浪费一部分GPU算力和GPU内存。
针对GPU资源消耗的问题,本发明提供了一种GPU虚拟化部署方法、系统、计算机设备和存储介质,通过加入GPU算力和显存虚拟化技术,来实现GPU资源的合理运用,降低部署成本。
本发明提供的GPU虚拟化部署方法、系统、计算机设备和存储介质,通过基于NVIDIA官方插件(NVIDIA/k8s-device-plugin)的二次开发,扩展插件的GPU虚拟化分割功能,在保留官方功能的基础上,实现对物理GPU进行切分,并对显存和计算单元进行限制,从而模拟出多张小的vGPU卡。在Kubernetes集群中,基于这些切分后的vGPU进行调度,使不同的容器可以安全的共享同一张物理GPU,提高GPU的利用率。此外,插件还可以对显存做虚拟化处理(使用到的显存可以超过物理上的显存),运行一些超大显存需求的任务,或提高共享的任务数。
还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
具体地,下面结合附图,对本发明实施例作进一步阐述。
请参阅图1,图1是本发明实施例提供的一种GPU虚拟化部署方法的流程图,如图1所示,该GPU虚拟化部署方法包括步骤S10至步骤S40。
S10、基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令;
S20、Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令;
S30、Kubernete根据用户选择数据的GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源;
S40、GPU资源分配完毕后,启动容器,并在容器启动后执行用户所选的启动脚本。
基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令时,本发明实施例的执行主体是执行GPU虚拟化部署方法的用户应用端设备,该设备可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
应当理解的是,在用户应用端的应用配置请求时,由执行GPU虚拟化部署方法的用户应用端设备通过与在线部署系统之间进行交互的方式,实时采集用户在线部署系统选择的配置相关数据。在本发明的实施例中,所述用户应用端的应用配置请求,包括所述用户应用端的用户标识、与所述用户标识对应的场景化应用系统以及所述场景化应用系统下的配置参数要求。
在本发明的实施例中,所述在线部署系统用于镜像上传管理、模型管理以及算法管理,所述在线部署系统的配置页面上设置有镜像上传管理、模型管理以及算法管理的操作选项。
基于在线部署系统中的配置页面获取用户选择数据,包括:
基于在线部署系统中的配置页面获取用户选择的模型和部署镜像,进行环境部署,并获取用户选择上传的部署环境的镜像文件。
其中,所述在线部署系统的配置页面还用于获取用户选择的容器内应用,并启动脚本文件。
在本发明的实施例中,所述基于在线部署系统中的配置页面获取用户选择数据,还包括获取用户选择所需要的配置参数,所述配置参数包括内存大小、GPU个数以及磁盘空间。
在本发明的实施例中,所述GPU虚拟化部署方法,还包括基于用户选择的配置参数提交部署请求,在线部署系统通过用户配置生成Kubernete所需的脚本文件,提交给Kubernete执行容器部署。
所述Kubernete用于自动拉取用户选择的镜像文件,通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令。
若Kubernete根据用户选择数据的GPU配置时,未识别到用户选择数据的GPU配置,则自动分配默认配置。
在本发明的实施例中,所述GPU虚拟化调度器用于监听Kubernetes中的容器启动时的资源分配器,通过容器启动参数,来匹配有资源的节点。
因此,本发明实施例中,参见图1和图2所示,GPU虚拟化部署方法进行虚拟化部署过程如下:
(1)用户通过在线部署系统,该系统可实现镜像上传管理、模型管理、算法管理,用户可通过系统中的配置页面选择对应的模型和部署镜像,进行环境部署,选择上传的部署环境的镜像文件。
(2)用户选择容器内应用启动脚本文件。
(3)用户选择所需要的内存大小、GPU个数、磁盘空间等配置。
(4)提交部署请求。
(5)在线部署系统通过用户配置生成Kubernete所需的脚本文件。
(6)提交给Kubernete执行容器部署。
(7)Kubernete自动拉取用户选择的镜像文件
(8)Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送部署指令。
(9)Kubernete根据用户GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源,如用户没有配置所需的GPU资源,则自动分配默认配置。
(10)资源分配完毕,启动容器,并在容器启动后执行用户所选的启动脚本。
需要说明的是,在本发明的实施例中,镜像是一个特殊的文件系统,其用于提供容器运行时需要的程序、库、资源、配置还有一个运行时参数,其最终目的就是能在容器中运行我们的代码。
GPU虚拟化调度器用来监听Kubernetes中的容器启动时的资源分配器,主要通过容器启动参数,来匹配有资源的节点,比如容器需要具有GPU资源的服务器,那么调度器会通过标签匹配具有GPU资源的服务器节点,然后把服务分配到该节点,进行启动。
因此,本发明通过实现GPU虚拟化技术,对服务器GPU资源进行资源分割,使Kubernete在容器部署的时候不会独占一整块GPU显卡资源,而导致资源浪费,通过该技术可以充分利用服务器GPU资源,达到一张物理GPU显卡,可以同时部署多个模型应用。在成本上,可为公司降低服务器使用成本,可以把服务器资源充分利用起来,最大限度的降低不必要的资源浪费。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
参见图3所示,本发明的一个实施例提供一种GPU虚拟化部署系统,该系统包括环境部署模块100、部署指令生成模块200、服务器选择模块300和GPU分割模块400。
在本发明实施例中,所述环境部署模块100用于基于在线部署系统中的配置页面获取用户选择的模型和部署镜像,进行环境部署,选择上传的部署环境的镜像文件。
所述环境部署模块100还用于通过所述在线部署系统的配置页面获取用户选择的容器内应用,并启动脚本文件。
在本发明实施例中,所述部署指令生成模块200用于根据用户选择容器内应用启动脚本文件以及用户所选择的配置参数提交部署请求,生成容器部署指令,在线部署系统通过用户配置生成Kubernete所需的脚本文件,提交给Kubernete执行容器部署。
在本发明实施例中,所述服务器选择模块300用于基于Kubernete自动拉取用户选择的镜像文件,通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送部署指令。
在本发明的实施例中,所述GPU分割模块400用于基于Kubernete根据用户GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源。
在本发明实施例中,所述虚拟化插件为NVIDIA官方插件二次开发的开源插件4paradigm/k8s-device-plugin。通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源时,Kubernete集群master节点所在服务器,对官方device plugin驱动进行替换,基于二次扩展的开源插件切分出多张vGPU卡;切分出多张vGPU卡时,还包括安装虚拟化插件配置默认的分割策略,将物理GPU显卡进行内存分割,分割成等份虚拟GPU,并配置虚拟GPU的可使用算力。
本发明的GPU虚拟化部署系统在进行虚拟化安装时,包括以下步骤:
(1)使用基于NVIDIA官方插件(NVIDIA/k8s-device-plugin)二次开发的开源插件4paradigm/k8s-device-plugin,Kubernete集群master节点所在服务器,对官方deviceplugin驱动进行替换,使用基于二次扩展的插件,实现切分出多张vGPU卡。
(2)安装虚拟化插件配置默认的分割策略,比如对1张16GB的物理GPU显卡进行内存分割,分割成等份的4GB的虚拟GPU,就可以分割出来四张虚拟GPU,并且配置虚拟GPU的可使用算力,。
(3)替换Kubernete的GPU调度器为虚拟GPU调度器,实现对虚拟GPU的资源使用,Kubernete不在直接控制物理GPU。
本发明的GPU虚拟化部署系统,通过基于NVIDIA官方插件(NVIDIA/k8s-device-plugin)的二次开发,扩展了插件的GPU虚拟化分割功能,在保留官方功能的基础上,实现了对物理GPU进行切分,并对显存和计算单元进行限制,从而模拟出多张小的vGPU卡。在Kubernetes集群中,基于这些切分后的vGPU进行调度,使不同的容器可以安全的共享同一张物理GPU,提高GPU的利用率。此外,插件还可以对显存做虚拟化处理(使用到的显存可以超过物理上的显存),运行一些超大显存需求的任务,或提高共享的任务数。
需要特别说明的是,GPU虚拟化部署系统进行执行如前述实施例的一种GPU虚拟化部署方法,因此,本实施例中对GPU虚拟化部署方法不再详细介绍。
在一个实施例中,在本发明的实施例中还提供了一种计算机设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的GPU虚拟化部署方法,该处理器执行指令时实现上述各方法实施例中的步骤:
基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令;
Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令;
Kubernete根据用户选择数据的GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源;
GPU资源分配完毕后,启动容器,并在容器启动后执行用户所选的启动脚本。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤:
基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令;
Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令;
Kubernete根据用户选择数据的GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源;
GPU资源分配完毕后,启动容器,并在容器启动后执行用户所选的启动脚本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
综上所述,本发明提供的GPU虚拟化部署方法、系统、计算机设备和存储介质,通过实现GPU虚拟化技术,对服务器GPU资源进行资源分割,避免Kubernete在容器部署时独占一整块GPU显卡资源而导致资源浪费,可以充分利用服务器GPU资源,达到一张物理GPU显卡,可以同时部署多个模型应用的目的。本发明可以降低服务器使用成本,可以将服务器资源充分利用起来,最大限度的降低不必要的资源浪费,以节省服务器资源,降低公司成本,提高模型应用的部署数量,合理分配服务器资源。
本发明的部署方案,在改造GPU虚拟化成本上做到了Kubernete版本兼容,在服务器现有的版本中直接无缝安装GPU虚拟化插件,避免了版本不兼容而导致系统需要整体升级的风险,安装虚拟化插件方便快捷。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种GPU虚拟化部署方法,其特征在于,该方法包括以下步骤:
基于在线部署系统中的配置页面获取用户选择数据,生成容器部署指令;
Kubernete通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令;
Kubernete根据用户选择数据的GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源;
GPU资源分配完毕后,启动容器,并在容器启动后执行用户所选的启动脚本。
2.根据权利要求1所述的GPU虚拟化部署方法,其特征在于,所述在线部署系统用于镜像上传管理、模型管理以及算法管理,所述在线部署系统的配置页面上设置有镜像上传管理、模型管理以及算法管理的操作选项。
3.根据权利要求2所述的GPU虚拟化部署方法,其特征在于,基于在线部署系统中的配置页面获取用户选择数据,包括:
基于在线部署系统中的配置页面获取用户选择的模型和部署镜像,进行环境部署,并获取用户选择上传的部署环境的镜像文件。
4.根据权利要求3所述的GPU虚拟化部署方法,其特征在于,所述在线部署系统的配置页面还用于获取用户选择的容器内应用,并启动脚本文件取。
5.根据权利要求3所述的GPU虚拟化部署方法,其特征在于,所述基于在线部署系统中的配置页面获取用户选择数据,还包括获取用户选择所需要的配置参数,所述配置参数包括内存大小、GPU个数以及磁盘空间。
6.根据权利要求1所述的GPU虚拟化部署方法,其特征在于,所述GPU虚拟化部署方法,还包括基于用户选择的配置参数提交部署请求,在线部署系统通过用户配置生成Kubernete所需的脚本文件,提交给Kubernete执行容器部署。
7.根据权利要求6所述的GPU虚拟化部署方法,其特征在于,所述Kubernete自动拉取用户选择的镜像文件,通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送所述容器部署指令。
8.一种GPU虚拟化部署系统,其特征在于,包括:
环境部署模块,用于基于在线部署系统中的配置页面获取用户选择的模型和部署镜像,进行环境部署,选择上传的部署环境的镜像文件;
部署指令生成模块,用于根据用户选择容器内应用启动脚本文件以及用户所选择的配置参数提交部署请求,生成容器部署指令,在线部署系统通过用户配置生成Kubernete所需的脚本文件,提交给Kubernete执行容器部署;
服务器选择模块,用于基于Kubernete自动拉取用户选择的镜像文件,通过服务器标签识别GPU集群,通过GPU虚拟化调度器,选择空闲的服务器,发送部署指令;
GPU分割模块,用于基于Kubernete根据用户GPU配置,通过虚拟化插件从物理GPU中分割出用户所需的虚拟化GPU资源。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的GPU虚拟化部署程序,其中所述GPU虚拟化部署程序被所述处理器执行时,实现如权利要求1至7中任一项所述的GPU虚拟化部署方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有GPU虚拟化部署程序,其中所述GPU虚拟化部署程序被处理器执行时,实现如权利要求1至7中任一项所述的GPU虚拟化部署方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211636208.3A CN115617364B (zh) | 2022-12-20 | 2022-12-20 | Gpu虚拟化部署方法、系统、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211636208.3A CN115617364B (zh) | 2022-12-20 | 2022-12-20 | Gpu虚拟化部署方法、系统、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115617364A true CN115617364A (zh) | 2023-01-17 |
CN115617364B CN115617364B (zh) | 2023-03-14 |
Family
ID=84879745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211636208.3A Active CN115617364B (zh) | 2022-12-20 | 2022-12-20 | Gpu虚拟化部署方法、系统、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617364B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827253A (zh) * | 2023-02-06 | 2023-03-21 | 青软创新科技集团股份有限公司 | 一种芯片资源算力分配方法、装置、设备及存储介质 |
CN117636137A (zh) * | 2024-01-26 | 2024-03-01 | 北京蓝耘科技股份有限公司 | 一种gpu裸金属算力资源分配调度方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124607A (zh) * | 2019-12-16 | 2020-05-08 | 上海大学 | Fpga虚拟化部署实现高速安全的服务器集群管理方法 |
CN111913794A (zh) * | 2020-08-04 | 2020-11-10 | 北京百度网讯科技有限公司 | 用于共用gpu的方法、装置、电子设备及可读存储介质 |
CN112286644A (zh) * | 2020-12-25 | 2021-01-29 | 同盾控股有限公司 | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 |
WO2021210123A1 (ja) * | 2020-04-16 | 2021-10-21 | 日本電信電話株式会社 | スケジューリング方法、スケジューラ、gpuクラスタシステムおよびプログラム |
CN115048216A (zh) * | 2022-05-31 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 一种人工智能集群的资源管理调度方法、装置和设备 |
-
2022
- 2022-12-20 CN CN202211636208.3A patent/CN115617364B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124607A (zh) * | 2019-12-16 | 2020-05-08 | 上海大学 | Fpga虚拟化部署实现高速安全的服务器集群管理方法 |
WO2021210123A1 (ja) * | 2020-04-16 | 2021-10-21 | 日本電信電話株式会社 | スケジューリング方法、スケジューラ、gpuクラスタシステムおよびプログラム |
CN111913794A (zh) * | 2020-08-04 | 2020-11-10 | 北京百度网讯科技有限公司 | 用于共用gpu的方法、装置、电子设备及可读存储介质 |
CN112286644A (zh) * | 2020-12-25 | 2021-01-29 | 同盾控股有限公司 | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 |
CN115048216A (zh) * | 2022-05-31 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 一种人工智能集群的资源管理调度方法、装置和设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827253A (zh) * | 2023-02-06 | 2023-03-21 | 青软创新科技集团股份有限公司 | 一种芯片资源算力分配方法、装置、设备及存储介质 |
CN117636137A (zh) * | 2024-01-26 | 2024-03-01 | 北京蓝耘科技股份有限公司 | 一种gpu裸金属算力资源分配调度方法、装置及存储介质 |
CN117636137B (zh) * | 2024-01-26 | 2024-04-02 | 北京蓝耘科技股份有限公司 | 一种gpu裸金属算力资源分配调度方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115617364B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704186B (zh) | 基于混合分布架构的计算资源分配方法、装置和存储介质 | |
CN115617364B (zh) | Gpu虚拟化部署方法、系统、计算机设备和存储介质 | |
CN107733977B (zh) | 一种基于Docker的集群管理方法及装置 | |
US9851989B2 (en) | Methods and apparatus to manage virtual machines | |
Azab | Enabling docker containers for high-performance and many-task computing | |
CN107678752B (zh) | 一种面向异构集群的任务处理方法及装置 | |
CN104951694A (zh) | 一种管理虚拟机的隔离方法及装置 | |
US11816509B2 (en) | Workload placement for virtual GPU enabled systems | |
CN110888743A (zh) | 一种gpu资源使用方法、装置及存储介质 | |
CN112465146B (zh) | 一种量子与经典混合云平台以及任务执行方法 | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
CN113157379A (zh) | 集群节点资源调度方法及装置 | |
CN112395736A (zh) | 一种分布交互仿真系统的并行仿真作业调度方法 | |
CN110580195A (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN115617456A (zh) | 混合运行虚拟机与容器的方法、装置、电子设备和可读存储介质 | |
US9553761B2 (en) | Dynamic server to server configuration and initialization | |
US11249786B2 (en) | Virtualizing hardware components that implement AI applications | |
CN109032758B (zh) | 容器集群智能生命周期管理方法及装置 | |
CN107493200B (zh) | 一种光盘镜像文件的创建方法、虚拟机部署方法及装置 | |
JP6859463B2 (ja) | 仮想マシンを起動させるための方法、装置、デバイス及び媒体 | |
CN117519972A (zh) | Gpu资源管理方法及装置 | |
CN111857972A (zh) | 虚拟化网络功能vnf的部署方法、部署装置、部署设备 | |
CN104714843A (zh) | 多内核操作系统实例支持多处理器的方法及装置 | |
CN116467043A (zh) | 一种基于k8s容器化差异化自动部署方法、装置及介质 | |
CN104714821B (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 |