CN116881009A - Gpu资源调度方法、装置、电子设备和可读存储介质 - Google Patents

Gpu资源调度方法、装置、电子设备和可读存储介质 Download PDF

Info

Publication number
CN116881009A
CN116881009A CN202310892669.5A CN202310892669A CN116881009A CN 116881009 A CN116881009 A CN 116881009A CN 202310892669 A CN202310892669 A CN 202310892669A CN 116881009 A CN116881009 A CN 116881009A
Authority
CN
China
Prior art keywords
gpu
resource
node
information
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.)
Pending
Application number
CN202310892669.5A
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.)
China Mobile Communications Group Co Ltd
MIGU Video Technology Co Ltd
MIGU Culture Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
MIGU Video Technology Co Ltd
MIGU Culture 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 China Mobile Communications Group Co Ltd, MIGU Video Technology Co Ltd, MIGU Culture Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202310892669.5A priority Critical patent/CN116881009A/zh
Publication of CN116881009A publication Critical patent/CN116881009A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种GPU资源调度方法、装置、电子设备和可读存储介质,属于计算机技术领域。其中,GPU资源调度方法应用于容器云平台,所述容器云平台包括多个节点,任一所述节点包括多个GPU资源,所述方法包括:获取目标容器的资源属性信息,所述资源属性信息用于表征所述目标容器对GPU资源的使用情况;预测各容器的GPU资源占用预测信息;获取所述多个节点中各节点的实际GPU资源使用信息;根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定目标节点;调度所述目标节点的至少一个GPU资源以供所述目标容器使用。

Description

GPU资源调度方法、装置、电子设备和可读存储介质
技术领域
本申请属于计算机技术领域,具体涉及一种GPU资源调度方法、装置、电子设备和可读存储介质。
背景技术
随着互联网技术的发展,具备强计算、高并发、高集成、多场景融合等特点的基于图形处理器(Graphics Processing Unit,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资源调度方法、装置及电子设备等进行详细地说明。
请参照图1,图1是本申请实施例提供的一种GPU资源调度方法的流程图,所述方法应用于容器云平台,所述容器云平台包括多个节点,任一所述节点包括多个GPU资源。如图1所示,所述GPU资源调度方法包括以下步骤:
步骤101、获取目标容器的资源属性信息,所述资源属性信息用于表征所述目标容器对GPU资源的使用情况。
需要说明地,本申请实施例中的容器可以是指应用软件的执行单元,包括应用软件运行所需的依赖库和配置,能够在桌面、传统IT或云端等任何位置运行。其中,所述目标容器可以是任一容器,例如可以是容器云平台管理的容器。本申请实施例中,容器云平台可以是指对容器进行管理和控制的云计算平台,所述容器云平台可以是包括多个节点,每个节点可以是包括多个GPU资源(例如GPU卡),容器云平台能够对这些GPU资源进行管理和控制。例如,容器云平台能够接收容器发送的GPU资源调度请求、进行GPU调度、获取各GPU的使用情况、监测GPU的生命周期等。
可选地,所述获取目标容器的资源属性信息,包括:
获取目标容器的GPU资源调度请求,所述GPU资源调度请求携带有资源属性信息,该资源属性信息用于表征所述目标容器对GPU资源的使用情况。
可以理解地,所述GPU资源调度请求也即表征目标容器有GPU资源的使用需求,用于请求容器云平台调度GPU资源给目标容器使用。可选地,所述GPU资源根据应用需求可以是划分为不同的类型(也可以称为量纲、属性等),如编码(Encode)、解码(Decode)、GPU图形渲染、GPU高性能计算算力、GPU人工智能(Artificial Intelligence,AI)推理算力、GPU显存等。不同的目标容器(或者称软件应用)对不同类型的GPU资源的使用需求可能不同。例如,目标容器的类型可以是包括超高清直播编码、超高清云导播、AI推理、虚拟现实(Virtual Reality,VR)渲染、云游戏、互动视频混流等;示例性地,超高清直播编码类型的目标容器对于GPU资源的使用需求主要是编码,超高清云导播类型的目标容器对于GPU资源的使用需求主要是解码,AI推理类型的目标容器对于GPU资源的使用需求主要是GPU显存,等,此处不做过多列举。
本申请实施例中,所述资源属性信息用于表征所述目标容器对GPU资源的使用情况,例如可以是包括目标容器需求的GPU资源的类型。可选地,所述资源属性信息可以是包括用于表征目标容器需求的GPU资源的类型的第一类型信息(也可称主量纲信息)和第二类型信息(也可称次量纲信息),其中,所述目标容器对所述第一类型信息对应的GPU资源的使用需求大于对所述第二类型信息对应的GPU资源的使用需求,所述资源属性信息还可以包括用于表征所述目标容器的GPU资源是否可共享、所述目标容器的任务类型等。示例性地,请参照如下表1,表1示出了不同类型目标容器对应的资源属性信息。
表1.目标容器的资源属性信息表
本申请实施例中,容器云平台通过获取目标容器的资源属性信息,也就能够获知目标容器对GPU资源的使用情况,以及使用需求,进而容器云平台也就能够根据所述资源属性信息对目标容器进行GPU资源调度。例如,所述资源属性信息包括第一类型信息,所述第一类型信息表征目标容器对于GPU资源的使用需求主要是编码,则容器云平台可以是将用于编码的GPU资源调度给目标容器使用;若所述资源属性信息表征目标容器的GPU资源可共享使用,则容器云平台可以是将能够共享使用的GPU资源调度给目标容器使用,等。
步骤102、预测各容器的GPU资源占用预测信息。
可选地,容器云平台可以是根据各容器的历史GPU资源使用情况来预测各容器在未来(例如未来预设时间段内)的GPU资源占用预测信息。本申请实施例中,容器云平台能够对各容器的GPU使用情况进行监测,进而也就能够获知各容器对GPU的使用情况。例如以其中的一个容器为例,容器云平台能够获取该容器历史某段时间内(例如当前时间的前一天内)的GPU使用情况,所述GPU使用情况可以是包括如该容器使用的GPU资源的类型信息(如第一类型信息、第二类型信息等)、各类型的GPU资源的使用率、各类型的GPU资源的使用峰值等。
进一步地,容器云平台可以根据各容器的历史GPU资源使用情况,来预测各容器在未来预设时间段内的GPU资源占用预测信息。可选地,容器云平台可以是基于各容器的历史GPU资源使用情况来进行模型训练,以使得训练后的模型能够预测未来预设时间段内的GPU资源占用预测信息。其中,所述模型可以是长短期记(Long Short Term Memory,LSTM)递归神经网络模型、门控循环单元(Gate Recurrent Unit,GRU)神经网络模型等。其中,预测得到的GPU资源占用预测信息可以是包括各容器在未来预设时间段内需要占用的GPU资源的类型信息、需要占用的GPU资源的数量或者需要占用的GPU资源大小、需要占用的GPU资源的使用峰值时间、需要占用的GPU资源的忙时资源波动百分比等。
步骤103、获取所述多个节点中各节点的实际GPU资源使用信息。
可以理解地,容器云平台包括多个节点,每个节点包括多个GPU资源,多个是指两个或两个以上。容器云平台能够实时地获取各个节点的实际GPU资源使用信息,例如可以是获取各个节点中被占用的GPU资源的数量、被占用的GPU资源的类型、被占用的GPU资源是哪些、剩余未被占用的GPU资源的类型和数量等。
步骤104、根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定目标节点。
可以理解地,根据目标容器的资源属性信息,也就能够获知目标容器对GPU资源的使用情况,以及使用需求,进而容器云平台也就能够根据所述资源属性信息对目标容器进行GPU资源调度。例如,所述资源属性信息包括第一类型信息,所述第一类型信息表征目标容器对于GPU资源的使用需求主要是编码,则容器云平台可以是将用于编码的GPU资源调度给目标容器使用,等。根据各节点的所述实际GPU资源使用信息,也就能够获知各节点中被占用和/或未被占用的GPU资源,进而能够根据所述各节点的实际GPU资源使用信息获知哪些节点的哪些GPU资源能够被调度、哪些GPU资源不能够被调度。而根据预测的各容器的所述GPU资源占用预测信息,也就能够获知未来预设时间段内哪些容器会占用哪些GPU资源、占用多少GPU资源等。
本申请实施例中,容器云平台根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,对这些信息进行综合分析,从而能够分析得出所述多个节点中哪些节点的哪些GPU资源会被占用、哪些GPU资源未被占用,从而从多个节点中确定出目标节点。例如,所述目标节点可以是GPU资源当前被占用最少的节点,或者是剩余的GPU资源最多的节点,或者是未来预设时间段内被占用的GPU资源最少的节点。
步骤105、调度所述目标节点的至少一个GPU资源以供所述目标容器使用。
可以理解地,在确定出目标节点后,则调度该目标节点下的至少一个GPU资源以供所述目标容器使用。可选地,在容器云平台接收到目标容器的GPU资源调度请求的情况下,则容器云平台经过上述步骤确定目标节点后,调度该目标节点的至少一个GPU资源以供目标容器使用,从而以响应所述GPU资源调度请求。
本申请实施例中,容器云平台能够根据目标容器的资源属性信息、各节点的实际GPU资源使用信息以及预测的各容器的GPU资源占用预测信息,对这些信息进行综合分析,从多个节点中确定出目标节点,并调度目标节点的至少一个GPU资源调度以供目标容器使用,从而实现对GPU资源的灵活调度,以确保实现对GPU资源的有效分配,避免GPU资源浪费,也能够更好地满足容器对GPU资源的使用需求。
可选地,所述资源属性信息包括用于表征目标容器需求的GPU资源的类型的第一类型信息和第二类型信息,其中,所述目标容器对所述第一类型信息对应的GPU资源的使用需求大于对所述第二类型信息对应的GPU资源的使用需求;这种情况下,所述步骤104可以包括:
根据所述第一类型信息、所述第二类型信息、所述实际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图形渲染,假设节点A包括编码类型的GPU资源,但不包括GPU图形渲染的GPU资源,节点A的第一得分可以是5,节点B包括编码类型的GPU资源,也包括GPU图形渲染的GPU资源,节点B的第一得分可以是10,可见,节点B更能满足目标容器的需求,节点B对应的第一得分也就高于节点A的第一得分。当然,第一得分的评分规则还可以是其他的可能形式,本实施例不做具体限定。
本申请实施例中,容器云平台还能够获取各节点的实际GPU资源使用信息,例如可以是各节点下GPU资源的使用率、各GPU资源的使用峰值时间、已经被占用的GPU资源、剩余的GPU资源等。容器云平台可以是根据各节点的实际GPU资源使用信息来进行评分,示例性地,若节点下剩余的GPU资源越多,则第二得分越高,或者节点下被占用的GPU资源的使用峰值时间距离当前时间约远,则第二得分越高,等。
另外,容器云平台还能够预测各容器的GPU资源占用预测信息,也即预测未来预设时间段内,各容器会占用的GPU资源,也即哪些GPU资源会被占用而不能被调度,基于该信息来得到第三得分。例如,若GPU资源占用预测信息表明某个容器在未来预设时间段内会占用某个节点下的GPU资源,则该节点对应的第三得分也就较低。
本申请实施例中,容器云平台基于上述得到的第一得分、第二得分和第三得分,从而也就能够确定每一个节点对应的资源使用得分,该得分可以是上述第一得分、第二得分和第三得分之和,所述目标节点可以是其中资源使用得分最高的一个节点。这样,也就能够基于一定的评分规则来对各个节点的GPU资源使用情况进行评分,从而以更准确地得到目标节点。
需要说明地,容器云平台可以是预先训练多个网络模型,通过不同的网络模型来针对上述信息进行评分,以分别得到第一得分、第二得分和第三得分。
可选地,在所述第二类型信息的数量为多个的情况下,所述获取每一个所述节点针对所述第一类型信息和第二类型信息的第一得分,包括:
获取每一个所述节点针对所述第一类型信息的第一子得分和针对每一个所述第二类型信息的第二子得分;
根据所述第一子得分、所述第二子得分、所述第二类型信息的数量以及所述第一类型信息和所述第二类型信息的权重比,确定所述第一得分。
需要说明地,目标容器可以是对某个类型的GPU资源使用需求最大,也即目标容器主要使用的是某一个类型的GPU资源,但次要使用的GPU资源的类型可以是有多种,也即第二类型信息可以是有多个,一个第二类型信息用于表征目标容器需求的一种类型的GPU资源。
本申请实施例中,容器云平台可以是根据第一类型信息,获取每一个节点针对该第一类型信息的第一子得分,以及获取针对每一个第二类型信息的第二子得分,然后基于所述第一子得分、所述第二子得分、所述第二类型信息的数量以及所述第一类型信息和所述第二类型信息的权重比,确定每一个节点对应的第一得分。
可选地,所述第一得分可以是基于如下公式计算得到:
其中,c表示第一得分,a表示第一子得分,b表示各第二类型信息对应的第二子得分,n表示第二类型信息的数量,q:1表示第一类型信息和第二类型信息的权重比。
示例性地,假设目标容器为超高清直播编码类型的容器,该目标容器对应的第一类型信息为编码类型的GPU资源,第二类型信息包括解码类型的GPU资源、GPU图形渲染的GPU资源以及高性能计算的GPU资源,若节点A包括编码类型的GPU资源、解码类型的GPU资源、GPU图形渲染的GPU资源以及高性能计算的GPU资源,节点B包括编码类型的GPU资源、解码类型的GPU资源,则基于上述公式,也就能够得出节点A对应的第一得分高于节点B对应的第一得分。
本申请实施例中,所述获取每一个节点针对所述实际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资源占用预测信息的第三得分,还可以是根据不同的资源分配策略来计算得到。
例如,某个节点的第三得分可以是基于如下公式计算得到:
其中,e表示第三得分,A表示该节点可分配(Available)的GPU资源,R表示各容器请求分配(Request)的资源,也即未来可能被占用的资源。这种计算方式下,当节点针对各容器请求分配的资源完成分配后,则剩余资源最大的节点对应的第一子得分也最高,这样的节点会优先分配给目标容器使用。
或者,某个节点的第三得分还可以是基于如下公式计算得到:
其中,e表示第三得分,A表示该节点可分配(Available)的GPU资源,R表示各容器请求分配(Request)的资源,也即未来可能被占用的资源。这种计算方式下,则节点被请求的资源与可分配的资源的比例越大,则第一子得分越高,也即该节点越有可能被选择为目标节点,这样也就能够使得GPU资源的调度能更集中在一个节点上,从而使得节点的GPU资源调度的集成度更高。
或者,某个节点的第三得分还可以是基于如下公式计算得到:
其中,n表示节点下的GPU资源类型(或者称量纲)组的数量,Wj表示第j组的权重,wi表示某GPU资源类型组第i个GPU资源类型的权重,wmax表示该类型组的权重最大值,aik表示分配到节点时该组第个节点的可用资源率(即剩余资源百分比),m表示某个类型组中包含的GPU资源类型(量纲)的数量。该计算方式中,公式中的分子部分是对某类型(量纲)组不同节点可用GPU资源的加权求和,公式中的分母部分包含对该类型组下每个量纲可用GPU资源率方差的加权求和。这种计算方式下,最终计算得分是量纲资源部署均衡性及可用GPU资源率的综合得分,得分越高,代表GPU资源分配越均衡,这样也就能够尽量均衡地部署不同类型的任务。可选地,可以通过调整W(分组权重)和w(资源类型权重)实现不同的GPU资源分配需求。
本申请实施例中,容器云平台可以是基于上述得到的各节点的第一得分、第二得分和第三得分计算每个节点的分值总和,以得到每个节点的资源使用得分,将其中资源使用得分最高的一个节点作为目标节点,并将目标节点的至少一个GPU资源调度给目标容器使用。基于这样方式得到的目标节点,能够更有效地保障目标节点下的GPU资源能够满足目标容器的使用。
可选地,所述调度所述目标节点的至少一个GPU资源以供所述目标容器使用,包括:
根据所述目标容器的资源属性信息确定所述目标节点下的至少一个GPU资源;
将所述至少一个GPU资源调度给所述目标容器使用;
其中,所述资源属性信息还包括如下至少一项:所述目标容器的任务应用场景、所述目标容器的任务类型、所述目标容器请求调度的GPU资源是否可共享使用。
本申请实施例中,容器云平台在确定目标节点后,可以是基于目标容器的资源属性信息来对目标容器进行GPU资源调度。其中,所述目标容器的资源属性信息包括如下至少一项:上述第一类型信息、第二类型信息、目标容器的任务应用场景、目标容器的任务类型以及目标容器请求调度的GPU资源是否可共享使用。这样,也就能够基于这些资源属性信息,来确定目标节点下的哪些GPU资源可供调度。
例如,所述资源属性信息包括目标容器的任务应用场景和第一类型信息,其中目标容器的任务应用场景为超高清云导播,第一类型信息为解码类型的GPU资源,则可以将目标节点下能够用于解码的GPU资源调度给目标容器使用。这样,也就能够根据目标容器的资源属性信息,更有针对性地对目标节点下的GPU资源进行调度,以更好地满足目标容器的GPU资源使用需求。
需要说明地,容器云平台在对目标节点下的GPU资源执行调度时,还可以综合考虑各GPU资源的各类资源组合的性能现状、GPU资源的互联机制、GPU资源的其他限制性约束条件(如不可共享使用)等等,充分考虑上述条件后,可以是预分配GPU资源到K8S节点,待节点进行其他量纲选择后最终明确分配结果。在明确分配结果后,将待分配的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资源的使用需求,以确保目标容器的有效运行。
请参照图2,图2是本申请实施例可应用的一种GPU智能化调度的总体框架图,所述GPU智能化调度可以是应用于各业务场景GPU容器,如直播编码、直播导播、AI推理、3D渲染、云游戏等业务场景,如图2所示,所述GPU智能化调度的总体框架包括以下几个部分:
调度控制器插件配置(Scheduler controller plugin config):与K8S应用程序编程接口(Application Programming Interface,API)服务器连接;
调度器外延(Scheduler extensions)GPU节点资源调度:与K8S API服务器连接;
K8S API服务器:与kubelet(可理解为每个节点上运行的代理)连接;
Kubelet:包括设备插件管理器(device plugin manager)和设备pod资源(devicepod resource)API;
其中,设备插件管理器通过远程过度调用(g remote procedure call,gRPC)与设备插件(Device Plugin,DP)插件服务API连接,设备pod资源API与资源管理器组件通过gRPC连接,DP插件服务API与资源管理器组件能够用于GPU资源的健康与状态监测与报告、资源生命周期管理、场景化智能分配策略和资源绑定分配执行;
GPU性能监控插件:用于监控各GPU的性能。
本实施例中,GPU智能化调度可以是通过GPU智能调度器(Scheduler)实现。GPUScheduler是根据kubernetes(也可简称K8S)调度框架(kubernetes SchedulingFramework)实现的资源分配调度器。Kubernetes scheduler监听新容器的创建,对每个没有分配节点的容器,scheduler负责找到合适运行相应容器的节点。Scheduling Framework是用来实现Kubernetes scheduler的插件化框架(例如Kubernetes v1.19版本)。它为kubernetes调度器添加了一整套的插件接口(即扩展点)。这些接口可以实现几乎所有的节点调度策略。GPU Scheduler在Kubernetes默认调度器的基础上,增加了自主开发(自定义)的GPU资源分配插件(resource allocation plugin),这些自定义插件的相关逻辑说明如下:
1.sort扩展点:用于对非GPU资源容器使用默认排序方式,对GPU资源容器根据场景化的参数确定优先级。
2.filter扩展点:用于检查新建容器的附注(annotations),确认是否有GPU资源需求,根据是否有GPU资源,排除普通节点或者GPU资源节点。
3.score扩展点:一次调度过程(即一个容器的节点分配过程),每个经过Filter后的备选节点都会触发一次Score扩展的调用。调用的结果是一个int值,代表该节点选择的优先级,这个过程即Score打分。打分的计算逻辑是GPU resource allocation plugin实现智能调度的核心逻辑。打分的过程会综合考虑场景化的资源请求,结合该资源的智能预测结果,打分节点的现有资源,及打分节点的资源预测。同时在打分的计算过程中,预留了可配置的几种不同的资源分配策略:优先打散,优先堆叠,碎片率策略,指定比率等。该打分过程可以是参照上述实施例中确定目标节点的具体步骤,此处不再赘述。
4.Normalize Score扩展点:一次调用过程会触发一次对正常化(Normalize)Score的调用。该扩展接受的参数包含所有备选节点Score打分结果的列表。该扩展可以在调度器最终给节点排序之前,对插件的结果做一次统一处理。GPU resource allocationplugin通过该扩展点,调整得分的分值,使得分满足分值的要求(例如,Max Node Score=100,Min Node Score=0)。
节点内GPU Device Plugin调度,基于kubernetes Device Plugin接口标准,实现上述自定义调度逻辑,可支持本实施例需要的多量纲GPU资源,在GPU绑定过程中,参考了资源使用现状及各设置的可用资源余量。尽量避免了容器可见GPU资源的碎片化。
Device Plugin(简称DP)允许用户自定义资源名称,该资源的度量是整数级别的,这样做的目的在于通过一个通用的模式支持不同的异构设备,包括远程直接地址访问(Remote Direct Memory Access,RDMA),现场可编程门阵列(Field Programmable GateArray,FPGA),GPU等。Device Plugin允许第三方设备提供商以外置的方式对设置进行全生命周期的管理,而Device Plugin Framework建立Kubernetes和Device Plugin模块之间的桥梁。它一方面负责设置信息上报到Kubernetes,另一方面负责设置的调度选择,设置绑定的配置等等。GPU Device Plugin突破了Device Plugin的限制,没有明确的POD/container标识信息,没有明确的生命周期管理,有分配无回收,没有明确性的推荐分配,推荐结果可能无用,同设备的不同资源分配时完全独立等。主要步骤包括:
1.DP实时获取本节点所有GPU资源的各项性能指标实时运行数据,对实时数据取最近5分钟(可设置)内的90%的平均数据,一方面上报到Scheduler调度中心,一方面用于自身的节点内GPU卡的具体调度。
2.DP获取容器调度的请求,立即从节点获取该容器的各项详细配置需求信息,其中包括该容器对GPU资源的详细量纲信息。
3.DP从Scheduler获取调度节点对该容器的资源量纲关键要素的资源预测信息。
4.DP根据资源预测信息,结合该节点每个GPU卡的资源使用现状,选择最合适的1-n块GPU卡,其中需要充分考虑GPU卡的各类资源组合的性能现状、GPU卡的互联机制、GPU卡的其它限制性约束条件等等,充分考虑上述条件后,预分配GPU设备到K8S节点,待节点进行其它量纲选择后最终明确最终分配结果。
5.DP根据K8S节点最终返回的GPU分配确认结果,完成GPU设备与容器设备的绑定和映射工作,将GPU设备最终分配到容器。
6.DP需要持续不断维护每个容器的生命周期状态,以对GPU资源占用和回收情况进行持续的跟踪和管理。
7.节点Device Plugin设备控制器,针对已分配GPU资源,及时进行峰值冲突预警检测,对实际使用过程中发生的资源占用冲突的容器,在策略允许的情况下,选择容器进行状态干涉,完成资源再平衡,其中的策略包括:1、驱逐容器2、重新改变容器状态,重新在节点内调度分配GPU资源到容器。3、标记GPU资源不允许进行过度的分配等等。
本申请实施例中的GPU智能化调度能够实现上述图1实施例中的GPU资源调度,具体实现可以是参照上述实施例中的描述,此处不再赘述。
请参照图3,图3是本申请实施例提供的一种GPU资源调度装置的结构图,所述装置应用于容器云平台,所述容器云平台包括多个节点,任一所述节点包括多个GPU资源。如图3所示,GPU资源调度装置300包括:
第一获取模块301,用于获取目标容器的资源属性信息,所述资源属性信息用于表征所述目标容器对GPU资源的使用情况;
预测模块302,用于预测各容器的GPU资源占用预测信息;
第二获取模块303,用于获取所述多个节点中各节点的实际GPU资源使用信息;
确定模块304,用于根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定目标节点;
调度模块305,用于调度所述目标节点的至少一个GPU资源以供所述目标容器使用。
可选地,所述资源属性信息包括用于表征目标容器需求的GPU资源的类型的第一类型信息和第二类型信息,其中,所述目标容器对所述第一类型信息对应的GPU资源的使用需求大于对所述第二类型信息对应的GPU资源的使用需求;
所述确定模块304还用于:
根据所述第一类型信息、所述第二类型信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定所述目标节点。
可选地,所述确定模块304包括:
第一获取单元,用于获取每一个所述节点针对所述第一类型信息和所述第二类型信息的第一得分;
第二获取单元,用于获取每一个节点针对所述实际GPU资源使用信息的第二得分;
第三获取单元,用于获取每一个节点针对所述GPU资源占用预测信息的第三得分;
第一确定单元,用于根据所述第一得分、所述第二得分及所述第三得分,确定每一个所述节点的资源使用得分;
第二确定单元,用于根据每一个所述节点的资源使用得分,从所述多个节点中确定所述目标节点。
可选地,在所述第二类型信息的数量为多个的情况下,所述第一获取单元还用于:
获取每一个所述节点针对所述第一类型信息的第一子得分和针对每一个所述第二类型信息的第二子得分;
根据所述第一子得分、所述第二子得分、所述第二类型信息的数量以及所述第一类型信息和所述第二类型信息的权重比,确定所述第一得分。
可选地,所述第二获取单元还用于:
根据第一节点的所述实际GPU资源使用信息,确定所述第一节点的第一剩余GPU资源,其中,所述第一节点为所述多个节点中的任一个;
根据所述第一剩余GPU资源确定所述第一节点的第二得分。
可选地,所述第三获取单元还用于:
根据各容器的所述GPU资源占用预测信息,预测第二节点中被占用的第一目标GPU资源,其中,所述第二节点为所述多个节点中的任一个,所述第一目标GPU资源为所述第二节点中被占用的GPU资源;
根据所述第一目标GPU资源确定所述第二节点的第二剩余GPU资源;
根据所述第二剩余GPU资源确定所述第二节点的第三得分。
可选地,所述装置还包括:
监测模块,用于监测所述目标节点中被调度的所述至少一个GPU资源的使用情况;
执行模块,用于在监测到第二目标GPU资源的使用与第一容器的GPU资源使用发生冲突的情况下,执行第一操作;
其中,所述第二目标GPU资源为被调度的所述至少一个GPU资源中的任一个,所述第一容器为除所述目标容器外的任一容器。
可选地,所述执行模块还用于执行如下至少一项:
禁止所述第一容器使用所述目标GPU资源;
标记所述目标GPU资源为不可共享使用的资源;
为所述目标容器重新调度GPU资源。
可选地,所述调度模块还用于:
根据所述目标容器的资源属性信息确定所述目标节点下的至少一个GPU资源;
将所述至少一个GPU资源调度给所述目标容器使用;
其中,所述资源属性信息还包括如下至少一项:所述目标容器的任务应用场景、所述目标容器的任务类型、所述目标容器请求调度的GPU资源是否可共享使用。
本申请实施例提供的GPU资源调度装置300能够实现对GPU资源的灵活调度,以确保实现对GPU资源的有效分配,避免GPU资源浪费,也能够更好地满足容器对GPU资源的使用需求。
本申请实施例中的GPU资源调度装置300可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,本申请实施例不作具体限定。
本申请实施例中的GPU资源调度装置300可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的GPU资源调度装置300能够实现图1所述方法实施例实现的各个过程,为避免重复,这里不再赘述。
本申请实施例还提供了一种电子设备。请参见图4,图4是本申请实施例提供的一种电子设备的结构图,如图4所示,所述电子设备包括:处理器400、存储器420及存储在所述存储器420上并可在所述处理器400上运行的程序或指令,处理器400,用于读取存储器420中的程序或指令;所述电子设备还包括总线接口和收发机410。
收发机410,用于在处理器400的控制下接收和发送数据。
其中,在图4中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器400代表的一个或多个处理器和存储器420代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机410可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器400负责管理总线架构和通常的处理,存储器420可以存储处理器400在执行操作时所使用的数据。
本申请实施例中,所述电子设备可以是容器云平台,所述容器云平台包括多个节点,任一所述节点包括多个GPU资源。
其中,处理器400,用于读取存储器420中的程序或指令,执行如下步骤:
获取目标容器的资源属性信息,所述资源属性信息用于表征所述目标容器对GPU资源的使用情况;
预测各容器的GPU资源占用预测信息;
获取所述多个节点中各节点的实际GPU资源使用信息;
根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定目标节点;
调度所述目标节点的至少一个GPU资源以供所述目标容器使用。
可选地,所述资源属性信息包括用于表征目标容器需求的GPU资源的类型的第一类型信息和第二类型信息,其中,所述目标容器对所述第一类型信息对应的GPU资源的使用需求大于对所述第二类型信息对应的GPU资源的使用需求;处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
根据所述第一类型信息、所述第二类型信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定所述目标节点。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
获取每一个所述节点针对所述第一类型信息和所述第二类型信息的第一得分;
获取每一个节点针对所述实际GPU资源使用信息的第二得分;
获取每一个节点针对所述GPU资源占用预测信息的第三得分;
根据所述第一得分、所述第二得分及所述第三得分,确定每一个所述节点的资源使用得分;
根据每一个所述节点的资源使用得分,从所述多个节点中确定所述目标节点。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
获取每一个所述节点针对所述第一类型信息的第一子得分和针对每一个所述第二类型信息的第二子得分;
根据所述第一子得分、所述第二子得分、所述第二类型信息的数量以及所述第一类型信息和所述第二类型信息的权重比,确定所述第一得分。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
根据第一节点的所述实际GPU资源使用信息,确定所述第一节点的第一剩余GPU资源,其中,所述第一节点为所述多个节点中的任一个;
根据所述第一剩余GPU资源确定所述第一节点的第二得分。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
根据各容器的所述GPU资源占用预测信息,预测第二节点中被占用的第一目标GPU资源,其中,所述第二节点为所述多个节点中的任一个,所述第一目标GPU资源为所述第二节点中被占用的GPU资源;
根据所述第一目标GPU资源确定所述第二节点的第二剩余GPU资源;
根据所述第二剩余GPU资源确定所述第二节点的第三得分。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
监测所述目标节点中被调度的所述至少一个GPU资源的使用情况;
在监测到第二目标GPU资源的使用与第一容器的GPU资源使用发生冲突的情况下,执行第一操作;
其中,所述第二目标GPU资源为被调度的所述至少一个GPU资源中的任一个,所述第一容器为除所述目标容器外的任一容器。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
禁止所述第一容器使用所述目标GPU资源;
标记所述目标GPU资源为不可共享使用的资源;
为所述目标容器重新调度GPU资源。
可选地,处理器400,还用于读取存储器420中的程序或指令,执行如下步骤:
根据所述目标容器的资源属性信息确定所述目标节点下的至少一个GPU资源;
将所述至少一个GPU资源调度给所述目标容器使用;
其中,所述资源属性信息还包括如下至少一项:所述目标容器的任务应用场景、所述目标容器的任务类型、所述目标容器请求调度的GPU资源是否可共享使用。
本申请实施例中,所述电子设备能够实现对GPU资源的灵活调度,以确保实现对GPU资源的有效分配,避免GPU资源浪费,也能够更好地满足容器对GPU资源的使用需求。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述GPU资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述GPU资源调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (10)

1.一种图形处理器GPU资源调度方法,应用于容器云平台,所述容器云平台包括多个节点,任一所述节点包括多个GPU资源;其特征在于,所述方法包括:
获取目标容器的资源属性信息,所述资源属性信息用于表征所述目标容器对GPU资源的使用情况;
预测各容器的GPU资源占用预测信息;
获取所述多个节点中各节点的实际GPU资源使用信息;
根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定目标节点;
调度所述目标节点的至少一个GPU资源以供所述目标容器使用。
2.根据权利要求1所述的方法,其特征在于,所述资源属性信息包括用于表征目标容器需求的GPU资源的类型的第一类型信息和第二类型信息,其中,所述目标容器对所述第一类型信息对应的GPU资源的使用需求大于对所述第二类型信息对应的GPU资源的使用需求;
所述根据所述资源属性信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定目标节点,包括:
根据所述第一类型信息、所述第二类型信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定所述目标节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一类型信息、所述第二类型信息、所述实际GPU资源使用信息及所述GPU资源占用预测信息,从所述多个节点中确定所述目标节点,包括:
获取每一个所述节点针对所述第一类型信息和所述第二类型信息的第一得分;
获取每一个节点针对所述实际GPU资源使用信息的第二得分;
获取每一个节点针对所述GPU资源占用预测信息的第三得分;
根据所述第一得分、所述第二得分及所述第三得分,确定每一个所述节点的资源使用得分;
根据每一个所述节点的资源使用得分,从所述多个节点中确定所述目标节点。
4.根据权利要求3所述的方法,其特征在于,在所述第二类型信息的数量为多个的情况下,所述获取每一个所述节点针对所述第一类型信息和所述第二类型信息的第一得分,包括:
获取每一个所述节点针对所述第一类型信息的第一子得分和针对每一个所述第二类型信息的第二子得分;
根据所述第一子得分、所述第二子得分、所述第二类型信息的数量以及所述第一类型信息和所述第二类型信息的权重比,确定所述第一得分。
5.根据权利要求3所述的方法,其特征在于,所述获取每一个节点针对所述实际GPU资源使用信息的第二得分,包括:
根据第一节点的所述实际GPU资源使用信息,确定所述第一节点的第一剩余GPU资源,其中,所述第一节点为所述多个节点中的任一个;
根据所述第一剩余GPU资源确定所述第一节点的第二得分。
6.根据权利要求3所述的方法,其特征在于,所述获取每一个节点针对所述GPU资源占用预测信息的第三得分,包括:
根据各容器的所述GPU资源占用预测信息,预测第二节点中被占用的第一目标GPU资源,其中,所述第二节点为所述多个节点中的任一个,所述第一目标GPU资源为所述第二节点中被占用的GPU资源;
根据所述第一目标GPU资源确定所述第二节点的第二剩余GPU资源;
根据所述第二剩余GPU资源确定所述第二节点的第三得分。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述调度所述目标节点的至少一个GPU资源以供所述目标容器使用之后,所述方法还包括:
监测所述目标节点中被调度的所述至少一个GPU资源的使用情况;
在监测到第二目标GPU资源的使用与第一容器的GPU资源使用发生冲突的情况下,执行第一操作;
其中,所述第二目标GPU资源为被调度的所述至少一个GPU资源中的任一个,所述第一容器为除所述目标容器外的任一容器。
8.根据权利要求7所述的方法,其特征在于,所述执行第一操作,包括如下至少一项:
禁止所述第一容器使用所述目标GPU资源;
标记所述目标GPU资源为不可共享使用的资源;
为所述目标容器重新调度GPU资源。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-8中任一项所述的GPU资源调度方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-8中任一项所述的GPU资源调度方法的步骤。
CN202310892669.5A 2023-07-19 2023-07-19 Gpu资源调度方法、装置、电子设备和可读存储介质 Pending CN116881009A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310892669.5A CN116881009A (zh) 2023-07-19 2023-07-19 Gpu资源调度方法、装置、电子设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310892669.5A CN116881009A (zh) 2023-07-19 2023-07-19 Gpu资源调度方法、装置、电子设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN116881009A true CN116881009A (zh) 2023-10-13

Family

ID=88258409

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310892669.5A Pending CN116881009A (zh) 2023-07-19 2023-07-19 Gpu资源调度方法、装置、电子设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN116881009A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112242A (zh) * 2023-10-24 2023-11-24 纬创软件(武汉)有限公司 一种云计算系统中的资源节点分配方法和系统
CN117407143A (zh) * 2023-10-27 2024-01-16 北京德仕美通电子有限公司 一种基于云计算的数据中心管理系统
CN117573371B (zh) * 2024-01-09 2024-03-29 支付宝(杭州)信息技术有限公司 一种对于基于图形处理器运行的服务的调度方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112242A (zh) * 2023-10-24 2023-11-24 纬创软件(武汉)有限公司 一种云计算系统中的资源节点分配方法和系统
CN117112242B (zh) * 2023-10-24 2024-01-26 纬创软件(武汉)有限公司 一种云计算系统中的资源节点分配方法和系统
CN117407143A (zh) * 2023-10-27 2024-01-16 北京德仕美通电子有限公司 一种基于云计算的数据中心管理系统
CN117573371B (zh) * 2024-01-09 2024-03-29 支付宝(杭州)信息技术有限公司 一种对于基于图形处理器运行的服务的调度方法和装置

Similar Documents

Publication Publication Date Title
CN116881009A (zh) Gpu资源调度方法、装置、电子设备和可读存储介质
CN110647394B (zh) 一种资源分配方法、装置及设备
US20210011765A1 (en) Adaptive limited-duration edge resource management
CN111966500B (zh) 资源调度方法、装置、电子设备及存储介质
CN103365720B (zh) 用于多线程环境下动态调整全局堆分配的方法和系统
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN112988390A (zh) 一种算力资源分配方法及装置
CN112445615A (zh) 一种线程的调度系统、计算机设备和存储介质
CN112181613A (zh) 异构资源分布式计算平台批量任务调度方法及存储介质
US20230037783A1 (en) Resource scheduling method and related apparatus
CN115033340A (zh) 一种宿主机的选择方法及相关装置
CN113886069A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN111796933A (zh) 资源调度方法、装置、存储介质和电子设备
CN114721824A (zh) 一种资源分配方法、介质以及电子设备
CN110223435A (zh) 对象随机分配方法、装置、计算机存储介质和电子设备
CN111143033B (zh) 基于可伸缩操作系统的操作执行方法及装置
CN117234733A (zh) 一种分布式系统任务分配方法、系统、存储介质及设备
CN111210256A (zh) 资源分配方法及其装置、服务器、存储介质
CN116360994A (zh) 分布式异构资源池的调度方法、装置、服务器及存储介质
CN113301087B (zh) 资源调度方法、装置、计算设备和介质
CN111800446B (zh) 调度处理方法、装置、设备和存储介质
CN115700482A (zh) 任务执行方法及装置
CN112948084A (zh) 任务调度方法及系统
CN113535378A (zh) 一种资源调配方法、存储介质及终端设备
CN107294765B (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