CN107544845A - Gpu资源调度方法及装置 - Google Patents
Gpu资源调度方法及装置 Download PDFInfo
- Publication number
- CN107544845A CN107544845A CN201710494573.8A CN201710494573A CN107544845A CN 107544845 A CN107544845 A CN 107544845A CN 201710494573 A CN201710494573 A CN 201710494573A CN 107544845 A CN107544845 A CN 107544845A
- Authority
- CN
- China
- Prior art keywords
- node
- gpu
- idleness
- mrow
- resource
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Power Sources (AREA)
Abstract
本公开涉及GPU资源调度方法及装置,所述方法包括:主节点接收来自第一从节点的请求GPU计算资源的请求命令,所述请求命令为所述第一从节点接收到客户端提交的计算任务时发出的;主节点确定各从节点的GPU空闲率;主节点选择第二从节点,所述第二从节点为所有从节点中GPU空闲率最高的从节点;主节点将第二从节点的信息发送给所述第一从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。根据本公开各方面的GPU资源调度方法/装置能够实现GPU集群的计算资源得到均衡调度,提高GPU集群的计算性能,且不需要用户手动管理GPU资源,调度方式简单。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种GPU资源调度方法及装置。
背景技术
图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,专为计算密集型、高度并行化的计算而设计。GPU在许多领域得到应用,且性能远超传统CPU(Central 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资源,调度方式简单。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的GPU资源调度方法的流程图。
图2a示出根据本公开一实施例的GPU资源调度方法应用场景的示意图。
图2b示出根据本公开一实施例的GPU资源调度方法应用场景的示意图。
图3示出根据本公开一实施例的步骤S12的方法的流程图。
图4示出根据本公开一实施例的步骤S123的方法的流程图。
图5示出根据本公开一实施例的GPU资源调度装置的框图。
图6示出根据本公开一实施例的GPU资源调度装置的框图。
图7示出根据本公开一实施例的GPU资源调度装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的GPU资源调度方法的流程图,所述方法应用于GPU集群中,所述GPU集群包括主节点和从节点,所述从节点对应于一个或多个GPU。
如图1所示,该方法包括:
步骤S11,主节点接收来自第一从节点的请求GPU计算资源的请求命令,所述请求命令为所述第一从节点接收到客户端提交的计算任务时发出的;
步骤S12,主节点确定各从节点的GPU空闲率;
步骤S13,主节点选择第二从节点,所述第二从节点为所有从节点中GPU空闲率最高的从节点;
步骤S14,主节点将第二从节点的信息发送给所述第一从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。
图2a、图2b示出根据本公开一实施例的GPU资源调度方法应用场景的示意图。所述方法应用于GPU集群资源调度,如图2a所示,所述GPU集群可以包括主节点和从节点,一个主节点可以对应一个或多个从节点,如图2a中的GPU集群中的一个主节点M对应从节点C1和从节点C2;一个从节点可以对应一个或者多个GPU,一个从节点还可以接收一个或多个客户端发送的计算任务请求。主节点M负责协调GPU集群中的从节点,并实时更新GPU集群的资源状态;从节点负责监听该从节点自身(即当前从节点)对应的GPU的资源状态信息,并实时向主节点发送(例如,以心跳的形式发送)GPU的资源状态信息,同时接收客户端的计算任务请求;每一个GPU为一个计算核心,每个从节点都可包括一个或多个GPU,GPU是底层的计算资源;客户端为向GPU集群(例如,从节点)提交计算任务的用户,客户端可以是一个进程或线程。
以图2a所示的应用场景作为示例,对本公开的GPU资源调度方法进行说明。如图2a所示,在客户端需要进行数据计算(例如,图像渲染、去噪等处理)的情况下,客户端可以向从节点C1(第一从节点)提交计算任务,如图2a中的步骤1,也可以向其他从节点提交计算任务,本公开对此不做限定。其中,计算任务可以包括需要计算的数据或者数据的地址信息、对应的算法等。
第一从节点C1接收客户端提交的计算任务时向主节点M发送请求命令,如图2a中的步骤2,所述请求命令用于请求GPU计算资源。
主节点M收来自第一从节点C1的请求GPU计算资源的请求命令,并确定各从节点的GPU空闲率。例如,可以计算各个从节点(例如从节点C1、C2等)的GPU空闲率。主节点M选择第二从节点,第二从节点为所有从节点中GPU空闲率最高的从节点。主节点M可以将第二从节点的信息反馈给第一从节点C1,例如,主节点M可以将确定的GPU空闲率最高的第二从节点C2的信息(例如从节点C2的端口信息)反馈给第一从节点C1,第一从节点C1接收第二从节点C2的信息,如图2a中的步骤3。第一从节点C1根据接收到的第二从节点的信息,将所述计算任务发送给第二从节点C2,如图2a所示的步骤4。第二从节点C2对数据进行计算。
需要说明的是,以上从节点C1和C2仅仅作为一个示例,第二从节点也可能就是第一从节点,此时,第一从节点在确定GPU空闲率最高的从节点为其本身时,可以直接根据计算任务对数据进行计算。
通过构建包含主节点和从节点的分布式GPU集群框架,主节点响应于第一从节点发送的请求命令,确定GPU空闲率最高的从节点(第二从节点),将第二从节点信息发送给第一的从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。根据本公开的GPU资源调度方法能够使GPU集群的计算资源得到均衡调度,提高GPU集群的计算性能,且不需要用户手动管理GPU资源,调度方式简单。
在一种可能的实施方式中,所述主节点和从节点可以是运行在CPU中的应用程序,应用程序可以通过调用GPU提供的API接口实现GPU资源的调度。如图2b所示,CPU和GPU一般经过北桥通过AGP(Accelerated Graphics Port)插槽或PCI-E(Peripheral ComponentInterconnect Express)总线相连,各自有独立的外部存储器,分别是内存和显存。CPU控制协调GPU进行数据的计算和处理,例如,CPU将需要GPU处理的任务的数据传递给GPU,GPU进行处理后将结果返回给CPU。从节点对应的应用程序可以通过实时监测各个从节点对应的GPU的资源状态信息,并将所述GPU的资源状态信息发送给主节点。主节点可以响应于来自第一从节点的请求GPU计算资源的请求命令,确定各从节点的GPU空闲率并选择GPU空闲率最高的从节点;将GPU空闲率最高的从节点的信息发送给第一从节点以实现GPU资源的调度。
根据本实施例上述GPU资源调度方法可以有效简化GPU集群资源调度应用程序的编写,可高效地利用异构GPU集群的计算资源,且程序不依赖于硬件平台,可移植性较好,可以适用于不同的GPU集群。
图3示出根据本公开一实施例的步骤S12的方法的流程图,步骤S12可以包括:
步骤S121,获取各从节点的GPU资源状态信息。
在一种可能的实施方式中,各个从节点监听本从节点对应的GPU的资源状态信息,将所述GPU的资源状态信息发送给主节点,以使主节点获取各从节点的GPU资源状态信息。
举例来说,如图2a所示,各个从节点C1、C2可以监听各个从节点对应的GPU的资源状态信息,例如,从节点C1监听从节点C1对应的GPU的硬件信息,例如:GPU数量,各个GPU的主频、带宽、显存等信息,以及GPU的软件信息,例如:占用各个GPU的进程、某个进程的GPU资源使用量、各个GPU所有进程的总使用量等信息;从节点C2监听从节点C2对应的GPU的硬件信息,例如:GPU数量,各个GPU的主频、带宽、显存等信息,以及GPU的软件信息,例如:占用各个GPU的进程、某个进程的GPU资源使用量、各个GPU所有进程的总使用量等信息。
各个从节点将监听获得的当前从节点对应的GPU的资源状态信息发送给主节点M,各个从节点可以以心跳的形式发送所述GPU的资源状态信息,也可以采用其他形式发送,本公开对此不作限定。主节点M可以接收来自各从节点的、各从节点对应的GPU的资源状态信息。
通过各个从节点监听相应的GPU的资源状态信息,并将所述GPU的资源状态信息发送给主节点。根据本实施例的GPU资源调度方法,主节点可以实时获得各个从节点对应的GPU的资源状态信息,并根据计算任务和GPU的资源状态信息进行GPU资源的调度,能够实现GPU集群的计算资源得到实时的均衡调度,且不需要用户手动管理GPU资源。
步骤S12还包括:
步骤S122,针对任一从节点,根据该从节点的GPU资源状态信息,确定该从节点对应的每个GPU的空闲率。
步骤S123,根据该从节点对应的每个GPU的空闲率,确定该从节点的GPU空闲率。
举例来说,以从节点C1为例,主节点M分别对从节点C1对应的每个GPU的空闲率进行量化,例如,主节点M可以根据以下公式(1)计算该从节点C1对应的每个GPU的空闲率F:
其中,freq为GPU的核心频率,
SM为GPU的流处理器数量,
Core为根据CUDA(Compute Unified Device Architecture)的计算能力而获得的核心数,
GPUPerc为每个GPU的核心空闲率,举例来说,可以根据每个GPU对应的进程数量、进程的GPU资源使用量等信息确定每个GPU的核心使用率,每个GPU的核心空闲率可以是每个GPU的核心未被使用的计算资源占总资源的比率,例如,可以根据每个GPU的核心使用率确定每个GPU的核心空闲率。
memFreq为GPU对应的显存的核心频率,
busWidth为GPU对应的显存总线的位宽,
memPerc为GPU对应的显存的空闲率,
warpSize为线程束的数量,线程束是GPU线程调度的单位,一般32个线程为一个线程束。
以上参数都可以由从节点C1监听从节点C1对应的GPU而获得,例如可以通过调用函数获得以上参数信息,并以心跳的形式发送给主节点M。
在确定从节点对应的每个GPU的空闲率之后,主节点M可以根据该从节点对应的每个GPU的空闲率,确定该从节点的GPU空闲率。从节点的GPU空闲率可以是衡量该从节点对应的GPU的使用情况的参数,可以根据从节点对应的各个GPU的空闲率确定。
图4示出根据本公开一实施例的步骤S123的方法的流程图,如图4所示,步骤S123可以包括:
步骤S1231,主节点选择该从节点对应的GPU的最大空闲率作为该从节点的GPU空闲率;
或者,
步骤S1232,主节点将该从节点对应的各个GPU的空闲率的均值作为该从节点的GPU空闲率。
在一种可能的实施方式中,主节点M可以采用极大法或均值法确定各个从节点的GPU空闲率。举例来说,主节点M可以选择从节点对应的GPU的最大空闲率,作为该从节点的GPU空闲率;或者,主节点M可以将该从节点对应的各个GPU的空闲率的均值,作为该从节点的GPU空闲率。例如,从节点C1对应两个GPU:GPU1和GPU2,GPU1的空闲率F_C1_GPU1=1000,GPU2的空闲率F_C1_GPU2=2400,根据极大法可以确定从节点C1的GPU空闲率F_C1为2400,根据均值法可以确定从节点C1的GPU空闲率为F_C1=(1000+2400)/2=1700。
以上确定从节点的GPU空闲率的方式仅仅是本公开的示例性说明,而不以任何方式限制本公开,本领域技术人员还可以采用相关技术中的其他方式确定从节点的GPU空闲率。
主节点M可以采用同样的方式确定各个从节点(例如,C1、C2等)的GPU空闲率,并根据各个从节点的GPU空闲率确定所有从节点中GPU空闲率最高的从节点。主节点M将GPU空闲率最高的从节点的信息发送给所述请求命令所来自的从节点,例如,主节点M可以将确定的GPU空闲率最高的第二从节点C2的端口信息发送给第一从节点C1。
在一种可能的实施方式中,所述方法还包括:
通过第二从节点对所述计算任务进行计算得到计算结果、并将所述计算结果发送给所述第一从节点。
通过所述第一从节点,将所述计算结果发送给提交所述计算任务的客户端。
举例来说,如图2a所示,GPU空闲率最高的第二从节点C2对第一从节点C1发送的计算任务进行计算,例如,第二从节点C2可根据计算任务包括的算法对数据进行计算获得计算结果,例如可以是对图像数据进行显示渲染、去燥等处理得到处理后的图像数据。第二从节点C2将计算结果发送给第一从节点C1,如图2a所示的步骤5。第一从节点C1接收所述第二从节点C2返回的、针对所述计算任务的计算结果,并将所述计算结果发送给所述客户端,如图2a所示的步骤6。客户端可以根据所述计算结果对数据进行显示、播放等处理。
主节点将GPU空闲率最高的从节点(第二从节点)的信息发送给第一从节点,通过从节点之间发送计算任务、反馈计算结果,减轻主节点的负担。
图5示出根据本公开一实施例的GPU资源调度装置的框图,所述装置应用于GPU集群中,所述GPU集群包括主节点和从节点,所述从节点对应于一个或多个GPU。在一种可能的实施方式中,所述装置应用于GPU集群中的主节点。
如图5所示,该装置包括:接收模块41、确定模块42、选择模块43和发送模块44。
接收模块41,用于接收来自第一从节点的请求GPU计算资源的请求命令,所述请求命令为所述第一从节点接收到客户端提交的计算任务时发出的。
确定模块42,用于确定各从节点的GPU空闲率。
选择模块43,用于选择第二从节点,所述第二从节点为所有从节点中GPU空闲率最高的从节点。
发送模块44,用于将第二从节点的信息发送给所述第一从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。
通过构建包含主节点和从节点的分布式GPU集群框架,主节点响应于第一从节点发送的请求命令,确定GPU空闲率最高的从节点(第二从节点),将第二从节点信息发送给第一的从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。根据本公开的GPU资源调度装置能够使GPU集群的计算资源得到均衡调度,提高GPU集群的计算性能,且不需要用户手动管理GPU资源,调度方式简单。
图6示出根据本公开一实施例的GPU资源调度装置的框图,如图6所示,
在一种可能的实施方式中,所述确定模块42包括:获取单元421、第一确定单元422和第二确定单元423。
获取单元421,用于获取各从节点的GPU资源状态信息
第一确定单元422,用于针对任一从节点,根据该从节点的GPU资源状态信息,确定该从节点对应的每个GPU的空闲率;
第二确定单元423,用于根据该从节点对应的每个GPU的空闲率,确定该从节点的GPU空闲率。
在一种可能的实施方式中,第一确定单元422包括:
计算单元4221,用于针对任一GPU,根据以下公式计算该GPU的空闲率F:
其中,freq为GPU的核心频率,SM为GPU的流处理器数量,Core为根据CUDA(ComputeUnified Device Architecture)的计算能力获得的核心数,GPUPerc为GPU的核心空闲率,memFreq为GPU对应的显存的核心频率,busWidth为GPU对应的显存总线的位宽,memPerc为GPU对应的显存的空闲率,warpSize为线程束的数量。
在一种可能的实施方式中,所述所述第二确定单元423包括以下单元中的一个或多个:
第一选择单元4231,用于主节点选择该从节点对应的GPU的最大空闲率作为该从节点的GPU空闲率;
第二选择单元4232,用于主节点将该从节点对应的各个GPU的空闲率的均值作为该从节点的GPU空闲率。
图7是根据一示例性实施例示出的一种用于GPU资源调度装置900的框图。参照图7,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与GPU资源调度逻辑对应的机器可执行指令以执行上文所述的GPU资源调度方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (8)
1.一种GPU资源调度方法,其特征在于,所述方法应用于GPU集群,所述GPU集群包括主节点和从节点,所述从节点对应于一个或多个GPU,所述方法包括:
主节点接收来自第一从节点的请求GPU计算资源的请求命令,所述请求命令为所述第一从节点接收到客户端提交的计算任务时发出的;
主节点确定各从节点的GPU空闲率;
主节点选择第二从节点,所述第二从节点为所有从节点中GPU空闲率最高的从节点;
主节点将第二从节点的信息发送给所述第一从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。
2.根据权利要求1所述的GPU资源调度方法,其特征在于,所述确定各从节点的GPU空闲率,包括:
获取各从节点的GPU资源状态信息;
针对任一从节点,根据该从节点的GPU资源状态信息,确定该从节点对应的每个GPU的空闲率;
根据该从节点对应的每个GPU的空闲率,确定该从节点的GPU空闲率。
3.根据权利要求2所述的GPU资源调度方法,其特征在于,所述根据该从节点的GPU资源状态信息,确定该从节点对应的每个GPU的空闲率,包括:
针对任一GPU,根据以下公式计算该GPU的空闲率F:
<mrow>
<mi>F</mi>
<mo>=</mo>
<mn>0.8</mn>
<mo>&times;</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mi>r</mi>
<mi>e</mi>
<mi>q</mi>
<mo>&times;</mo>
<mi>S</mi>
<mi>M</mi>
<mo>&times;</mo>
<mi>C</mi>
<mi>o</mi>
<mi>r</mi>
<mi>e</mi>
</mrow>
<mrow>
<mi>w</mi>
<mi>a</mi>
<mi>r</mi>
<mi>p</mi>
<mi>S</mi>
<mi>i</mi>
<mi>z</mi>
<mi>e</mi>
</mrow>
</mfrac>
<mo>&times;</mo>
<mi>G</mi>
<mi>P</mi>
<mi>U</mi>
<mi>P</mi>
<mi>e</mi>
<mi>r</mi>
<mi>c</mi>
<mo>+</mo>
<mn>0.2</mn>
<mo>&times;</mo>
<mfrac>
<mrow>
<mi>m</mi>
<mi>e</mi>
<mi>m</mi>
<mi>f</mi>
<mi>r</mi>
<mi>e</mi>
<mi>q</mi>
<mo>&times;</mo>
<mi>b</mi>
<mi>u</mi>
<mi>s</mi>
<mi>W</mi>
<mi>i</mi>
<mi>d</mi>
<mi>t</mi>
<mi>h</mi>
</mrow>
<mrow>
<mn>8</mn>
<mi>b</mi>
<mi>i</mi>
<mi>t</mi>
<mo>/</mo>
<mi>b</mi>
<mi>y</mi>
<mi>t</mi>
<mi>e</mi>
</mrow>
</mfrac>
<mo>&times;</mo>
<mi>m</mi>
<mi>e</mi>
<mi>m</mi>
<mi>P</mi>
<mi>e</mi>
<mi>r</mi>
<mi>c</mi>
</mrow>
其中,freq为GPU的核心频率,SM为GPU的流处理器数量,Core为根据CUDA(ComputeUnified Device Architecture)的计算能力获得的核心数,GPUPerc为GPU的核心空闲率,memFreq为GPU对应的显存的核心频率,busWidth为GPU对应的显存总线的位宽,memPerc为GPU对应的显存的空闲率,warpSize为线程束的数量。
4.根据权利要求2所述的GPU资源调度方法,其特征在于,所述根据该从节点对应的每个GPU的空闲率,确定该从节点的GPU空闲率,包括:
主节点选择该从节点对应的GPU的最大空闲率作为该从节点的GPU空闲率;或者,
主节点将该从节点对应的各个GPU的空闲率的均值作为该从节点的GPU空闲率。
5.一种GPU资源调度装置,其特征在于,所述装置应用于GPU集群中的主节点,所述GPU集群包括主节点和从节点,所述从节点对应于一个或多个GPU,所述装置包括:
接收模块,用于接收来自第一从节点的请求GPU计算资源的请求命令,所述请求命令为所述第一从节点接收到客户端提交的计算任务时发出的;
确定模块,用于确定各从节点的GPU空闲率;
选择模块,用于选择第二从节点,所述第二从节点为所有从节点中GPU空闲率最高的从节点;
发送模块,用于将第二从节点的信息发送给第一从节点,以使所述第一从节点将所述计算任务发送给所述第二从节点。
6.根据权利要求5所述的GPU资源调度装置,其特征在于,所述确定模块包括:
获取单元,用于获取各从节点的GPU资源状态信息;
第一确定单元,用于针对任一从节点,根据该从节点的GPU资源状态信息,确定该从节点对应的每个GPU的空闲率;
第二确定单元,用于根据该从节点对应的每个GPU的空闲率,确定该从节点的GPU空闲率。
7.根据权利要求6所述的GPU资源调度装置,其特征在于,第一确定单元包括:
计算单元,用于针对任一GPU,根据以下公式计算该GPU的空闲率F:
<mrow>
<mi>F</mi>
<mo>=</mo>
<mn>0.8</mn>
<mo>&times;</mo>
<mfrac>
<mrow>
<mi>f</mi>
<mi>r</mi>
<mi>e</mi>
<mi>q</mi>
<mo>&times;</mo>
<mi>S</mi>
<mi>M</mi>
<mo>&times;</mo>
<mi>C</mi>
<mi>o</mi>
<mi>r</mi>
<mi>e</mi>
</mrow>
<mrow>
<mi>w</mi>
<mi>a</mi>
<mi>r</mi>
<mi>p</mi>
<mi>S</mi>
<mi>i</mi>
<mi>z</mi>
<mi>e</mi>
</mrow>
</mfrac>
<mo>&times;</mo>
<mi>G</mi>
<mi>P</mi>
<mi>U</mi>
<mi>P</mi>
<mi>e</mi>
<mi>r</mi>
<mi>c</mi>
<mo>+</mo>
<mn>0.2</mn>
<mo>&times;</mo>
<mfrac>
<mrow>
<mi>m</mi>
<mi>e</mi>
<mi>m</mi>
<mi>f</mi>
<mi>r</mi>
<mi>e</mi>
<mi>q</mi>
<mo>&times;</mo>
<mi>b</mi>
<mi>u</mi>
<mi>s</mi>
<mi>W</mi>
<mi>i</mi>
<mi>d</mi>
<mi>t</mi>
<mi>h</mi>
</mrow>
<mrow>
<mn>8</mn>
<mi>b</mi>
<mi>i</mi>
<mi>t</mi>
<mo>/</mo>
<mi>b</mi>
<mi>y</mi>
<mi>t</mi>
<mi>e</mi>
</mrow>
</mfrac>
<mo>&times;</mo>
<mi>m</mi>
<mi>e</mi>
<mi>m</mi>
<mi>P</mi>
<mi>e</mi>
<mi>r</mi>
<mi>c</mi>
</mrow>
其中,freq为GPU的核心频率,SM为GPU的流处理器数量,Core为根据CUDA(ComputeUnified Device Architecture)的计算能力获得的核心数,GPUPerc为GPU的核心空闲率,memFreq为GPU对应的显存的核心频率,busWidth为GPU对应的显存总线的位宽,memPerc为GPU对应的显存的空闲率,warpSize为线程束的数量。
8.根据权利要求6所述的GPU资源调度装置,其特征在于,所述第二确定单元包括以下单元中的一个或多个:
第一选择单元,用于主节点选择该从节点对应的GPU的最大空闲率作为该从节点的GPU空闲率;
第二选择单元,用于主节点将该从节点对应的各个GPU的空闲率的均值作为该从节点的GPU空闲率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710494573.8A CN107544845B (zh) | 2017-06-26 | 2017-06-26 | Gpu资源调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710494573.8A CN107544845B (zh) | 2017-06-26 | 2017-06-26 | Gpu资源调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544845A true CN107544845A (zh) | 2018-01-05 |
CN107544845B CN107544845B (zh) | 2020-08-11 |
Family
ID=60970981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710494573.8A Active CN107544845B (zh) | 2017-06-26 | 2017-06-26 | Gpu资源调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544845B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213600A (zh) * | 2018-09-11 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于ai云的gpu资源调度方法和装置 |
CN110162397A (zh) * | 2018-05-28 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置及系统 |
CN110969565A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视数字技术股份有限公司 | 图像处理的方法和装置 |
CN112131008A (zh) * | 2020-09-28 | 2020-12-25 | 西安芯瞳半导体技术有限公司 | 一种调度线程束warp的方法、处理器及计算机存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102906726A (zh) * | 2011-12-09 | 2013-01-30 | 华为技术有限公司 | 协处理加速方法、装置及系统 |
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN104540234A (zh) * | 2015-01-19 | 2015-04-22 | 西安电子科技大学 | 一种C-RAN架构下基于CoMP同步约束的关联任务调度机制 |
CN104679215A (zh) * | 2013-11-28 | 2015-06-03 | 杭州华为数字技术有限公司 | 能耗封顶调整方法及装置 |
CN105373431A (zh) * | 2015-10-29 | 2016-03-02 | 武汉联影医疗科技有限公司 | 一种计算机系统资源的管理方法及计算机资源管理系统 |
WO2016173450A1 (zh) * | 2015-04-28 | 2016-11-03 | 阿里巴巴集团控股有限公司 | 图形处理装置、资源服务装置、资源调度方法和装置 |
CN106845215A (zh) * | 2016-12-30 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境下的安全防护方法及装置 |
-
2017
- 2017-06-26 CN CN201710494573.8A patent/CN107544845B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102906726A (zh) * | 2011-12-09 | 2013-01-30 | 华为技术有限公司 | 协处理加速方法、装置及系统 |
CN102929718A (zh) * | 2012-09-17 | 2013-02-13 | 江苏九章计算机科技有限公司 | 一种基于任务调度的分布式gpu计算机系统 |
CN104679215A (zh) * | 2013-11-28 | 2015-06-03 | 杭州华为数字技术有限公司 | 能耗封顶调整方法及装置 |
CN104540234A (zh) * | 2015-01-19 | 2015-04-22 | 西安电子科技大学 | 一种C-RAN架构下基于CoMP同步约束的关联任务调度机制 |
WO2016173450A1 (zh) * | 2015-04-28 | 2016-11-03 | 阿里巴巴集团控股有限公司 | 图形处理装置、资源服务装置、资源调度方法和装置 |
CN105373431A (zh) * | 2015-10-29 | 2016-03-02 | 武汉联影医疗科技有限公司 | 一种计算机系统资源的管理方法及计算机资源管理系统 |
CN106845215A (zh) * | 2016-12-30 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境下的安全防护方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162397A (zh) * | 2018-05-28 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置及系统 |
CN110162397B (zh) * | 2018-05-28 | 2022-08-23 | 腾讯科技(深圳)有限公司 | 资源分配方法、装置及系统 |
CN109213600A (zh) * | 2018-09-11 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种基于ai云的gpu资源调度方法和装置 |
CN110969565A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视数字技术股份有限公司 | 图像处理的方法和装置 |
CN110969565B (zh) * | 2018-09-28 | 2023-05-16 | 杭州海康威视数字技术股份有限公司 | 图像处理的方法和装置 |
CN112131008A (zh) * | 2020-09-28 | 2020-12-25 | 西安芯瞳半导体技术有限公司 | 一种调度线程束warp的方法、处理器及计算机存储介质 |
CN112131008B (zh) * | 2020-09-28 | 2024-04-19 | 芯瞳半导体技术(山东)有限公司 | 一种调度线程束warp的方法、处理器及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107544845B (zh) | 2020-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144828B2 (en) | Training task optimization system, training task optimization method and non-transitory computer readable medium for operating the same | |
KR102624607B1 (ko) | 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링 | |
US9501318B2 (en) | Scheduling and execution of tasks based on resource availability | |
CN107544845A (zh) | Gpu资源调度方法及装置 | |
US9092266B2 (en) | Scalable scheduling for distributed data processing | |
US9479358B2 (en) | Managing graphics load balancing strategies | |
CN105718479B (zh) | 跨idc大数据处理架构下执行策略生成方法、装置 | |
JP6241300B2 (ja) | ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム | |
CN110610449B (zh) | 处理计算任务的方法、设备和计算机程序产品 | |
US8875153B2 (en) | Routing workloads based on relative queue lengths of dispatchers | |
CN110869909A (zh) | 应用机器学习算法来计算健康分数以进行工作负载调度的系统和方法 | |
US9405349B2 (en) | Multi-core apparatus and job scheduling method thereof | |
CN110389826B (zh) | 用于处理计算任务的方法、设备和计算程序产品 | |
WO2017000822A1 (zh) | 一种直接内存访问的传输控制方法及装置 | |
CN106201723A (zh) | 一种数据中心的资源调度方法及装置 | |
CN111506434B (zh) | 一种任务处理方法、装置及计算机可读存储介质 | |
US11979336B1 (en) | Quota-based resource scheduling | |
CN107580698B (zh) | 用于确定并行处理器内核的调度大小的并发因子的系统和方法 | |
US20220121918A1 (en) | Load balancing for memory channel controllers | |
EP3989067A1 (en) | Data processing method and apparatus for dynamic runtime selection of a kernel candidate implementing a layer of a neural network | |
CN114118433A (zh) | 一种设备的配置参数的推荐方法及装置 | |
EP2829972B1 (en) | Method and apparatus for allocating stream processing unit | |
US8775767B2 (en) | Method and system for allocating memory to a pipeline | |
CN110609744B (zh) | 处理计算任务的方法、设备和计算机程序产品 | |
CN114285766B (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 |