一种基于AI云的GPU资源分组调度实现方法和装置与流程

文档序号:17441526发布日期:2019-04-17 04:49阅读:245来源:国知局
一种基于AI云的GPU资源分组调度实现方法和装置与流程

本发明实施例涉及ai云技术,尤指一种基于ai云的gpu资源分组调度实现方法和装置。



背景技术:

在人工智能ai时代,算法工程师需要进行大量深度学习任务,通常使用docker容器来作为训练环境,使用昂贵的gpu卡能显著提高训练速度,大量配有gpu卡的ai服务器(docker容器宿主机)通过k8s(kubernetes简称,开源容器集群管理系统)来进行集群化资源管理,继而ai云平台可再通过k8s统一管理docker容器集群。当算法工程师需要使用gpu资源时,就需要gpu资源的分配,如何使得需要高性能gpu卡的任务来优先获得gpu卡就是一个需要面临解决的问题。



技术实现要素:

本发明实施例提供了一种基于ai云的gpu资源分组调度实现方法和装置,能够更加方便的管理资源,提高整体资源使用率,使得需要高性能gpu卡的任务优先获得高性能gpu资源,任务分配更均匀,既提高了gpu资源使用率,也提高了算法工程师的训练效率。

为了达到本发明实施例目的,本发明实施例提供了一种基于人工智能ai云的图形处理器gpu资源分组调度实现方法,所述方法可以包括:

根据gpu类型创建多个分组;

根据每个主机的资源配置情况将每个主机分配到相应的分组中;

对每个分组的gpu类型能够执行的业务种类进行分类,以在获取一个待执行的业务时,根据所述业务的业务种类确定所需的gpu类型,并根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述资源配置情况可以包括:所配置的gpu类型;所述gpu类型包括:p100、v100或无gpu。

在本发明的示例性实施例中,所述根据每个主机的资源配置情况将每个主机分配到相应的分组中可以包括:根据每个主机所配置的gpu类型,通过调用开源容器集群管理系统k8s的管理接口,给每个主机打上相应的标签。

在本发明的示例性实施例中,所述根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机可以包括:所述k8s根据每个主机上的标签确定出与所述所需的gpu类型相对应的分组中的全部主机,并从所述全部主机中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述方法还可以包括:在获取一个待执行的业务时,配置好所述待执行的业务相对应的容器,并在获取所述gpu处于空闲状态的主机后,将所述容器放入该gpu处于空闲状态的主机中。

在本发明的示例性实施例中,所述方法还可以包括:在所述待执行的业务被执行后,自动销毁所述容器。

本发明实施例还提供了一种基于人工智能ai云的图形处理器gpu资源分组调度实现装置,所述装置可以包括:分组模块、分配模块、分类模块和获取模块;

所述分组模块,用于根据gpu类型创建多个分组;

所述分配模块,用于根据每个主机的资源配置情况将每个主机分配到相应的分组中;

所述分类模块,用于对每个分组的gpu类型能够执行的业务种类进行分类,以在所述获取模块获取一个待执行的业务时,根据所述业务的业务种类确定所需的gpu类型,并根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述资源配置情况可以包括:所配置的gpu类型;所述gpu类型可以包括:p100、v100或无gpu。

在本发明的示例性实施例中,所述分配模块根据每个主机的资源配置情况将每个主机分配到相应的分组中可以包括:根据每个主机所配置的gpu类型,通过调用开源容器集群管理系统k8s的管理接口,给每个主机打上相应的标签。

在本发明的示例性实施例中,所述获取模块根据该所需的gpu类型从相应的分组中获取处于空闲状态的主机可以包括:通过所述k8s根据每个主机上的标签确定出与所述所需的gpu类型相对应的分组中的全部主机,并从所述全部主机中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述装置还可以包括:配置模块;

所述配置模块,用于在所述获取模块获取一个待执行的业务时,配置好所述待执行的业务相对应的容器,并在所述获取模块获取所述gpu处于空闲状态的主机后,将所述容器放入该gpu处于空闲状态的主机中。

在本发明的示例性实施例中,所述配置模块还可以用于:在所述待执行的业务被执行后,自动销毁所述容器。

本发明实施例包括:根据gpu类型创建多个分组;根据每个主机的资源配置情况将每个主机分配到相应的分组中;对每个分组的gpu类型能够执行的业务种类进行分类,以在获取一个待执行的业务时,根据所述业务的业务种类确定所需的gpu类型,并根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机。通过该实施例方案,实现了更加方便的管理资源,提高了整体资源使用率,使得需要高性能gpu卡的任务优先获得高性能gpu资源,任务分配更均匀,既提高了gpu资源使用率,也提高了算法工程师的训练效率。

本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。

图1为本发明实施例的基于ai云的gpu资源分组调度实现方法流程图;

图2为本发明实施例的基于ai云的gpu资源分组调度实现装置组成框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

为了达到本发明实施例目的,本发明实施例提供了一种基于人工智能ai云的图形处理器gpu资源分组调度实现方法,如图1所示,所述方法可以包括s101-s102:

s101、根据gpu类型创建多个分组。

在本发明的示例性实施例中,所述gpu类型可以包括:p100、v100或无gpu。

在本发明的示例性实施例中,首先可以通过预设的分组创建装置创建带有gpu标签(可根据型号如p100、v100、无)的多个分组。分组创建装置创建带有gpu标签(可根据型号如p100、v100、无)的分组时,可根据实际资源情况来合理创建分组,如果没有gpu可选择无。

s102、根据每个主机的资源配置情况将每个主机分配到相应的分组中。

在本发明的示例性实施例中,所述资源配置情况可以包括:所配置的gpu类型;即该主机中是否配置有gpu,如果没有配置,则可以将该主机分配到无gpu的分组中,如果配置有gpu,则可以进一步确定该主机所配置的gpu具体类型是什么,如p100、v100等,可以将该主机估计该具体的gpu类型分配到相应的分组中。

在本发明的示例性实施例中,可以通过主机分组装置将每个主机分到各个分组中(同时为主机打标签,以便于k8s通过主机标签来进行调度)。

在本发明的示例性实施例中,所述根据每个主机的资源配置情况将每个主机分配到相应的分组中可以包括:根据每个主机所配置的gpu类型,通过调用开源容器集群管理系统k8s的管理接口,给每个主机打上相应的标签。

在本发明的示例性实施例中,主机分组装置将主机分到各个分组中,分组的过程也就是给主机打标签的过程,通过调用k8s管理接口来给主机打标签,k8s可以通过主机标签来进行调度。

s103、对每个分组的gpu类型能够执行的业务种类进行分类,以在获取一个待执行的业务时,根据所述业务的业务种类确定所需的gpu类型,并根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,可以通过分组应用装置将分组资源应用到某种业务上,如p100、v100分组可用于深度学习业务,没有gpu的分组可用于不需要gpu的业务,例如,没有gpu的分组可用于创建可视化业务(可视化业务不需要gpu资源)。

在本发明的示例性实施例中,所述根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机可以包括:所述k8s根据每个主机上的标签确定出与所述所需的gpu类型相对应的分组中的全部主机,并从所述全部主机中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述方法还可以包括:在获取一个待执行的业务时,配置好所述待执行的业务相对应的容器,并在获取所述gpu处于空闲状态的主机后,将所述容器放入该gpu处于空闲状态的主机中。

在本发明的示例性实施例中,通过主机分组装置将主机资源合理的进行分组,资源调度装置根据业务需要确定的对主机的特定要求作为筛选条件来选择合适的主机进而创建容器。

在本发明的示例性实施例中,当用户提交一个需要p100型号的gpu的深度学习任务时,资源管理装置配置好容器规格,并指定将容器放置到带有p100标签的主机上;k8s通过调度装置筛选出打有p100标签的全部主机,然后再根据主机负载情况选取空闲的gpu分给用户使用。

在本发明的示例性实施例中,所述方法还可以包括:在所述待执行的业务被执行后,自动销毁所述容器,从而节省主机资源。

在本发明的示例性实施例中,通过设计合理的资源分组与应用策略,根据gpu类型(或型号)来对资源进行分组,使得不需要gpu的业务无法占用带有gpu的主机资源(cpu、内存、gpu),防止装有gpu的主机因cpu、内存等不足而无法创建带有gpu的容器,而使得gpu闲置浪费资源;从而提高了gpu使用率。

本发明实施例还提供了一种基于人工智能ai云的图形处理器gpu资源分组调度实现装置1,需要说明的是,上述的方法实施例中的任何实施例均可应用于该装置实施例中,在此不再一一赘述。如图2所示,所述装置可以包括:分组模块11、分配模块12、分类模块13和获取模块14;

所述分组模块11,用于根据gpu类型创建多个分组;

所述分配模块12,用于根据每个主机的资源配置情况将每个主机分配到相应的分组中;

所述分类模块13,用于对每个分组的gpu类型能够执行的业务种类进行分类,以在所述获取模块14获取一个待执行的业务时,根据所述业务的业务种类确定所需的gpu类型,并根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述资源配置情况可以包括:所配置的gpu类型;所述gpu类型可以包括:p100、v100或无gpu。

在本发明的示例性实施例中,所述分配模块12根据每个主机的资源配置情况将每个主机分配到相应的分组中可以包括:根据每个主机所配置的gpu类型,通过调用开源容器集群管理系统k8s的管理接口,给每个主机打上相应的标签。

在本发明的示例性实施例中,所述获取模块14根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机可以包括:通过所述k8s根据每个主机上的标签确定出与所述所需的gpu类型相对应的分组中的全部主机,并从所述全部主机中获取gpu处于空闲状态的主机。

在本发明的示例性实施例中,所述装置还可以包括:配置模块15;

所述配置模块15,用于在所述获取模块获取一个待执行的业务时,配置好所述待执行的业务相对应的容器,并在所述获取模块获取所述gpu处于空闲状态的主机后,将所述容器放入该gpu处于空闲状态的主机中。

在本发明的示例性实施例中,所述配置模块15还可以用于:在所述待执行的业务被执行后,自动销毁所述容器。

本发明实施例包括:根据gpu类型创建多个分组;根据每个主机的资源配置情况将每个主机分配到相应的分组中;对每个分组的gpu类型能够执行的业务种类进行分类,以在获取一个待执行的业务时,根据所述业务的业务种类确定所需的gpu类型,并根据该所需的gpu类型从相应的分组中获取gpu处于空闲状态的主机。通过该实施例方案,实现了更加方便的管理资源,提高了整体资源使用率,使得需要高性能gpu卡的任务优先获得高性能gpu资源,任务分配更均匀,既提高了gpu资源使用率,也提高了算法工程师的训练效率。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1