CN115904740A - 一种gpu资源调用方法及*** - Google Patents
一种gpu资源调用方法及*** Download PDFInfo
- Publication number
- CN115904740A CN115904740A CN202310154187.XA CN202310154187A CN115904740A CN 115904740 A CN115904740 A CN 115904740A CN 202310154187 A CN202310154187 A CN 202310154187A CN 115904740 A CN115904740 A CN 115904740A
- Authority
- CN
- China
- Prior art keywords
- gpu
- information
- resource
- monitoring module
- control module
- 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
-
- 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
- Debugging And Monitoring (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本申请提供一种GPU资源调用方法及***,方法包括:监测模块获取本地GPU信息,并向控制模块发送本地GPU信息;控制模块在接收到生命周期监测模块发送的资源管理组件对应的GPU需求后,根据本地GPU信息分配对应的GPU资源信息;生命周期监测模块接收控制模块返回的GPU资源信息;资源管理组件基于GPU资源信息进行GPU资源的调用。因此,通过实现面向GPU远程池化的监测模块、控制模块以及生命周期监测模块,结合GPU远程池化方案,实现GPU远程统一池化的能力,使得资源管理组件可以调用集群中不同节点上分布的GPU资源,从而使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种GPU资源调用方法及***。
背景技术
随着物联网、5G、人工智能等新技术的发展,数据化、智能化时代已经到来。算法、算力、数据成为新时代的三辆马车,共同促进社会各行各业的进步与升级。在数据海量化,产业智能化的大潮中,未来对新一代智能化算力有巨大需求。“智算中心”将逐渐取代传统数据中心,成为新一代的基础设施,满足未来对新型算力、海量数据、智能应用的依托需求。
为了能够提升智能算力的利用效率,人工智能(Artificial Intelligence,AI)应用对图形处理器(Graphics Processing Unit,GPU)的资源进行调用的能力是基础。在现有技术中,AI应用智能使用本地的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资源向控制模块提交对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资源调用方法之前,首先介绍一种GPU资源调用***100。请参照图1,图1为本申请实施例提供的一种GPU资源调用***的结构框图,该GPU资源调用***100包括:监测模块101、控制模块102、生命周期监测模块103以及资源管理组件104。
具体的,本申请实施例提供的GPU资源调用***可以部署在一个集群中;其中,本申请实施例对上述集群的具体实施方式不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整,例如:可以为k8s集群等。
监测模块101与控制模块102以及资源管理组件104连接,控制模块102与生命周期监测模块103以及资源管理组件104连接,生命周期监测模块103与资源管理组件104连接。
其中,监测模块101主要负责实时采集GPU服务器上GPU资源的状态信息以及本地的GPU池化服务信息,然后周期性地向控制模块102汇报。在本申请实施例中,监测模块101可以用于获取本地GPU信息,并向控制模块102发送本地GPU信息;其中,本地GPU信息包括本地GPU资源以及本地可用GPU池化服务。
控制模块102主要负责整个集群的GPU资源统一收集和管理,通过监测模块101采集到的各个可用GPU服务器上的可用GPU资源,作为一个统一的GPU资源池,同时为生命周期监测模块103提供资源申请和销毁服务。在本申请实施例中,控制模块102可以用于在接收到生命周期监测模块103发送的资源管理组件104对应的GPU需求后,根据本地GPU信息分配对应的GPU资源信息。
生命周期监测模块103主要用于管理资源管理组件104的生命周期,并为资源管理组件104使用远程GPU资源提供支持。在本申请实施例中,生命周期监测模块103可以用于接收控制模块102块返回的GPU资源信息。
资源管理组件104为在执行GPU资源调用方法的过程中为用户创建的一个组件。在本申请实施例中,资源管理组件104可以用于基于GPU资源信息进行GPU资源的调用。
需要说明的是,上述各个模块的具体功能将在后续实施例中进行详细的说明,此处暂不介绍。
在上述方案中,监测模块101可以获取到本地GPU信息,从而可以让控制模块收集到集群内可以使用的各种GPU资源的信息;生命周期监测模块103可以根据资源管理组件104对应的GPU需求向控制模块102请求对GPU资源进行分配,这样,当生命周期监测模块103在接收到控制模块102返回的分配好的GPU资源信息之后,可以使得创建的资源管理组件104可以基于上述GPU资源信息进行GPU资源的调用。因此,通过实现面向GPU远程池化的监测模块101、控制模块102以及生命周期监测模块103,结合GPU远程池化方案,实现GPU远程统一池化的能力,使得资源管理组件104可以调用集群中不同节点上分布的GPU资源,从而使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
进一步的,在上述实施例的基础上,生命周期监测模块103可以包括:准入单元、注入单元以及释放单元。
具体的,准入单元主要为集群创建资源管理组件104时提供一个准入判断服务,为待创建的资源管理组件104动态地注入GPU池化动态链接库,以及相关的环境变量和配置文件等。
注入单元主要用于基于资源管理组件104的GPU资源描述,向控制模块102提交GPU资源的分配请求,并将分配结果注入到资源管理组件104中。
释放单元主要用于在资源管理组件104结束或销毁的时候,向控制模块102提交GPU资源的回收请求。
进一步的,在上述实施例的基础上,资源管理组件104具体用于:接收生命周期监测模块103根据GPU资源信息确定的GPU池化动态链接库;进行GPU运算平台的调用,以利用GPU运算平台基于GPU资源信息以及GPU池化动态链接库进行GPU调用信息的计算;根据GPU调用信息进行GPU资源的调用。
在上述方案中,通过实现面向GPU远程池化的监测模块101、控制模块102以及生命周期监测模块103,结合GPU远程池化方案,实现GPU远程统一池化的能力,使得资源管理组件104可以调用集群中不同节点上分布的GPU资源,从而使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
进一步的,在上述实施例的基础上,生命周期监测模块103具体用于:生命周期监测模块103作为容器被启动,启动后基于GPU需求,向控制模块102提交GPU资源分配请求;接收控制模块102根据本地GPU信息分配的GPU资源信息。
在上述方案中,生命周期监测模块103可以基于资源管理组件104的GPU资源向控制模块102提交对GPU资源进行分配的请求,从而使得控制模块102可以根据收集到的集群内可以使用的各种GPU资源的信息进行GPU资源的分配。由于控制模块102在进行GPU资源的分配时,可以同时分配分布在多个节点上的GPU资源,因此,可以使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
进一步的,在上述实施例的基础上,请参照图2,图2为本申请实施例提供的另一种GPU资源调用***的结构框图,GPU资源调用***100还包括:集群管理模块105。
具体的,集群管理模块105与生命周期监测模块103以及资源管理组件104连接。在本申请实施例中,集群管理模块105可以用于接收用于创建资源管理组件104的创建请求,并基于创建请求向生命周期监测模块103提交准入请求。
在该种实施方式下,生命周期监测模块103还可以用于:根据准入请求确定组件更新信息;而集群管理模块105还可以用于:根据组件更新信息创建资源管理组件104。
在上述方案中,集群管理模块105可以对资源管理组件104进行创建,从而使得资源管理组件104可以基于GPU资源信息进行GPU资源的调用,实现智能运算。
基于上述GPU资源调用***,本申请实施例还提供一种GPU资源调用方法,该GPU资源调用方法应用于上述GPU资源调用***,实现对分布在多个节点上的GPU资源的调用。请参照图3,图3为本申请实施例提供的一种GPU资源调用方法的流程图,该GPU资源调用方法可以包括如下步骤:
步骤S301:监测模块获取本地GPU信息,并向控制模块发送本地GPU信息。
步骤S302:控制模块在接收到生命周期监测模块发送的资源管理组件对应的GPU需求后,根据本地GPU信息分配对应的GPU资源信息。
步骤S303:生命周期监测模块接收控制模块返回的GPU资源信息。
步骤S304:资源管理组件基于GPU资源信息进行GPU资源的调用。
具体的,在上述步骤S301中,本地GPU信息包括本地GPU资源以及本地可用GPU池化服务。其中,本申请实施例对监测模块(Catfish-Monitor)获取本地GPU信息的具体实施方式不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整,举例来说,监测模块可以接收外部设备发送的本地GPU信息;或者,监测设备也可以对本地GPU信息进行采集。
举例来说,监测模块可以周期性的检测和采集本地GPU资源;即通过扫描本地的GPU硬件卡,检测本地可用的GPU卡。再如,监测模块可以周期性地检测本地可用的GPU池化服务;即通过扫描配置文件,检测本地对外暴露的服务(其中,该服务用于对外提供GPU调用服务,其可以通过共享端点配置(Share Endpoint Config)说明与外部的连接方式)。
然后,监测模块可以将上述获取到的本地GPU信息,打包后向控制模块(Catfish-Controller)进行汇报。作为一种实施方式,监测模块可以将GPU资源所在的位置报告给控制模块,从而使得要将GPU资源分配给需要的程序的时候,可以知道GPU资源的位置。
在上述步骤S302中,生命周期监测模块(Lifecycle)基于资源管理组件(Pod)的GPU需求向控制模块提交GPU资源分配请求;控制模块在接收到上述GPU资源分配请求后,可以根据上述本地GPU信息分配对应的GPU资源信息;控制模块会向生命周期监测模块返回分配成功的GPU资源信息。
在上述步骤S303中,生命周期监测模块可以接收控制模块返回的GPU资源信息。其中,GPU资源信息可以包括GPU分配资源信息以及GPU池化服务连接信息;基于这两个信息,资源管理组件可以知道去哪里(GPU池化服务连接信息)找到哪块GPU(GPU资源信息),以及能够使用多少GPU资源。
在上述步骤S304中,资源管理组件可以基于上述GPU资源信息进行GPU资源的调用。
在上述方案中,监测模块可以获取到本地GPU信息,从而可以让控制模块收集到集群内可以使用的各种GPU资源的信息;生命周期监测模块可以根据资源管理组件对应的GPU需求向控制模块请求对GPU资源进行分配,这样,当生命周期监测模块在接收到控制模块返回的分配好的GPU资源信息之后,可以使得创建的资源管理组件可以基于上述GPU资源信息进行GPU资源的调用。因此,通过实现面向GPU远程池化的监测模块、控制模块以及生命周期监测模块,结合GPU远程池化方案,实现GPU远程统一池化的能力,使得资源管理组件可以调用集群中不同节点上分布的GPU资源,从而使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
进一步的,在上述实施例的基础上,上述步骤S304具体可以包括如下步骤:
步骤1),资源管理组件接收生命周期监测模块根据GPU资源信息确定的GPU池化动态链接库。
步骤2),资源管理组件进行GPU运算平台的调用,以利用GPU运算平台基于GPU资源信息以及GPU池化动态链接库进行GPU调用信息的计算。
步骤3),资源管理组件根据GPU调用信息进行GPU资源的调用。
具体的,在上述步骤1)中,生命周期监测模块可以为GPU池化动态链接库生成相关的可用GPU资源信息和池化服务连接信息;然后,向资源管理组件注入相关动态链接库和环境变量。
在上述步骤2)中,资源管理组件可以进行GPU运算平台的调用,并获取GPU的计算结果。其中,本申请实施例对上述GPU运算平台的具体实施方式不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整,例如:GPU运算平台可以为GPU CUDA。
作为一种实施方式,GPU池化动态链接库可以拦截住上述调用,通过前端将调用请求发送给后端;后端对调用请求进行解析后调用原生的CUDA库进行GPU调用信息的结算,得到对应的计算结果;后端获得结果后,将结果返回给前端;前端拿到结果后,再通过GPU池化动态链接库返回给用户。
在上述方案中,通过实现面向GPU远程池化的监测模块、控制模块以及生命周期监测模块,结合GPU远程池化方案,实现GPU远程统一池化的能力,使得资源管理组件可以调用集群中不同节点上分布的GPU资源,从而使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
进一步的,在上述实施例的基础上,上述步骤S303具体可以包括如下步骤:
步骤1),生命周期监测模块作为容器被启动,启动后基于GPU需求,向控制模块提交GPU资源分配请求。
步骤2),接收控制模块根据本地GPU信息分配的GPU资源信息。
在上述方案中,生命周期监测模块可以基于资源管理组件的GPU资源向控制模块提交对GPU资源进行分配的请求,从而使得控制模块可以根据收集到的集群内可以使用的各种GPU资源的信息进行GPU资源的分配。由于控制模块在进行GPU资源的分配时,可以同时分配分布在多个节点上的GPU资源,因此,可以使得集群内智能算力资源碎片能够得到有效利用,并且提高对GPU资源的利用率。
进一步的,在上述实施例的基础上,在上述步骤S302之前,本申请实施例提供的GPU资源调用方法还可以包括如下步骤:
步骤1),集群管理模块接收用于创建资源管理组件的创建请求,并基于创建请求向生命周期监测模块提交准入请求。
步骤2),生命周期监测模块根据准入请求确定组件更新信息。
步骤3),集群管理模块根据组件更新信息创建资源管理组件。
具体的,作为一种实施方式,集群管理模块可以包括接口服务单元(K8S-Api-Service)以及集群管理单元(K8S-Kubelet)。其中,集群管理单元理解为K8S中管理资源管理组件的组件,负责管理这个资源管理组件的生命周期,包括资源管理组件的增删改查等;集群中每个节点都会部署一个集群管理单元,负责管理本节点上的资源管理组件的生命周期。
在上述步骤1)中,用户可以向集群管理模块提交一个用于创建资源管理组件的创建请求;集群管理模块可以基于上述创建请求向生命周期监测模块提交一个用于创建资源管理组件的准入请求。
在上述步骤2)中,生命周期监测模块可以根据上述准入请求确定组件更新信息,并向集群管理模块返回上述组件更新信息。其中,上述组件更新信息可以为当准入请求通过后,需要往资源管理组件中添加一些新的配置信息。
作为一种实施方式,上述组件更新信息可以包括init-container、env、pv、annotation等信息。
在上述步骤3)中,集群管理模块可以根据上述组件更新信息创建资源管理组件。
作为一种实施方式,接口服务单元可以将组件更新信息持久化到数据存储***中;其中,本申请实施例对上述数据存储***的具体实施方式不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整,例如:数据存储***可以为ETCD。
接口服务单元在将组件更新信息持久化到数据存储***中后,对应节点上的集群管理单元可以感知并从上述数据存储***上该组件更新信息;集群管理单元可以根据上述组件更新信息操作宿主机来完成资源的分配、网络的搭建、下载镜像到本地,以根据上述组件更新信息在本地创建资源管理组件。
在上述方案中,集群管理模块可以对资源管理组件进行创建,从而使得资源管理组件可以基于GPU资源信息进行GPU资源的调用,实现智能运算。
进一步的,在上述实施例的基础上,在上述步骤S304之后,本申请实施例提供的GPU资源调用方法还可以包括如下步骤:
生命周期监测模块释放对应的GPU请求。
下面对本申请实施例提供的另一种GPU资源调用方法进行介绍。请参照图4,图4为本申请实施例提供的另一种GPU资源调用方法的示意图,该GPU资源调用方法可以包括如下步骤:
步骤1),Catfish-Monitor周期性地检测和采集本地GPU资源。
步骤2),Catfish-Monitor周期性地检测本地可用的GPU池化服务。
步骤3),Catfish-Monitor将步骤1)及步骤2)中采集到的信息,打包后向Catfish-Controller汇报。
步骤4),用户向K8S-Api-Service提交一个Pod的创建请求。
步骤5),K8S-Api-Service向Catfish-Admission提交一个创建Pod的准入请求。
步骤6),Catfish-Admission向K8S-Api-Service返回需要往Pod中更新的组件更新信息。
步骤7),K8S-Api-Service将更新后的组件更新信息持久化到ETCD中。
步骤8),K8S-Kubelet从ETCD中监测到待创建的Pod。
步骤9),K8S-Kubelet创建Pod,并基于Pod的组件更新信息,注入相关的init-container和环境变量。
步骤10),Catfish-Allocator作为init-container被启动,启动后基于Pod的GPU需求,向Catfish-Controller提交GPU资源分配请求。
步骤11),Catfish-Controller返回分配成功的GPU资源信息和GPU池化服务连接信息。
步骤12),Catfish-Allocator为GPU池化动态链接库生成相关的可用GPU资源信息和池化服务连接信息。
步骤13),Catfish-Allocator为业务容器注入相关动态链接库和环境变量。
步骤14)及步骤15),业务容器进行正常的GPU CUDA调用,并获取GPU的计算结果。
步骤16),Pod结束或销毁,被Catfish-Deallocator通过K8S-List-Watch机制监测到。
步骤17),Catfish-Deallocator向Catfish-Controller提交GPU的释放请求。
请参照图5,图5为本申请实施例提供的一种电子设备的结构框图,该电子设备500包括:至少一个处理器501,至少一个通信接口502,至少一个存储器503和至少一个通信总线504。其中,通信总线504用于实现这些组件直接的连接通信,通信接口502用于与其他节点设备进行信令或数据的通信,存储器503存储有处理器501可执行的机器可读指令。当电子设备500运行时,处理器501与存储器503之间通过通信总线504通信,机器可读指令被处理器501调用时执行上述GPU资源调用方法。
例如,本申请实施例的处理器501通过通信总线504从存储器503读取计算机程序并执行该计算机程序可以实现如下方法:步骤S301:监测模块获取本地GPU信息,并向控制模块发送本地GPU信息。步骤S302:控制模块在接收到生命周期监测模块发送的资源管理组件对应的GPU需求后,根据本地GPU信息分配对应的GPU资源信息。步骤S303:生命周期监测模块接收控制模块返回的GPU资源信息。步骤S304:资源管理组件基于GPU资源信息进行GPU资源的调用。
其中,处理器501包括一个或多个,其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器501可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(NetworkProcessor,简称NP)或者其他常规处理器;还可以是专用处理器,包括神经网络处理器(Neural-network Processing Unit,简称NPU)、图形处理器(Graphics Processing Unit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器501为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
可以理解的是,上述处理器501与本申请实施例中调用的GPU资源并不相同。其中,上述处理器501是执行本申请实施例提供的GPU资源调用方法的本地设备(即电子设备500)中的实体结构;而GPU资源是远程云端资源池中的资源。
存储器503包括一个或多个,其可以是,但不限于,随机存取存储器(RandomAccess Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(ElectricErasable Programmable Read-Only Memory,简称EEPROM)等。
可以理解,图5所示的结构仅为示意,电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备500可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备500也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
本申请实施例还提供一种计算机程序产品,包括存储在计算机可读存储介质上的计算机程序,计算机程序包括计算机程序指令,当计算机程序指令被计算机执行时,计算机能够执行上述实施例中GPU资源调用方法的步骤,例如包括:监测模块获取本地GPU信息,并向控制模块发送所述本地GPU信息;其中,所述本地GPU信息包括本地GPU资源以及本地可用GPU池化服务;所述控制模块在接收到生命周期监测模块发送的资源管理组件对应的GPU需求后,根据所述本地GPU信息分配对应的GPU资源信息;所述生命周期监测模块接收所述控制模块返回的所述GPU资源信息;所述资源管理组件基于所述GPU资源信息进行GPU资源的调用。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行前述方法实施例所述的GPU资源调用方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种GPU资源调用方法,其特征在于,包括:
监测模块获取本地GPU信息,并向控制模块发送所述本地GPU信息;其中,所述本地GPU信息包括本地GPU资源以及本地可用GPU池化服务;
所述控制模块在接收到生命周期监测模块发送的资源管理组件对应的GPU需求后,根据所述本地GPU信息分配对应的GPU资源信息;
所述生命周期监测模块接收所述控制模块返回的所述GPU资源信息;
所述资源管理组件基于所述GPU资源信息进行GPU资源的调用。
2.根据权利要求1所述的GPU资源调用方法,其特征在于,所述资源管理组件基于所述GPU资源信息进行GPU资源的调用,包括:
所述资源管理组件接收所述生命周期监测模块根据所述GPU资源信息确定的GPU池化动态链接库;
所述资源管理组件进行GPU运算平台的调用,以利用所述GPU运算平台基于所述GPU资源信息以及所述GPU池化动态链接库进行GPU调用信息的计算;
所述资源管理组件根据所述GPU调用信息进行GPU资源的调用。
3.根据权利要求1所述的GPU资源调用方法,其特征在于,所述生命周期监测模块接收所述控制模块返回的所述GPU资源信息,包括:
所述生命周期监测模块作为容器被启动,启动后基于所述GPU需求,向所述控制模块提交GPU资源分配请求;
接收所述控制模块根据所述本地GPU信息分配的所述GPU资源信息。
4.根据权利要求1所述的GPU资源调用方法,其特征在于,在所述根据所述本地GPU信息分配对应的GPU资源信息之前,所述方法还包括:
集群管理模块接收用于创建所述资源管理组件的创建请求,并基于所述创建请求向所述生命周期监测模块提交准入请求;
所述生命周期监测模块根据所述准入请求确定组件更新信息;
所述集群管理模块根据所述组件更新信息创建所述资源管理组件。
5.一种GPU资源调用***,其特征在于,包括:
监测模块,用于获取本地GPU信息,并向控制模块发送所述本地GPU信息;其中,所述本地GPU信息包括本地GPU资源以及本地可用GPU池化服务;
控制模块,用于在接收到生命周期监测模块发送的资源管理组件对应的GPU需求后,根据所述本地GPU信息分配对应的GPU资源信息;
生命周期监测模块,用于接收所述控制模块返回的所述GPU资源信息;
所述资源管理组件,用于基于所述GPU资源信息进行GPU资源的调用。
6.根据权利要求5所述的GPU资源调用***,其特征在于,所述资源管理组件具体用于:
接收所述生命周期监测模块根据所述GPU资源信息确定的GPU池化动态链接库;
进行GPU运算平台的调用,以利用所述GPU运算平台基于所述GPU资源信息以及所述GPU池化动态链接库进行GPU调用信息的计算;
根据所述GPU调用信息进行GPU资源的调用。
7.根据权利要求5或6所述的GPU资源调用***,其特征在于,还包括:
集群管理模块,用于接收用于创建所述资源管理组件的创建请求,并基于所述创建请求向所述生命周期监测模块提交准入请求;
所述生命周期监测模块还用于:根据所述准入请求确定组件更新信息;
所述集群管理模块还用于:根据所述组件更新信息创建所述资源管理组件。
8.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-4任一项所述的GPU资源调用方法。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述计算机程序指令能够执行如权利要求1-4任一项所述的GPU资源调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行如权利要求1-4任一项所述的GPU资源调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310154187.XA CN115904740B (zh) | 2023-02-23 | 2023-02-23 | 一种gpu资源调用方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310154187.XA CN115904740B (zh) | 2023-02-23 | 2023-02-23 | 一种gpu资源调用方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904740A true CN115904740A (zh) | 2023-04-04 |
CN115904740B CN115904740B (zh) | 2023-05-30 |
Family
ID=85744749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310154187.XA Active CN115904740B (zh) | 2023-02-23 | 2023-02-23 | 一种gpu资源调用方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904740B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117572838A (zh) * | 2024-01-17 | 2024-02-20 | 青岛创新奇智科技集团股份有限公司 | 一种基于工业大模型的自动调整生产线速度的方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959588A (zh) * | 2017-12-07 | 2018-04-24 | 郑州云海信息技术有限公司 | 数据中心的云资源管理方法、云资源管理平台和管理*** |
US20200184278A1 (en) * | 2014-03-18 | 2020-06-11 | Z Advanced Computing, Inc. | System and Method for Extremely Efficient Image and Pattern Recognition and Artificial Intelligence Platform |
CN111538586A (zh) * | 2020-01-23 | 2020-08-14 | ***股份有限公司 | 集群gpu资源管理调度***、方法以及计算机可读存储介质 |
CN111552556A (zh) * | 2020-03-24 | 2020-08-18 | 合肥中科类脑智能技术有限公司 | 一种gpu集群服务管理***及方法 |
US20200348662A1 (en) * | 2016-05-09 | 2020-11-05 | Strong Force Iot Portfolio 2016, Llc | Platform for facilitating development of intelligence in an industrial internet of things system |
CN112000463A (zh) * | 2020-07-16 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于cuda的gpu资源分配方法、***、终端及存储介质 |
US20210191759A1 (en) * | 2019-12-23 | 2021-06-24 | International Business Machines Corporation | Elastic Execution of Machine Learning Workloads Using Application Based Profiling |
CN113301590A (zh) * | 2021-05-24 | 2021-08-24 | 中科院计算所南京研究院 | 一种面向5g接入网的虚拟资源管控*** |
CN113568758A (zh) * | 2021-09-23 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | Gpu资源池化方法、***、设备及计算机可读存储介质 |
CN114418828A (zh) * | 2021-12-23 | 2022-04-29 | 北京百度网讯科技有限公司 | 显存管理方法、装置、设备、存储介质及程序产品 |
CN114741207A (zh) * | 2022-06-10 | 2022-07-12 | 之江实验室 | 一种基于多维度组合并行的gpu资源调度方法和*** |
CN114911598A (zh) * | 2022-05-17 | 2022-08-16 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备以及存储介质 |
US20230039008A1 (en) * | 2021-08-06 | 2023-02-09 | International Business Machines Corporation | Dynamic resource provisioning for use cases |
-
2023
- 2023-02-23 CN CN202310154187.XA patent/CN115904740B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200184278A1 (en) * | 2014-03-18 | 2020-06-11 | Z Advanced Computing, Inc. | System and Method for Extremely Efficient Image and Pattern Recognition and Artificial Intelligence Platform |
US20200348662A1 (en) * | 2016-05-09 | 2020-11-05 | Strong Force Iot Portfolio 2016, Llc | Platform for facilitating development of intelligence in an industrial internet of things system |
CN107959588A (zh) * | 2017-12-07 | 2018-04-24 | 郑州云海信息技术有限公司 | 数据中心的云资源管理方法、云资源管理平台和管理*** |
US20210191759A1 (en) * | 2019-12-23 | 2021-06-24 | International Business Machines Corporation | Elastic Execution of Machine Learning Workloads Using Application Based Profiling |
CN111538586A (zh) * | 2020-01-23 | 2020-08-14 | ***股份有限公司 | 集群gpu资源管理调度***、方法以及计算机可读存储介质 |
CN111552556A (zh) * | 2020-03-24 | 2020-08-18 | 合肥中科类脑智能技术有限公司 | 一种gpu集群服务管理***及方法 |
CN112000463A (zh) * | 2020-07-16 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 一种基于cuda的gpu资源分配方法、***、终端及存储介质 |
CN113301590A (zh) * | 2021-05-24 | 2021-08-24 | 中科院计算所南京研究院 | 一种面向5g接入网的虚拟资源管控*** |
US20230039008A1 (en) * | 2021-08-06 | 2023-02-09 | International Business Machines Corporation | Dynamic resource provisioning for use cases |
CN113568758A (zh) * | 2021-09-23 | 2021-10-29 | 深圳市信润富联数字科技有限公司 | Gpu资源池化方法、***、设备及计算机可读存储介质 |
CN114418828A (zh) * | 2021-12-23 | 2022-04-29 | 北京百度网讯科技有限公司 | 显存管理方法、装置、设备、存储介质及程序产品 |
CN114911598A (zh) * | 2022-05-17 | 2022-08-16 | 北京百度网讯科技有限公司 | 任务调度方法、装置、设备以及存储介质 |
CN114741207A (zh) * | 2022-06-10 | 2022-07-12 | 之江实验室 | 一种基于多维度组合并行的gpu资源调度方法和*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117572838A (zh) * | 2024-01-17 | 2024-02-20 | 青岛创新奇智科技集团股份有限公司 | 一种基于工业大模型的自动调整生产线速度的方法 |
CN117572838B (zh) * | 2024-01-17 | 2024-04-05 | 青岛创新奇智科技集团股份有限公司 | 一种基于工业大模型的自动调整生产线速度的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115904740B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10292044B2 (en) | Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods | |
CN110427284B (zh) | 数据处理方法、分布式***、计算机***和介质 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和*** | |
EP3869336A1 (en) | Method and apparatus for processing development machine operation task, device and storage medium | |
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
US20220357990A1 (en) | Method for allocating data processing tasks, electronic device, and storage medium | |
KR101656360B1 (ko) | 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템 | |
CN113032166B (zh) | 核间通信的方法、处理器、核间通信***及计算机可读存储介质 | |
CN112925607A (zh) | 一种***扩缩容方法及装置、电子设备 | |
CN115904740B (zh) | 一种gpu资源调用方法及*** | |
CN111464589A (zh) | 智能合约处理方法、计算机设备及存储介质 | |
CN111209120A (zh) | 微服务的数据同步方法、装置及计算机可读存储介质 | |
CN110825499A (zh) | 基于统一容器云平台的安全隔离的实现方法及装置 | |
KR101640231B1 (ko) | 자동 분산병렬 처리 하둡 시스템의 지원을 위한 클라우드 구동 방법 | |
CN115525417A (zh) | 数据通信方法、通信***及计算机可读存储介质 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN113220432B (zh) | 多云互联方法、装置、设备、存储介质及产品 | |
CN113114514B (zh) | 一种基于多属性层次分析法的网络资源备份方法及*** | |
CN113312359B (zh) | 一种分布式作业进度计算方法、装置和存储介质 | |
CN105677481A (zh) | 一种数据处理方法、***及电子设备 | |
CN110569157A (zh) | 存储测试方法、装置、服务器及存储介质 | |
CN115665231A (zh) | 服务创建方法、装置以及计算机可读存储介质 | |
CN115098272A (zh) | Gpu资源调度方法、调度器、电子设备和存储介质 | |
CN114237891A (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN114237902A (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 |