CN115904699A - 一种服务器gpu算力分配系统、方法及服务器 - Google Patents

一种服务器gpu算力分配系统、方法及服务器 Download PDF

Info

Publication number
CN115904699A
CN115904699A CN202211329482.6A CN202211329482A CN115904699A CN 115904699 A CN115904699 A CN 115904699A CN 202211329482 A CN202211329482 A CN 202211329482A CN 115904699 A CN115904699 A CN 115904699A
Authority
CN
China
Prior art keywords
gpu
resources
resource
computing power
management unit
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
CN202211329482.6A
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.)
Xiamen Jiansuan Technology Co ltd
Original Assignee
Xiamen Jiansuan 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 Xiamen Jiansuan Technology Co ltd filed Critical Xiamen Jiansuan Technology Co ltd
Priority to CN202211329482.6A priority Critical patent/CN115904699A/zh
Publication of CN115904699A publication Critical patent/CN115904699A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Power Sources (AREA)

Abstract

本发明公开了一种服务器GPU算力分配系统、方法及服务器,使用基于容器化与设备映射的GPU资源分割与共享方案将系统分为三层:硬件层、虚拟资源层以及容器层;硬件层提供GPU硬件资源,虚拟资源层是对于GPU资源的逻辑抽象,容器层统一管理对应设备的环境。通过在细粒度上划分GPU时间片与GPU显存资源,使得资源可以被统计、隔离及控制;通过容器化方案,在容器中创建进程并向虚拟资源层请求GPU资源;在此基础上,管理单元可以记录并统计GPU资源,通过状态感知与超额限制对GPU资源进行分配与控制,通过进程转移实现设备融合。本发明提出的GPU算力分配方法及系统使得GPU集群在数据安全、横向扩展、敏捷部署、提高运维效率以及降低成本方面均具有明显的效果。

Description

一种服务器GPU算力分配系统、方法及服务器
技术领域
本发明属于GPU虚拟化技术领域,特别涉及一种服务器GPU算力分配系统、方法及服务器。
背景技术
随着云计算的发展,应用GPU(Graphics Processing Unit,图形处理单元)的业务和工作流逐渐多样化,如云游戏、机器学习训练、医学图像处理以及4K甚至8K视频的编码与转码等,都需要大量的GPU资源参与运算,这将会给针对GPU资源的调度带来更大的挑战。根据图形渲染与机器学习任务具有高度并行性的特点,因此GPU可以仅仅通过增加并行处理单元和存储器控制单元便可有效的提高处理能力和存储器带宽,因此会配有GPU集群系统,这样的GPU集群一般是公共共享的,需要进行管理,否则可能造成GPU资源的浪费以及不同使用者之间产生冲突。
目前在各类的GPU集群上GPU的资源调度都是一个难题,主要的发展方向和目前的应用场景都是大融合,即将多个图形处理单元的算力集中在一起处理困难问题,例如对于大型3D工程的渲染;很少有将一部分的GPU资源分配到多个任务当中的系统。目前主流的分配方案一个是使用基础的进程管理来控制设备来“自由”的占有设备资源,该方案运行的层级较高,可以和其他程序一并运行,增加了设备被攻击的风险,增大了运维和安全控制的难度;另外可以自由的占有设备的资源导致各个子任务之间的调度异常不均衡,容易导致部分任务无法获取足以正常运行的资源。另一个是使用英特尔中央处理器协同英伟达的图形处理单元的组合并通过虚拟机分隔设备的方式将其穿透到到虚拟机完成设备级别的调度;这个方案通过调度显卡设备穿透到不同虚拟机的方式让设备“占有”显卡,由于需要一直调度显卡使得显卡的使用难度加大,而且分隔的颗粒度会受到较大的限制,在GPU资源的利用上产生浪费。
为解决虚拟化主机上GPU的资源调度问题,现有技术中公开号为“CN111930522A”的中国发明专利公开了一种GPU虚拟化和资源调度方法和装置,其方法包括以下步骤:S1,将GPU在k8s集群上加载和注册,对GPU在cuda核心和显存的粒度上进行虚拟化,并根据虚拟化得到的k8s集群节点信息构建出节点资源列表;S2,在待处理任务提交后,根据所述节点资源列表和所述待处理任务所需资源进行GPU资源的分配,其中,根据所述待处理任务所需资源的大小选择相应的调度器;S3,在完成GPU资源的分配后,监控当前k8s集群各个节点的资源占用情况,并根据所述资源占用情况进行显示和报警。该方案解决了虚拟化主机上GPU的资源调度问题,使得GPU资源的分配更加合理,避免了GPU资源的浪费。但是,对于共享GPU的数据安全及GPU资源在横向扩展、敏捷部署、运维效率的问题上,缺少有效的解决方案,且在使用不支持CUDA(Compute Unified Device Architecture,统一计算架构)的设备上无法应用上述方案。
发明内容
本发明提供一种服务器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算力分配方法,包括以下步骤:
S1:建立虚拟化的显卡资源池,首先将硬件层上的物理显卡GPU算力进行收集并构建GPU算力资源列表;然后根据所述GPU算力资源列表,将GPU算力资源进行切片,使得GPU算力资源可以被统计、隔离以及控制;
S2:管理单元根据进程请求或释放GPU算力资源时创建的映射文件系统进行记录及统计,通过遍历GPU算力分配系统中所有的映射文件系统获取所有的进程以及对应的GPU算力资源消耗数据,根据所述GPU算力资源列表计算并记录空闲GPU算力资源;
S3:容器层根据任务需求创建容器,在容器中创建相应的进程并初始化进程,获得进程信息,并将所述进程信息传送至所述管理单元;
S4:所述管理单元根据所述进程信息获取对应进程所需的GPU算力资源,先判断当前空闲GPU算力资源是否充足,若空闲GPU算力资源充足,则向虚拟资源层发送容器配置信息以及进程信息以请求GPU算力资源;若空闲GPU算力资源不足,则转入异常请求流程,将该容器暂停后转入排队队列,待其他进程释放GPU算力资源时,重新检查队列中的容器及空闲GPU算力资源;
S5:虚拟资源层根据所述管理单元提交的GPU算力资源请求为所述容器配置GPU算力资源,并向所述容器发送资源配置信息;
S6:所述管理单元根据所述资源配置信息为相应的容器配置GPU算力资源,并运行相应的容器。
优选地,所述步骤S1进行切片的步骤具体为:将GPU算力资源按时间切片成GPU时间片以及将GPU的显存资源切片成GPU显存区块,所述显存资源先虚拟化为虚拟显存,所述虚拟显存映射到对应的物理显存中,通过所述虚拟显存将物理显存资源进行切割与超分,形成若干GPU显存区块,每个进程通过占据GPU时间片和GPU显存区块占据GPU算力资源。
一种服务器,所述服务器包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现上述的服务器GPU算力分配方法。
与现有技术相比,本发明具有以下技术效果:
1.本发明提供的GPU算力分配方法及系统通过容器化技术来分隔消耗GPU资源的进程,从而保障用户之间的相对独立,不同的使用者可以根据自己的需要部署不同环境的容器,而不对其他使用者造成干扰。当进程不需要GPU资源时,此机制不会对设备造成干扰;可以有效隔离使用GPU资源的不同进程,从而实现业务的安全隔离,保证不同使用者的数据安全。
2.本发明提供的GPU算力分配方法及系统使用虚拟资源组来抽象管理各个容器,在细节上通过内核对GPU资源进行量化、隔离以及控制,并以此对使用GPU资源的进程进行控制与调度。实现对于GPU资源总体的控制,可以有效避免GPU资源的浪费。
3.本发明提供的GPU算力分配方法及系统通过设备间通讯方式连通多个设备的资源,通过对进程信息的打包与二次执行来进行设备间调度,实现进程在不同设备间进行转移,借此实现设备融合,可方便快捷地在硬件层上对GPU资源进行扩展,使得GPU集群的部署更加灵活,在横向扩展、敏捷部署、提高运维效率、降低成本均具有明显的效果。
4.本发明提供的GPU算力分配方法及系统对GPU算力资源进行虚拟化,通过对GPU运算资源进行时间切片以及对GPU显存资源分块,不依赖于CUDA核心的划分,使得本发明可运用于不支持CUDA的设备上。
附图说明
图1是本发明所述的一种服务器GPU算力分配系统的架构示意图;
图2是本发明所述的一种服务器GPU算力分配方法的GPU调度流程图;
图3是本发明所述的一种服务器GPU算力分配方法的设备进程转移时序图。
附图标记为:1、硬件层;2、虚拟资源层;3、容器层;4、管理单元。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例,并参照附图,对本发明技术方案进行清楚、完整地描述。
本发明实施例提供一种服务器GPU算力分配系统,包括硬件层1、虚拟资源层2、容器层3以及管理单元4。
硬件层1,所述硬件层1进一步包括一个或多个物理GPU,用于向虚拟资源层2提供GPU硬件资源。
虚拟资源层2,所述虚拟资源层2进一步包括一个或者多个资源组,所述资源组为所述硬件层1的物理GPU经逻辑分配形成的包含一个或多个物理GPU的逻辑资源组;用于建立虚拟化的显卡资源池,首先将所述硬件层1上的物理显卡GPU算力进行收集并构建GPU算力资源列表;然后根据所述GPU算力资源列表,将GPU算力资源进行切片,使得GPU算力资源可以被统计、隔离以及控制。所述切片操作将GPU运算资源按照运算时间进行分割,将GPU显存资源虚拟化并进行拆分。
设备GPU资源的算力资源细化的划分具有较多的种类,存在GPU核心的计算资源,通讯管道的资源,以及各个特殊处理单元的计算单元。本实施例通过计算各种内核或者驱动生成的文件或者利用其提供的接口获取到设备的运行状态。其具体执行代码示例片段如下:
amdgpu_ring_write(ring,PACKET3(PACKET3_EVENT_WRITE_EOP,4));
amdgpu_ring_write(ring,(EOP_TCL1_ACTION_EN|EOP_TC_ACTION_EN
|EOP_TC_WB_ACTION_EN|EVENT_TYPE(CACHE_FLUSH_AND_INV_TS_EVENT)
|EVENT_INDEX(5)));
amdgpu_ring_write(ring,addr&0xfffffffc);
amdgpu_ring_write(ring,(upper_32_bits(addr)&0xffff),
DATA_SEL(write64bit?2:1)|INT_SEL(int_sel?2:0));
amdgpu_ring_write(ring,lower_32_bits(seq));
amdgpu_ring_write(ring,upper_32_bits(seq));
此处代码仅作为C语言的部分运行算法示例片段。
虚拟资源层2在空闲GPU算力资源充足的情况下,接收所述管理单元4提交的GPU算力资源请求,并将所述GPU算力资源请求所需的GPU算力资源分配至相应容器。
容器层3,所述容器层3进一步包括多个容器,一个或者多个容器可供一个所述逻辑资源组载入,用于在容器中隔离出一个专有环境以运行进程,并统一管理对应设备的环境。
管理单元4,所述管理单元基于所述硬件层1、虚拟资源层2以及容器层3反馈的信息对GPU资源进行统计及控制,并对所述硬件层1、虚拟资源层2以及容器层3进行管理;所述管理单元4可实时获取进程状态、直接控制进程以及在不同设备间转移进程。
管理单元4通过对所述硬件层1、虚拟资源层2及容器层3的管理控制服务器GPU算力资源,包括内核级别的限制及管理单元4的主动控制。所述内核级别的限制,管理单元4在进程过度索要GPU算力资源时向对应进程发送终止或者异常的指令,从而达成对于GPU算力资源使用的控制。所述管理单元4的主动控制,管理单元4通过操作系统内核记录的信息计算出每个进程的资源利用情况,当发现某个进程的资源消耗出现异常,则会暂停进程或者清理进程,使得不符合管理单元4要求的进程终止并退还资源。
管理单元4可获取使用GPU算力资源之进程的状态,所述状态包括创建状态、就绪状态、运行状态、阻塞状态、结束状态以及所述进程要求的GPU算力资源信息。管理单元4通过获取每个进程的状态信息,并计算总体情况,当空闲GPU资源总量低于一定额度并持续了一段时间后,管理单元4将记录GPU算力资源空闲消息,例如持续1小时显存占有低于20%并且80%时间片转至空闲状态;或者高于一定的额度则发送忙碌消息,例如持续1小时显存占有高于90%并且90%时间片转至忙碌状态。
管理单元4可实时监控所有正在运行的进程,若有进程使用的GPU算力资源超出限额,所述管理单元4可直接暂停该进程供运维人员检查或者直接清理该进程以阻止对GPU算力资源的超额占用。进程的显存占用或者时间片占用远超常规进程时,例如常规的数据占有显存为1200MB,但是当管理单元4检视进程占有资源时可能就会发现显存的占有达到了7000MB,那么判断该进程可能是发生了异常导致申请了大量的显存资源,管理单元可直接控制该进程,对进程进行清理,同时释放该进程占用的GPU资源。
管理单元4可将运行中的进程在不同设备间转移实现进程转移,所述管理单元4将原设备上的进程信息进行打包,同该进程对应的虚拟化文件系统进行转移,通过设备间通信方式转移到新设备,在所述新设备上将打包的进程信息及其对应的虚拟化文件系统接收并挂载,加入到自己的上下文中运行。
如图3所示,为本发明提供的一种GPU算力分配方法的进程转移方法,具体步骤如下:
所述管理单元4在原设备上暂停原进程,将原进程的信息进行打包;所述管理单元4将打包好的原进程信息以及原进程对应的虚拟化文件系统通过设备间通信方式转移到新设备;所述新设备接收输所述管理单元4发送的内容,并将打包好的原进程信息解包,挂载解包好的进程及原进程对应的虚拟化文件系统;所述新设备运行已经挂载的进程,向所述管理单元4发送进程转移成功的消息,所述管理单元4接收到进程转移成功的消息后,在原设备上将原进程移除。
为实现进程转移,在两台进程转移的设备之间需要较高宽带的设备间通信方式。通过对进程信息的打包与二次执行来进行设备间调度,实现进程在不同设备间进行转移,借此实现设备融合,可方便快捷地在硬件层上对GPU资源进行扩展,使得GPU集群的部署更加灵活,在横向扩展、敏捷部署、提高运维效率、降低成本均具有明显的效果。进程转移的具体流程如下,包括三种结果:
转移成功,管理单元4在原设备上暂停原进程,再将原进程的信息进行打包;管理单元4将打包好的原进程信息以及原进程对应的虚拟化文件系统通过设备间通信方式转移到新设备;新设备接收输管理单元4发送的内容,并将打包好的原进程信息解包,挂载解包好的进程;新设备运行已经挂载的进程,向管理单元4发送进程转移成功的消息,管理单元4接收到进程转移成功的消息后,将原进程移除。
转移失败,管理单元4在原设备上暂停原进程,再将原进程的信息进行打包;管理单元4将打包好的原进程信息以及原进程对应的虚拟化文件系统通过设备间通信方式转移到新设备,但是发送失败;管理单元4多次循环发送信息的步骤直至达到设定次数均未成功,标记转移失败,记录该失败异常并将待发送的包移除,在原设备上重启原进程。
解压或挂载异常,管理单元4在原设备上暂停原进程,再将原进程的信息进行打包;管理单元4将打包好的原进程信息以及原进程对应的虚拟化文件系统通过设备间通信方式转移到新设备;新设备接收输管理单元4发送的内容,并将打包好的原进程信息解包,挂载解包好的进程,但是在解包和挂载的步骤中失败;新进程将记录该失败异常,并向管理单元4发送转移失败的消息,管理单元4在收到转移失败的消息后,在原设备上将已发送的包移除并重启原进程。
一种服务器GPU算力分配方法,包括以下步骤:
S1:建立虚拟化的显卡资源池,首先将硬件层1上的物理显卡GPU算力进行收集并构建GPU算力资源列表;然后根据所述GPU算力资源列表,将GPU算力资源进行切片,使得GPU算力资源可以被统计、隔离以及控制。在细节上通过内核对GPU资源进行量化、隔离以及控制,并以此对使用GPU资源的进程进行控制与调度,实现对于GPU资源总体的控制,可以在后续利用GPU资源时有效避免GPU资源的浪费。
S2:管理单元4根据进程请求或释放GPU算力资源时创建的映射文件系统进行记录及统计,通过遍历GPU算力分配系统中所有的映射文件系统获取所有的进程以及对应的GPU算力资源消耗数据,根据所述GPU算力资源列表计算并记录空闲GPU算力资源。
S3:容器层3根据任务需求创建容器,在容器中创建相应的进程并初始化进程,获得进程信息,并将所述进程信息传送至所述管理单元4,向虚拟资源层申请GPU资源。通过容器技术,进程的PID、IPC及Network等系统资源不再是全局性的,以此保障GPU资源的隔离,进而保障用户之间的相对独立。
S4:管理单元4根据所述进程信息获取对应进程所需的GPU算力资源,先判断当前空闲GPU算力资源是否充足,若空闲GPU算力资源充足,则向虚拟资源层2发送容器配置信息以及进程信息以请求GPU算力资源;若空闲GPU算力资源不足,则转入异常请求流程,将该容器暂停后转入排队队列,待其他进程释放GPU算力资源时,重新检查队列中的容器及空闲GPU算力资源。
S5:虚拟资源层2根据所述管理单元4提交的GPU算力资源请求为所述容器配置GPU算力资源,并向所述容器发送资源配置信息。
S6:管理单元4根据收到的资源配置信息为相应的容器配置GPU算力资源,并运行相应的容器。
步骤S1进行切片的步骤具体为:将GPU算力资源按时间切片成GPU时间片以及将GPU的显存资源切片成GPU显存区块,所述显存资源先虚拟化为虚拟显存,所述虚拟显存映射到对应的物理显存中,通过所述虚拟显存将物理显存资源进行切割与超分,形成若干GPU显存区块,每个进程通过占据GPU时间片和GPU显存区块占据GPU算力资源,通过虚拟显存技术完成各个业务的资源分配。对于使用GPU算力资源的进程的控制也主要在这两个部分上:与运算资源相关的GPU运算时间片以及相对于显存资源的GPU显存区块的大小。针对不同的任务可以设置不同的GPU运算资源与显存限制,所有在调用GPU的进程任务都会被划分GPU资源。当进程不需要GPU资源时此机制不会对设备造成干扰,当进程开始请求GPU资源时内核会要求进程获取对应的GPU资源的内存锁资源,此后才能等待GPU分配时间片来处理对应的进程任务。
如图2所示,为本发明提供的GPU算力分配方法的一个进程申请GPU资源的流程。在容器中创建的进程首先发起GPU资源申请;管理单元收到该GPU资源请求后,先检查GPU资源记录,根据该GPU资源请求的资源数量与剩余的GPU资源数量进行比对,若剩余GPU资源不足,则转入资源不足的异常处理流程,若剩余GPU资源充足,则向该进程分配其所需的GPU资源并记录;该进程请求GPU资源完成后处于等待状态,待收到管理单元分配的GPU资源后,进入执行状态,若执行异常,则转入执行异常处理流程,若执行正常,则在执行完毕后记录执行结果并清理GPU资源,同时返回执行结果,至此一个完整的进程请求GPU资源流程结束。资源不足的异常处理流程首先由管理单元记录资源不足的异常并返回异常结果,结束整个资源请求流程;执行异常处理流程由进程进行异常处理、清理记录资源并向管理单元返回异常结果。
一种服务器,所述服务器包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现上述的服务器GPU算力分配方法。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (10)

1.一种服务器GPU算力分配系统,其特征在于,包括:
硬件层(1),所述硬件层(1)进一步包括一个或多个物理GPU,用于提供图形化算力,向虚拟资源层(2)提供GPU硬件资源;
虚拟资源层(2),所述虚拟资源层(2)进一步包括一个或者多个资源组,所述资源组为所述硬件层(1)的物理GPU经算力分割逻辑分配形成的包含一个或多个物理GPU的逻辑算力资源组;进一步地,管理单元(4)通过收集所述硬件层(1)上的物理显卡GPU算力信息以建立虚拟化的GPU算力资源列表,并根据所述GPU算力资源列表,将GPU算力资源进行切片,使得GPU算力资源可以被统计、隔离以及控制;所述切片操作将GPU运算资源按照运算时间进行分割,将GPU显存资源虚拟化并进行拆分;
容器层(3),所述容器层(3)进一步包括多个容器,一个或者多个容器可供一个所述逻辑算力资源组载入,多个容器运行不同进程所需的专用环境,用于对不同的进程进行资源隔离;
管理单元(4),所述管理单元根据所述硬件层(1)、虚拟资源层(2)以及容器层(3)反馈的硬件信息、虚拟资源空闲信息及虚拟资源占用信息对GPU算力资源进行统计及控制,并对所述容器层(3)中进程使用GPU算力资源的行为进行控制,包括限制进程对GPU算力资源的申请及使用;以及获取进程的状态,控制进程及转移进程。
2.根据权利要求1所述一种服务器GPU算力分配系统,其特征在于,所述虚拟资源层(2)接收所述管理单元(4)提交的GPU算力资源请求,并将所述GPU算力资源请求所需的GPU算力资源分配至相应容器。
3.根据权利要求1所述一种服务器GPU算力分配系统,其特征在于,所述管理单元(4)对所述容器层(3)中的进程进行的管理与控制,包括进程申请GPU算力资源的限制及进程使用GPU算力资源的管理;
管理单元(4)对进程申请GPU算力资源的限制具体为,管理单元(4)发现一进程过度索要GPU算力资源时向对应进程发送终止或者异常的指令,从而达成对于进程申请GPU算力资源的限制;
管理单元(4)对进程使用GPU算力资源的管理具体为:管理单元(4)获取操作系统内核记录的进程信息计算出每个进程的GPU算力资源利用情况,当发现一进程的GPU算力资源消耗出现异常,则管理单元(4)会暂停进程或者清理进程,使得不符合要求的进程终止并退还资源。
4.根据权利要求1所述一种服务器GPU算力分配系统,其特征在于,所述管理单元(4)可获取使用GPU算力资源的进程的状态,所述进程的状态包括进程创建状态、就绪状态、运行状态、阻塞状态、结束状态以及所述进程要求的GPU算力资源信息。
5.根据权利要求1所述一种服务器GPU算力分配系统,其特征在于,所述管理单元(4)可实时监控所有正在运行的进程,若有进程使用的GPU算力资源超出限额,所述管理单元(4)可直接暂停该进程或者直接清理该进程以阻止对GPU算力资源的超额占用。
6.根据权利要求1所述一种服务器GPU算力分配系统,其特征在于,所述管理单元(4)可将运行中的进程在不同设备间转移实现进程转移,所述管理单元(4)将原设备上的进程信息进行打包,同该进程对应的虚拟化文件系统进行转移,通过设备间通信方式转移到新设备,在所述新设备上将打包的进程信息及其对应的虚拟化文件系统接收并挂载,加入到自己的上下文中运行。
7.根据权利要求6所述一种服务器GPU算力分配系统,其特征在于,所述进程转移方法的具体步骤如下:
所述管理单元(4)在原设备上暂停原进程,将原进程的信息进行打包;
所述管理单元(4)将打包好的原进程信息以及原进程对应的虚拟化文件系统通过设备间通信方式转移到新设备;
所述新设备接收输所述管理单元(4)发送的内容,并将打包好的原进程信息解包,挂载解包好的进程及原进程对应的虚拟化文件系统;
所述新设备运行已经挂载的进程,向所述管理单元(4)发送进程转移成功的消息,所述管理单元(4)接收到进程转移成功的消息后,在原设备上将原进程移除。
8.一种服务器GPU算力分配方法,其特征在于,包括以下步骤:
S1:建立虚拟化的显卡资源池,首先将硬件层(1)上的物理显卡GPU算力进行收集并构建GPU算力资源列表;然后根据所述GPU算力资源列表,将GPU算力资源进行切片,使得GPU算力资源可以被统计、隔离以及控制;
S2:管理单元(4)根据进程请求或释放GPU算力资源时创建的映射文件系统进行记录及统计,通过遍历GPU算力分配系统中所有的映射文件系统获取所有的进程以及对应的GPU算力资源消耗数据,根据所述GPU算力资源列表计算并记录空闲GPU算力资源;
S3:容器层(3)根据任务需求创建容器,在容器中创建相应的进程并初始化进程,获得进程信息,并将所述进程信息传送至所述管理单元(4);
S4:所述管理单元(4)根据所述进程信息获取对应进程所需的GPU算力资源,先判断当前空闲GPU算力资源是否充足,若空闲GPU算力资源充足,则向虚拟资源层(2)发送容器配置信息以及进程信息以请求GPU算力资源;若空闲GPU算力资源不足,则转入异常请求流程,将该容器暂停后转入排队队列,待其他进程释放GPU算力资源时,重新检查队列中的容器及空闲GPU算力资源;
S5:虚拟资源层(2)根据所述管理单元(4)提交的GPU算力资源请求为所述容器配置GPU算力资源,并向所述容器发送资源配置信息;
S6:所述管理单元(4)根据所述资源配置信息为相应的容器配置GPU算力资源,并运行相应的容器。
9.根据权利要求8所述一种服务器GPU算力分配方法,其特征在于,所述步骤S1进行切片的步骤具体为:将GPU算力资源按时间切片成GPU时间片以及将GPU的显存资源切片成GPU显存区块,所述显存资源虚拟化为虚拟显存,所述虚拟显存映射到对应的物理显存中,通过所述虚拟显存将物理显存资源进行切割与超分,形成若干GPU显存区块,每个进程通过占据GPU时间片和GPU显存区块占据GPU算力资源。
10.一种服务器,其特征在于,所述服务器包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时,实现权利要求8-9中任一项所述的服务器GPU算力分配方法。
CN202211329482.6A 2022-10-27 2022-10-27 一种服务器gpu算力分配系统、方法及服务器 Pending CN115904699A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211329482.6A CN115904699A (zh) 2022-10-27 2022-10-27 一种服务器gpu算力分配系统、方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211329482.6A CN115904699A (zh) 2022-10-27 2022-10-27 一种服务器gpu算力分配系统、方法及服务器

Publications (1)

Publication Number Publication Date
CN115904699A true CN115904699A (zh) 2023-04-04

Family

ID=86473558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211329482.6A Pending CN115904699A (zh) 2022-10-27 2022-10-27 一种服务器gpu算力分配系统、方法及服务器

Country Status (1)

Country Link
CN (1) CN115904699A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737397A (zh) * 2023-08-15 2023-09-12 北京麟卓信息科技有限公司 一种基于嵌入式平台的算力柔性组合方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737397A (zh) * 2023-08-15 2023-09-12 北京麟卓信息科技有限公司 一种基于嵌入式平台的算力柔性组合方法及系统

Similar Documents

Publication Publication Date Title
US10467725B2 (en) Managing access to a resource pool of graphics processing units under fine grain control
CN107231815B (zh) 用于图形渲染的系统和方法
CN107025205B (zh) 一种分布式系统中的训练模型的方法及设备
CN110888743B (zh) 一种gpu资源使用方法、装置及存储介质
CN109936604B (zh) 一种资源调度方法、装置和系统
US9929931B2 (en) Efficient provisioning and deployment of virtual machines
CN110719206B (zh) 天基fpga虚拟化计算服务系统、方法和可读存储介质
US20190155660A1 (en) Scheduling system for computational work on heterogeneous hardware
CN106453564A (zh) 弹性云分布式海量请求处理的方法、装置及系统
CN106095524B (zh) 一种虚拟机部署方法、系统和装置
KR101474872B1 (ko) 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템
US11579908B2 (en) Containerized workload scheduling
CN109726005B (zh) 用于管理资源的方法、服务器系统和计算机可读介质
WO2012061941A1 (en) Managing memory across a network of cloned virtual machines
WO2022108631A1 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
CN108064377A (zh) 一种多系统共享内存的管理方法及装置
Pongsakorn et al. Container rebalancing: Towards proactive linux containers placement optimization in a data center
US20200394071A1 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
KR101765725B1 (ko) 대용량 방송용 빅데이터 분산 병렬처리를 위한 동적 디바이스 연결 시스템 및 방법
CN115904699A (zh) 一种服务器gpu算力分配系统、方法及服务器
US11521042B2 (en) System and method to dynamically and automatically sharing resources of coprocessor AI accelerators
KR101640231B1 (ko) 자동 분산병렬 처리 하둡 시스템의 지원을 위한 클라우드 구동 방법
CN102508696B (zh) 一种不对称的资源调度方法及装置
CN115080207A (zh) 基于容器集群的任务处理方法及装置
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법

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