CN115082286A - 边缘节点的gpu运行方法、装置、电子设备及介质 - Google Patents

边缘节点的gpu运行方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN115082286A
CN115082286A CN202210700146.1A CN202210700146A CN115082286A CN 115082286 A CN115082286 A CN 115082286A CN 202210700146 A CN202210700146 A CN 202210700146A CN 115082286 A CN115082286 A CN 115082286A
Authority
CN
China
Prior art keywords
gpu
task
edge node
node
shared
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
CN202210700146.1A
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202210700146.1A priority Critical patent/CN115082286A/zh
Publication of CN115082286A publication Critical patent/CN115082286A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种边缘节点的GPU运行方法、装置、电子设备及介质,该方法包括:获取GPU任务的任务处理信息,任务处理信息包括任务标识,任务标识用于指示GPU任务的任务类型;创建与任务标识所指示的任务类型对应的Pod;按照与任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;将所创建的Pod调度到目标边缘节点上,以由目标边缘节点执行GPU任务。通过本申请,能够针对不同任务类型的GPU任务采用相应的调度方式,有效提升了边缘节点的GPU使用效率。

Description

边缘节点的GPU运行方法、装置、电子设备及介质
技术领域
本申请涉及计算机应用技术领域,尤其涉及一种边缘节点的GPU运行方法、装置、电子设备及介质。
背景技术
图形处理单元(GPU,Graphics Processing Unit)具有强大的计算能力,其在深度学习和高性能计算领域被得到广泛的使用。
Kubernetes是一个管理跨主机容器应用的开源系统,提供了应用的部署、维护以及扩容、缩容的基本机制。在Kubernetes下针对各类型的GPU进行任务调度时,其调度粒度均是按GPU卡的数量按需分配给任务。
发明内容
有鉴于此,本申请实施例至少提供一种边缘节点的GPU运行方法、装置、电子设备及介质,能够针对不同任务类型的GPU任务采用相应的调度方式,有效提升了边缘节点的GPU使用效率。
第一方面,本申请示例性实施例提供一种边缘节点的GPU运行方法,包括:获取GPU任务的任务处理信息,所述任务处理信息包括任务标识,所述任务标识用于指示GPU任务的任务类型;创建与所述任务标识所指示的任务类型对应的Pod;按照与所述任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;将所创建的Pod调度到所述目标边缘节点上,以由所述目标边缘节点执行所述GPU任务。
在一可能实施方式中,所述任务类型包括GPU独享任务,与GPU独享任务对应的边缘节点搜索策略为基于GPU独享任务针对GPU的设备需求来搜索边缘节点。
在一可能实施方式中,按照所述任务需求信息所指示的边缘节点搜索策略搜索目标边缘节点的步骤包括:确定节点池中的各边缘节点的运行状态,所述运行状态包括工作状态和空闲状态;将从处于空闲状态的边缘节点中搜索到的满足GPU独享任务针对GPU的设备需求的边缘节点,确定为所述目标边缘节点。
在一可能实施方式中,所述任务类型包括GPU共享任务组,与GPU共享任务组对应的边缘节点搜索策略为基于针对GPU共享任务组所预先设置的占用标识来搜索边缘节点。
在一可能实施方式中,所述任务处理信息还包括针对GPU共享任务组所预先设置的占用标识,所述GPU共享任务组包括多个共享子任务,其中,通过以下方式为每个共享子任务确定目标边缘节点:从节点池的各边缘节点中搜索是否存在具有所述GPU共享任务组对应的占用标识的边缘节点;若存在,则将搜索到的边缘节点确定为用于执行该共享子任务的目标边缘节点;若不存在,则从节点池中不执行GPU独享任务的边缘节点中选取一边缘节点,并将所选取的边缘节点确定为用于执行该共享子任务的目标边缘节点。
在一可能实施方式中,还包括:为从不执行GPU独享任务的边缘节点中所选取的边缘节点添加占用标识;在所述目标边缘节点执行完成GPU共享任务组中的所有共享子任务之后,清除为所述目标边缘节点所添加的占用标识。
在一可能实施方式中,将所创建的Pod调度到所述目标边缘节点上,以由所述目标边缘节点执行所述GPU任务的步骤包括:在启动Pod时,调用GPU设备插件以获得设备环境变量,所述设备环境变量由GPU设备插件通过以下方式获得:获取GPU任务针对GPU的设备需求,按照所述设备需求从所述目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量;将所获得的设备环境变量注入Pod,并启动容器以执行所述GPU任务。
在一可能实施方式中,还包括:在启动容器时,根据所述设备环境变量中所声明的设备信息,将所述设备信息所指示的GPU映射到容器中,并将所述设备信息所指示的GPU的驱动库也映射到容器中。
在一可能实施方式中,还包括:对节点池中的各边缘节点进行节点注册,其中,通过以下方式为每个边缘节点进行节点注册:在该边缘节点上构建信息查看工具;通过该边缘节点上的边缘组件调用信息查看工具,以按照预设信息规范获取GPU状态信息;通过该边缘节点上的GPU设备插件调用所述边缘组件,以基于所获取的GPU状态信息完成节点注册。
在一可能实施方式中,通过以下方式在每个边缘节点上构建信息查看工具:根据该边缘节点的节点环境和布置在该边缘节点上的GPU的GPU类型,对初始信息查看工具进行适配,以使适配后的初始信息查看工具能够在所述节点环境下从所述GPU类型的GPU获取到GPU状态信息;将适配后的初始信息查看工具确定所述信息查看工具。
第二方面,本申请示例性实施例提供一种边缘节点的GPU运行装置,包括:获取模块,用于获取GPU任务的任务处理信息,所述任务处理信息包括任务标识,所述任务标识用于指示GPU任务的任务类型;创建模块,用于创建与所述任务标识所指示的任务类型对应的Pod;搜索模块,用于按照与所述任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;调度模块,用于将所创建的Pod调度到所述目标边缘节点上,以由所述目标边缘节点执行所述GPU任务。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的边缘节点的GPU运行方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的边缘节点的GPU运行方法的步骤。
本申请实施例提供的边缘节点的GPU运行方法、装置、电子设备和存储介质,能够针对不同任务类型的GPU任务制定不同的边缘节点搜索策略,以实现对不同类型GPU任务的调度,有效提高了资源使用率、GPU资源调度效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出本申请示例性实施例提供的边缘节点的GPU运行方法的流程图;
图2示出本申请示例性实施例提供的针对GPU独享任务确定目标边缘节点的步骤的流程图;
图3示出本申请示例性实施例提供的目标边缘节点执行GPU任务的步骤的流程图;
图4示出本申请示例性实施例提供的针对GPU共享任务组确定目标边缘节点的步骤的流程图;
图5示出本申请示例性实施例提供的进行GPU节点注册的步骤的流程图;
图6示出本申请示例性实施例提供的边缘节点的GPU运行装置的结构示意图;
图7示出本申请示例性实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
应当理解,在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或者两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本申请实施例中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。
目前,Kubernetes进行GPU节点注册和/或GPU任务调度时,仅支持对单一类型GPU的节点注册和任务调度,例如,在Kubernetes下仅支持Nvidia GPU,其调度粒度是按GPU卡的数量按需分配给任务。
下面通过一个示例来介绍Kubernetes调度Nvidia GPU的过程:
GPU-Device-Plugin部署到GPU节点上,上报注册节点的GPU信息和对应的DeviceID。
当有声明nvidia.com/gpu的GPU Pod创建出现,调度器会综合考虑GPU卡的数量情况,将Pod调度到有充足GPU设备的节点上。
节点上的kubelet启动Pod时,根据request中的声明调用各个GPU-Device-Plugin的Allocate接口,由于容器声明了GPU,kubelet根据之前ListAndWatch接口收到的Device信息,选取合适的设备,DeviceID作为参数,调用GPU-Device-Plugin的Allocate接口。
GPU-Device-Plugin接收到调用,将DeviceID转换为NVIDIA_VISIBLE_DEVICES环境变量,返回kubelet。
kubelet将环境变量注入到Pod,并启动容器。
上述的方案仅支持了Kubernetes下的Nvidia GPU,调度粒度是按GPU卡的数量按需分配给任务,即,Kubernetes仅可以实现对固定架构下的GPU进行调度,然而在边缘计算场景下,其节点环境/GPU类型非常丰富,上述方案没有对边缘计算场景下的任务特点进行进一步抽象考虑,无法支持不同节点环境、多类型GPU的调度。
针对上述问题,本申请实施例提供了一种边缘节点的GPU运行方法、装置、电子设备及存储介质,以实现一下至少一方面:针对不同任务类型的GPU任务的调度、针对不同节点环境/GPU类型的GPU节点注册。
为便于对本申请进行理解,下面对本申请实施例提供的边缘节点的GPU运行方法、装置、电子设备及存储介质进行详细介绍。
请参阅图1,为本申请示例性实施例提供的边缘节点的GPU运行方法的流程图,具体包括:
S110:获取GPU任务的任务处理信息;
S120:创建与任务标识所指示的任务类型对应的Pod;
S130:按照与任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;
S140:将所创建的Pod调度到目标边缘节点上,以由目标边缘节点执行GPU任务。
首先,对本申请实施例中涉及的名称进行简单介绍。
容器技术,基于namespace、cgroup、UnionFS底层技术对进程进行封装隔离,属于操作系统层面的虚拟化技术,容器技术比虚拟机技术更为轻便、快捷。Docker最为主流的容器引擎,结合Dockerfile的设计使得容器充分展现了标准化跨平台能力。
Kubernetes,是开源的分布式的容器编排管理平台,旨于降低计算、网络和存储资源编排的复杂度,让运维人员和开发人员专注于以容器为载体的应用程序。Kubernetes具备完善的集群管理能力,包括应用的快速部署、维护及快速扩容缩容,跨主机调度,安全防护和准入机制,多租户资源隔离,透明的服务注册和服务发现机制,负载均衡、故障发现以及修复能力,多维度的资源配额管理能力。
Pod,是可以创建和管理Kubernetes计算的最小可部署单元,由一个或者多个容器组成,同时也是Kubernetes调度的基本粒度。
Node,Kubernetes集群的工作节点,可以是一台物理主机,也可以是一台虚拟机(VM),承载Pod实例的运行。
KubeEdge,是将容器化应用程序编排功能扩展到Edge的节点的开源系统,是基于Kubernetes扩展的,提供云边协同能力的开放式智能边缘计算平台,是CNCF在智能边缘领域的首个正式项目。KubeEdge在Kubernetes原生的容器编排和调度能力之上,实现了云边协同、计算下沉、海量边缘设备管理、边缘自治等能力。借助KubeEdge,可以将复杂机器学习、图像识别、事件处理和其他高级应用程序部署到Edge。
Jetson TX2,是Nvidia发布的适用于边缘设备AI应用的嵌入式模块,Jetson TX2采用NVIDIA PascalNV架构,配置了两个Denver 2 64位核心和四个ARM A57核心的处理器,256个CUDA核心的Pascal架构GPU可以带来1.33TFLOPs的运算能力,适用于智能型尖端装置。
下面以上述方法应用于边缘节点为例对本申请实施例提供的上述示例性的各步骤分别进行说明。
在本申请示例性实施例中,上述GPU运行方法可以在边缘节点中执行,这里,边缘节点可指在边缘场景下具有计算能力、存储数据能力、GPU运算能力的节点。
示例性的,边缘节点可包括但不限于以下应用场景中的节点:机器人(如适合家用、安防、公共服务的机器人)、无人机、智能型摄像设备、便携式医疗装置。
这里,边缘节点区别于非边缘场景,通常该边缘节点仅具有一张显卡,单卡边缘节点下的GPU独占任务、多任务共享GPU是一个核心问题。但应理解,本申请的GPU运行方法不仅限于单卡边缘节点,对于多卡边缘节点也适用。
在步骤S110中,任务处理信息包括任务标识,任务标识用于指示GPU任务的任务类型,示例性的,任务类型可包括但不限于:独享任务和共享任务组。
例如,当边缘节点具有GPU任务处理需求时,该边缘节点上的GPU-Task-Manager会创建一GPU任务,并会为所创建的GPU任务添加任务标识,该任务标识被写入所创建的GPU任务的任务处理信息中。
一种情况,GPU任务为GPU独享任务。
在此情况下,GPU-Task-Manager创建GPU独享任务,并添加指示GPU任务的任务类型为独享任务的任务标识,如,label上添加gpu-type=exclusive。
另一种情况,GPU任务为GPU共享任务组。
在此情况下,GPU-Task-Manager创建GPU共享任务组,并添加指示GPU任务的任务类型为共享任务组的任务标识,如,label上添加gpu-type=share。
在步骤S120中,基于GPU任务的任务类型来创建对应的Pod。
在步骤S130中,针对不同任务类型的GPU任务所采用的边缘节点搜索策略也是不同的。
在本申请实施例中,通过针对各任务类型的GPU任务采用不同的边缘节点搜索策略,能够有效提升边缘节点的GPU使用效率。
针对GPU任务为GPU独享任务的情况,与GPU独享任务对应的边缘节点搜索策略为基于GPU独享任务针对GPU的设备需求来搜索边缘节点。
示例性的,GPU独享任务针对GPU的设备需求可包括GPU个数,但除此之外,还可以包括显存大小、GPU使用率、和/或显存使用率。
例如,当gpu-type=exclusive的Pod的创建,边缘节点的调度器会综合考虑节点池中各边缘节点的GPU的空闲情况,将Pod调度到有充足GPU的边缘节点上。
下面参照图2来介绍按照与GPU独享任务对应的边缘节点搜索策略来确定目标边缘节点的过程。
图2示出本申请示例性实施例提供的针对GPU独享任务确定目标边缘节点的步骤的流程图。
参照图2,在步骤S131中,确定节点池中的各边缘节点的运行状态。这里,运行状态包括工作状态和空闲状态。
作为示例,节点池中可以仅包括具有GPU任务处理需求的边缘节点,或者,也可以包括具有GPU任务处理需求的边缘节点以及与该边缘节点建立连接的其他边缘节点。
在步骤S132中,将从处于空闲状态的边缘节点中搜索到的满足GPU独享任务针对GPU的设备需求的边缘节点,确定为目标边缘节点。
例如,遍历节点池中的所有边缘节点,先选取出处于空闲状态的边缘节点,再获取处于空闲状态的各边缘节点的GPU设备信息,如,GPU个数、显存大小、GPU使用率、和/或显存使用率等。基于所获取的GPU设备信息,从处于空闲状态的各边缘节点中选取出满足GPU独享任务针对GPU的设备需求的边缘节点,确定为目标边缘节点。如果满足设备需求的边缘节点不唯一,则可以随机选取一个边缘节点确定为目标边缘节点。
通过上述任务分配方式,可以使得GPU独享任务由一边缘节点独立完成,避免对GPU独享任务的执行造成干扰。
针对GPU任务为GPU共享任务组的情况,与GPU共享任务组对应的边缘节点搜索策略为基于针对GPU共享任务组所预先设置的占用标识来搜索边缘节点。
在此情况下,GPU任务的任务处理信息除包括任务标识之外,可还包括针对GPU共享任务组所预先设置的占用标识,这里,GPU共享任务组可以包括多个共享子任务,该占用标识是针对GPU共享任务组来设置的,即,该GPU共享任务组下的所有共享子任务具有相同的占用标识。
示例性的,GPU-Task-Manager创建GPU共享任务组,并添加指示GPU任务的任务类型为共享任务组的任务标识和占用标识,如,label上添加gpu-type=share和gpu-share-id={id}。
例如,当gpu-type=share的Pod的创建,此时,调度器会忽略gpu request信息,并根据Pod中指定的gpu-share-id,来查找目标边缘节点。也就是说,针对GPU共享任务组,调度器根据占用标识来确定目标边缘节点,而针对GPU独享任务,调度器根据gpu request所指示的设备需求来确定目标边缘节点。
下面参照图4来介绍针对GPU共享任务组中的每个共享子任务确定目标边缘节点的过程。
图4示出本申请示例性实施例提供的针对GPU共享任务组确定目标边缘节点的步骤的流程图。
参照图4,在步骤S133中,从节点池的各边缘节点中搜索是否存在具有GPU共享任务组对应的占用标识的边缘节点。
如上所述,节点池中可以仅包括具有GPU任务处理需求的边缘节点,或者,也可以包括具有GPU任务处理需求的边缘节点以及与该边缘节点建立连接的其他边缘节点。
这里,当边缘节点被分配了GPU共享任务组中的某一共享子任务时,该边缘节点被添加占用标识,以表征边缘节点中存在占用标识所指示的GPU共享任务组下的共享子任务,不同GPU共享任务组所对应的占用标识是不同的。
若节点池中存在具有GPU共享任务组对应的占用标识的边缘节点,则执行步骤S134:将搜索到的边缘节点确定为用于执行该共享子任务的目标边缘节点。
这里,若存在gpu-share-id的边缘节点,则表明目前集群当前已经存在了该共享任务组,调度器选择gpu-share-id所在的边缘节点进行调度。
通过上述过程,使得共享任务组仅会被调度到一个边缘节点,以共享边缘节点的GPU能力。
这里,一个边缘节点上所部署的多个共享子任务,具有以下项中的至少一个特点:任务之间是透明的、任务之间存在交互、同一人开发、互相干扰小,基于上述共享子任务的特点,在本申请中将共享任务组调度到一个边缘节点,即,使得同一共享任务组内的所有共享子任务均被调度到同一个边缘节点上执行,以提升边缘节点的GPU使用效率。
若节点池中不存在具有GPU共享任务组对应的占用标识的边缘节点,则执行步骤S135:从节点池中不执行GPU独享任务的边缘节点中选取一边缘节点,并将所选取的边缘节点确定为用于执行该共享子任务的目标边缘节点。
通过上述过程,能够使得独享任务与共享任务组不共存,即,在一个边缘节点上不会既执行独享任务、又执行共享任务组。
除此之外,在步骤S135之后,还为从不执行GPU独享任务的边缘节点中所选取的边缘节点添加占用标识。
例如,若不存在gpu-share-id的边缘节点,则表明目前集群当前不存在该共享任务组,调度器从无独享任务的节点中选择边缘节点调度,然后GPU-Task-Manager将该节点label加上gpu-share-id。
此外,本申请的GPU运行方法还包括:在目标边缘节点执行完成GPU共享任务组中的所有共享子任务之后,清除为目标边缘节点所添加的占用标识。
例如,若执行GPU共享任务组的边缘节点不包含GPU任务时,GPU-Task-Manager会清除该边缘节点的gpu-share-id。
在步骤S140中,针对GPU任务为GPU独享任务的情况,目标边缘节点可以采用图3所示的方式来执行GPU任务。
图3示出本申请示例性实施例提供的目标边缘节点执行GPU任务的步骤的流程图。
参照图3,在步骤S141中,在启动Pod时,调用GPU设备插件以获得设备环境变量。
作为示例,设备环境变量可以由GPU设备插件通过以下方式获得:获取GPU独享任务针对GPU的设备需求,按照设备需求从目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量,并将设备环境变量转换为对应的库文件,以基于该库文件来执行后续的容器启动过程。
例如,目标边缘节点上的edged启动Pod时,调用GPU-Device-Plugin(GPU设备插件),并根据gpu request值选取合适的GPU,并转换为NVIDIA_VISIBLE_DEVICES设备环境变量返回。
这里,gpu request值中包括了GPU独享任务针对GPU的设备需求,此时,按照设备需求从目标边缘节点上选取对应的GPU,示例性的,若设备需求指示GPU独享任务所需3个GPU,则可以从目标边缘节点上选取对应数量的GPU。应理解,上述所列举的仅为一示例,本申请不限于此。
在步骤S142中,将所获得的设备环境变量注入Pod,并启动容器以执行GPU任务。
例如,目标边缘节点的edged将所获得的设备环境变量注入到Pod,并启动容器。
示例性的,在启动容器时,根据设备环境变量中所声明的设备信息,将设备信息所指示的GPU映射到容器中,并将设备信息所指示的GPU的驱动库也映射到容器中。
例如,在容器启动时,gpu-container-runtime根据容器的NVIDIA_VISIBLE_DEVICES里声明的GPU设备信息,将设备映射到容器中,并将对应的Nvidia Driver Lib(以GPU为Nvidia GPU为例)也映射到容器中。
针对GPU任务为GPU共享任务组的情况,目标边缘节点可以通过以下方式来执行GPU任务。
具体的,在启动Pod时,调用GPU设备插件以获得设备环境变量,将所获得的设备环境变量注入Pod,并启动容器,在启动容器时,根据设备环境变量中所声明的设备信息,将设备信息所指示的GPU映射到容器中,并将设备信息所指示的GPU的驱动库也映射到容器中。
这里,所述设备环境变量可以由GPU设备插件通过以下方式获得:获取GPU共享任务针对GPU的设备需求,按照设备需求从目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量。
例如,边缘节点的edged接收到Pod,将设备环境变量NVIDIA_VISIBLE_DEVICES=all注入Pod,启动容器。
在容器启动时,gpu-container-runtime根据容器的NVIDIA_VISIBLE_DEVICES里声明的GPU设备信息,将设备映射到容器中,并将对应的Nvidia Driver Lib也映射到容器中。
在本申请示例性实施例的边缘节点的GPU运行方法中,除可以对不同类型的GPU任务进行调度之外,还包括:对节点池中的各边缘节点进行节点注册。
下面参照图5来介绍为每个边缘节点进行节点注册的过程。
图5示出本申请示例性实施例提供的进行GPU节点注册的步骤的流程图。
参照图5,在步骤S150中,在边缘节点上构建信息查看工具。
例如,可以通过以下方式在每个边缘节点上构建信息查看工具:根据该边缘节点的节点环境和布置在该边缘节点上的GPU的GPU类型,对初始信息查看工具进行适配,以使适配后的初始信息查看工具能够在节点环境下从该GPU类型的GPU获取到GPU状态信息;将适配后的初始信息查看工具确定为信息查看工具。
这里,节点环境可指在边缘节点上的GPU所处的运行环境,例如,指边缘节点上所加载的操作系统,GPU类型可包括但不限于:GPU的厂商、和/或GPU的接入方式(独立GPU、集成GPU)。
通过上述构建过程,使得信息查看工具与所加载的操作系统进行适配,并与不同GPU厂商所提供的基础工具进行适配,即,通过开发工具的适配来规范建模,以使得该信息查看工具能够适用于不同节点环境、不同GPU类型。
在本申请实施例中,预先对边缘节点的GPU状态信息进行了规范,示例性的,预设信息规范下的GPU状态信息可包括但不限于以下项中的至少一项:GPU类型、GPU个数、显存大小、GPU使用率、显存使用率。
示例性的,上述信息查看工具可指Kubernetes下的查看工具gpu-stat,各个边缘节点构建符合上述规范GPU状态信息的查看工具gpu-stat。
在步骤S160中,通过边缘节点上的边缘组件调用信息查看工具,以按照预设信息规范获取GPU状态信息。
这里,各个边缘节点均运行GPU-Device-Plugin(Kubernetes的GPU设备插件)和edged(Kubernetes的组件),edged通过调用gpu-stat获取GPU状态信息。其中,GPU-Device-Plugin与框架适配,以获取到预设信息规范所定义的GPU状态信息。示例性的,上述预设信息规范为预先定义的所需获取的用于表征GPU状态的各种信息。
在步骤S170中,通过边缘节点上的GPU设备插件调用边缘组件,以基于所获取的GPU状态信息完成节点注册。
例如,GPU-Device-Plugin(Kubernetes的device plugin机制,KubeEdge兼容)再调用edged获取GPU状态信息,再向KubeEdge完成GPU节点注册。
上述步骤中GPU节点注册步骤对边缘节点注册流程进行了规范,只需要实现对应边缘节点的GPU状态信息查看工具gpu-stat,就能完成KubeEdge边缘GPU节点的注册,避免了不同节点环境/GPU类型的接入问题。然而,现有技术中需大量使用Jetson节点单独对它的接入KubeEdge非常费时。
根据本申请示例性实施例,主要解决在边缘计算场景KubeEdge框架下的GPU任务调度框架,能够支持不同的边缘节点、不同GPU类型的GPU Pod调度,并解决了同边缘节点下的GPU独占任务、多任务共享GPU等调度能力。
边缘节点的实际业务场景(AI边缘节点,具备GPU处理能力的边缘节点)往往仅有一张显卡(例如Jetson节点),单个节点即可能运行GPU独占任务,也可能运行GPU共享任务,这是因为运行在同一个边缘节点的任务往往具有相关性,并没有非边缘场景下GPU隔离的高要求。基于此,上述GPU运行方法中的任务调度步骤在此上进行抽象GPU独享任务、GPU共享任务组,基于该任务模型可以有效提升边缘GPU节点的使用效率。
基于同一申请构思,本申请实施例中还提供了与上述实施例提供的方法对应的边缘节点的GPU运行装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例的边缘节点的GPU运行方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
图6为本申请示例性实施例提供的边缘节点的GPU运行装置的结构示意图。如图6所示,该GPU运行装置600包括:
获取模块610,用于获取GPU任务的任务处理信息。这里,任务处理信息包括任务标识,任务标识用于指示GPU任务的任务类型。
创建模块620,用于创建与任务标识所指示的任务类型对应的Pod。
搜索模块630,用于按照与任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点。
调度模块640,用于将所创建的Pod调度到目标边缘节点上,以由目标边缘节点执行GPU任务。
一种情况,GPU任务为GPU独享任务。
在此情况下,任务类型包括GPU独享任务,与GPU独享任务对应的边缘节点搜索策略为基于GPU独享任务针对GPU的设备需求来搜索边缘节点。
在本申请的一种可能实施方式中,搜索模块630可以通过以下方式来按照与GPU独享任务对应的边缘节点搜索策略确定目标边缘节点。
例如,搜索模块630确定节点池中的各边缘节点的运行状态,这里,运行状态包括工作状态和空闲状态;将从处于空闲状态的边缘节点中搜索到的满足GPU独享任务针对GPU的设备需求的边缘节点,确定为目标边缘节点。
调度模块640通过以下方式执行GPU任务。
例如,调度模块640在启动Pod时,调用GPU设备组件以获得设备环境变量,设备环境变量由GPU设备组件通过以下方式获得:获取GPU独享任务针对GPU的设备需求,按照设备需求从目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量;将所获得的设备环境变量注入Pod,并启动容器以执行GPU任务。
在本申请的一种可能实施方式中,调度模块640在启动容器时,根据设备环境变量中所声明的设备信息,将设备信息所指示的GPU映射到容器中,并将设备信息所指示的GPU的驱动库也映射到容器中。
另一种情况,GPU任务为GPU共享任务组。
在此情况下,任务类型包括GPU共享任务组,与GPU共享任务组对应的边缘节点搜索策略为基于针对GPU共享任务组所预先设置的占用标识来搜索边缘节点。
此时,任务处理信息可还包括针对GPU共享任务组所预先设置的占用标识,GPU共享任务组包括多个共享子任务。
在本申请的一种可能实施方式中,搜索模块630通过以下方式为每个共享子任务确定目标边缘节点。
例如,搜索模块630从节点池的各边缘节点中搜索是否存在具有GPU共享任务组对应的占用标识的边缘节点;若存在,则将搜索到的边缘节点确定为用于执行该共享子任务的目标边缘节点;若不存在,则从节点池中不执行GPU独享任务的边缘节点中选取一边缘节点,并将所选取的边缘节点确定为用于执行该共享子任务的目标边缘节点。
在本申请的一种可能实施方式中,调度模块640可还用于为从不执行GPU独享任务的边缘节点中所选取的边缘节点添加占用标识,此外,在目标边缘节点执行完成GPU共享任务组中的所有共享子任务之后,清除为目标边缘节点所添加的占用标识。
在本申请的一种可能实施方式中,上述GPU运行装置600可还包括注册模块(图中未示出),用于对节点池中的各边缘节点进行节点注册。
示例性的,注册模块可以通过以下方式为每个边缘节点进行节点注册:在该边缘节点上构建信息查看工具;通过该边缘节点上的边缘组件调用信息查看工具,以按照预设信息规范获取GPU状态信息;通过该边缘节点上的GPU设备组件调用所述边缘组件,以基于所获取的GPU状态信息完成节点注册。
在本申请的一种可能实施方式中,注册模块可以通过以下方式在每个边缘节点上构建信息查看工具:根据该边缘节点的节点环境和布置在该边缘节点上的GPU的GPU类型,对初始信息查看工具进行适配,以使适配后的初始信息查看工具能够在节点环境下从GPU类型的GPU获取到GPU状态信息;将适配后的初始信息查看工具确定为信息查看工具。
根据本申请的GPU运行装置,能够实现不同节点环境/GPU类型的GPU的快速接入,此外,还解决了同边缘节点下的GPU独占任务、多任务共享GPU的调度问题,有效提升了边缘GPU节点的使用效率。
请参阅图7,图7为本申请示例性实施例提供的电子设备的结构示意图。如图7所示,该电子设备700包括处理器710、存储器720和总线730。
存储器720存储有处理器710可执行的机器可读指令,当电子设备700运行时,处理器710与存储器720之间通过总线730通信,机器可读指令被处理器710执行时,可以执行上述边缘节点的GPU运行中的步骤,具体如下:
获取GPU任务的任务处理信息,这里,任务处理信息包括任务标识,任务标识用于指示GPU任务的任务类型;
创建与任务标识所指示的任务类型对应的Pod;
按照与任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;
将所创建的Pod调度到目标边缘节点上,以由目标边缘节点执行GPU任务。
一种情况,GPU任务为GPU独享任务。
在此情况下,任务类型包括GPU独享任务,与GPU独享任务对应的边缘节点搜索策略为基于GPU独享任务针对GPU的设备需求来搜索边缘节点。
在本申请的一种可能实施方式中,处理器710可以执行如下处理,来按照与GPU独享任务对应的边缘节点搜索策略确定目标边缘节点。
例如,确定节点池中的各边缘节点的运行状态,这里,运行状态包括工作状态和空闲状态;将从处于空闲状态的边缘节点中搜索到的满足GPU独享任务针对GPU的设备需求的边缘节点,确定为目标边缘节点。
在本申请的一种可能实施方式中,处理器710可以执行如下处理,来执行GPU任务。
例如,在启动Pod时,调用GPU设备组件以获得设备环境变量,设备环境变量由GPU设备组件通过以下方式获得:获取GPU独享任务针对GPU的设备需求,按照设备需求从目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量;将所获得的设备环境变量注入Pod,并启动容器以执行GPU任务。
在本申请的一种可能实施方式中,处理器710还可以执行如下处理:根据设备环境变量中所声明的设备信息,将设备信息所指示的GPU映射到容器中,并将设备信息所指示的GPU的驱动库也映射到容器中。
另一种情况,GPU任务为GPU共享任务组。
在此情况下,任务类型包括GPU共享任务组,与GPU共享任务组对应的边缘节点搜索策略为基于针对GPU共享任务组所预先设置的占用标识来搜索边缘节点。
此时,任务处理信息可还包括针对GPU共享任务组所预先设置的占用标识,GPU共享任务组包括多个共享子任务。
在本申请的一种可能实施方式中,处理器710还可以执行如下处理,来为每个共享子任务确定目标边缘节点。
例如,从节点池的各边缘节点中搜索是否存在具有GPU共享任务组对应的占用标识的边缘节点;若存在,则将搜索到的边缘节点确定为用于执行该共享子任务的目标边缘节点;若不存在,则从节点池中不执行GPU独享任务的边缘节点中选取一边缘节点,并将所选取的边缘节点确定为用于执行该共享子任务的目标边缘节点。
在本申请的一种可能实施方式中,处理器710还可以执行如下处理:为从不执行GPU独享任务的边缘节点中所选取的边缘节点添加占用标识,此外,在目标边缘节点执行完成GPU共享任务组中的所有共享子任务之后,清除为目标边缘节点所添加的占用标识。
在本申请的一种可能实施方式中,处理器710还可以执行如下处理:对节点池中的各边缘节点进行节点注册。
示例性的,可以通过以下方式为每个边缘节点进行节点注册:在该边缘节点上构建信息查看工具;通过该边缘节点上的边缘组件调用信息查看工具,以按照预设信息规范获取GPU状态信息;通过该边缘节点上的GPU设备组件调用所述边缘组件,以基于所获取的GPU状态信息完成节点注册。
在本申请的一种可能实施方式中,处理器710还可以执行如下处理,来在每个边缘节点上构建信息查看工具:根据该边缘节点的节点环境和布置在该边缘节点上的GPU的GPU类型,对初始信息查看工具进行适配,以使适配后的初始信息查看工具能够在节点环境下从GPU类型的GPU获取到GPU状态信息;将适配后的初始信息查看工具确定为信息查看工具。
根据本申请示例性实施例的电子设备,能够实现不同节点环境/GPU类型的GPU的快速接入,此外,还解决了同边缘节点下的GPU独占任务、多任务共享GPU的调度问题,有效提升了边缘GPU节点的使用效率。
本申请实施例还提供一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行上述边缘节点的GPU运行方法的步骤,具体如下:
获取GPU任务的任务处理信息,这里,任务处理信息包括任务标识,任务标识用于指示GPU任务的任务类型;
创建与任务标识所指示的任务类型对应的Pod;
按照与任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;
将所创建的Pod调度到目标边缘节点上,以由目标边缘节点执行GPU任务。
一种情况,GPU任务为GPU独享任务。
在此情况下,任务类型包括GPU独享任务,与GPU独享任务对应的边缘节点搜索策略为基于GPU独享任务针对GPU的设备需求来搜索边缘节点。
在本申请的一种可能实施方式中,处理器可以执行如下处理,来按照与GPU独享任务对应的边缘节点搜索策略确定目标边缘节点的步骤。
例如,确定节点池中的各边缘节点的运行状态,这里,运行状态包括工作状态和空闲状态;将从处于空闲状态的边缘节点中搜索到的满足GPU独享任务针对GPU的设备需求的边缘节点,确定为目标边缘节点。
在本申请的一种可能实施方式中,处理器可以执行如下处理,来执行GPU任务。
例如,在启动Pod时,调用GPU设备组件以获得设备环境变量,设备环境变量由GPU设备组件通过以下方式获得:获取GPU独享任务针对GPU的设备需求,按照设备需求从目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量;将所获得的设备环境变量注入Pod,并启动容器以执行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节点的使用效率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种边缘节点的GPU运行方法,其特征在于,包括:
获取GPU任务的任务处理信息,所述任务处理信息包括任务标识,所述任务标识用于指示GPU任务的任务类型;
创建与所述任务标识所指示的任务类型对应的Pod;
按照与所述任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;
将所创建的Pod调度到所述目标边缘节点上,以由所述目标边缘节点执行所述GPU任务。
2.根据权利要求1所述的方法,其特征在于,所述任务类型包括GPU独享任务,与GPU独享任务对应的边缘节点搜索策略为基于GPU独享任务针对GPU的设备需求来搜索边缘节点。
3.根据权利要求2所述的方法,其特征在于,按照所述任务需求信息所指示的边缘节点搜索策略搜索目标边缘节点的步骤包括:
确定节点池中的各边缘节点的运行状态,所述运行状态包括工作状态和空闲状态;
将从处于空闲状态的边缘节点中搜索到的满足GPU独享任务针对GPU的设备需求的边缘节点,确定为所述目标边缘节点。
4.根据权利要求1所述的方法,其特征在于,所述任务类型包括GPU共享任务组,与GPU共享任务组对应的边缘节点搜索策略为基于针对GPU共享任务组所预先设置的占用标识来搜索边缘节点。
5.根据权利要求4所述的方法,其特征在于,所述任务处理信息还包括针对GPU共享任务组所预先设置的占用标识,所述GPU共享任务组包括多个共享子任务,
其中,通过以下方式为每个共享子任务确定目标边缘节点:
从节点池的各边缘节点中搜索是否存在具有所述GPU共享任务组对应的占用标识的边缘节点;
若存在,则将搜索到的边缘节点确定为用于执行该共享子任务的目标边缘节点;
若不存在,则从节点池中不执行GPU独享任务的边缘节点中选取一边缘节点,并将所选取的边缘节点确定为用于执行该共享子任务的目标边缘节点。
6.根据权利要求5所述的方法,其特征在于,还包括:
为从不执行GPU独享任务的边缘节点中所选取的边缘节点添加占用标识;
在所述目标边缘节点执行完成GPU共享任务组中的所有共享子任务之后,清除为所述目标边缘节点所添加的占用标识。
7.根据权利要求1所述的方法,其特征在于,将所创建的Pod调度到所述目标边缘节点上,以由所述目标边缘节点执行所述GPU任务的步骤包括:
在启动Pod时,调用GPU设备插件以获得设备环境变量,所述设备环境变量由GPU设备插件通过以下方式获得:获取GPU任务针对GPU的设备需求,按照所述设备需求从所述目标边缘节点中选取GPU,基于所选取的GPU的设备信息生成设备环境变量;
将所获得的设备环境变量注入Pod,并启动容器以执行所述GPU任务。
8.根据权利要求7所述的方法,其特征在于,还包括:
在启动容器时,根据所述设备环境变量中所声明的设备信息,将所述设备信息所指示的GPU映射到容器中,并将所述设备信息所指示的GPU的驱动库也映射到容器中。
9.根据权利要求1所述的方法,其特征在于,还包括:对节点池中的各边缘节点进行节点注册,
其中,通过以下方式为每个边缘节点进行节点注册:
在该边缘节点上构建信息查看工具;
通过该边缘节点上的边缘组件调用信息查看工具,以按照预设信息规范获取GPU状态信息;
通过该边缘节点上的GPU设备插件调用所述边缘组件,以基于所获取的GPU状态信息完成节点注册。
10.根据权利要求9所述的方法,其特征在于,通过以下方式在每个边缘节点上构建信息查看工具:
根据该边缘节点的节点环境和布置在该边缘节点上的GPU的GPU类型,对初始信息查看工具进行适配,以使适配后的初始信息查看工具能够在所述节点环境下从所述GPU类型的GPU获取到GPU状态信息;
将适配后的初始信息查看工具确定所述信息查看工具。
11.一种边缘节点的GPU运行装置,其特征在于,包括:
获取模块,用于获取GPU任务的任务处理信息,所述任务处理信息包括任务标识,所述任务标识用于指示GPU任务的任务类型;
创建模块,用于创建与所述任务标识所指示的任务类型对应的Pod;
搜索模块,用于按照与所述任务标识所指示的任务类型对应的边缘节点搜索策略搜索目标边缘节点;
调度模块,用于将所创建的Pod调度到所述目标边缘节点上,以由所述目标边缘节点执行所述GPU任务。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至10中任一项所述的边缘节点的GPU运行方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至10中任一项所述的边缘节点的GPU运行方法的步骤。
CN202210700146.1A 2022-06-20 2022-06-20 边缘节点的gpu运行方法、装置、电子设备及介质 Pending CN115082286A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210700146.1A CN115082286A (zh) 2022-06-20 2022-06-20 边缘节点的gpu运行方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210700146.1A CN115082286A (zh) 2022-06-20 2022-06-20 边缘节点的gpu运行方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN115082286A true CN115082286A (zh) 2022-09-20

Family

ID=83253404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210700146.1A Pending CN115082286A (zh) 2022-06-20 2022-06-20 边缘节点的gpu运行方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115082286A (zh)

Similar Documents

Publication Publication Date Title
CN106789339B (zh) 一种基于轻量级虚拟化架构的分布式云仿真方法与系统
CN105117289B (zh) 基于云测试平台的任务分配方法、装置及系统
US9223610B2 (en) Management of virtual machine snapshots
CN111258744A (zh) 一种基于异构计算的任务处理方法及软硬件框架系统
CN112035238A (zh) 任务调度处理方法、装置、集群系统及可读存储介质
WO2007099073A1 (en) Method, system, and program product for deploying a platform dependent application in a grid environment
CN115617364B (zh) Gpu虚拟化部署方法、系统、计算机设备和存储介质
CN112256414A (zh) 一种连接多种计算存储引擎的方法及系统
CN113255165A (zh) 一种基于动态任务分配的实验方案并行推演系统
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
CN115421735A (zh) 一种深度学习任务的异构部署方法、装置及电子设备
CN115640143A (zh) 微服务处理方法、装置、电子设备及存储介质
CN111580804B (zh) 一种软件项目开发的方法和装置
CN117519972A (zh) Gpu资源管理方法及装置
CN113051049A (zh) 任务调度系统、方法、电子设备及可读存储介质
CN115964176B (zh) 云计算集群调度方法、电子设备和存储介质
CN116932147A (zh) 流式作业处理方法、装置、电子设备及介质
CN115082286A (zh) 边缘节点的gpu运行方法、装置、电子设备及介质
CN111459510A (zh) 跨网络操作系统的安装方法、装置、电子设备及介质
CN112463141B (zh) 一种基于bpmn的微服务工作流部署方法
CN115167985A (zh) 一种虚拟化的算力提供方法及系统
CN115129449A (zh) 共享gpu的资源调度方法及装置
CN113986488A (zh) 计算任务的调度方法、装置、计算机设备及存储介质
CN113553264A (zh) 测试数据生成方法、装置、电子设备及介质
CN113612818A (zh) 一种低代码平台的工业app发布系统和方法

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