CN114503077A - 用于机器学习工作负载的任务调度 - Google Patents

用于机器学习工作负载的任务调度 Download PDF

Info

Publication number
CN114503077A
CN114503077A CN202080061569.2A CN202080061569A CN114503077A CN 114503077 A CN114503077 A CN 114503077A CN 202080061569 A CN202080061569 A CN 202080061569A CN 114503077 A CN114503077 A CN 114503077A
Authority
CN
China
Prior art keywords
host
hosts
resources
workload
task
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
CN202080061569.2A
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN114503077A publication Critical patent/CN114503077A/zh
Pending legal-status Critical Current

Links

Images

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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

描述了用于调度ML工作负载的任务的方法、系统和装置,包括在计算机存储介质上编码的计算机程序。系统接收请求以执行工作负载,并且基于请求来确定资源需求以执行工作负载。系统包括多个主机并且每个主机包括多个加速器。系统基于资源需求和每个主机的加速器来确定被分配来执行工作负载的任务的主机的数量。针对所述数量的主机中的每个主机,系统基于主机的存储器存取拓扑来生成任务规格。规格指定将在主机处使用包括多个加速器的主机的资源执行的任务。系统将任务规格提供给主机,并且在每个主机执行针对主机在任务规格中指定的所分配任务时执行工作负载。

Description

用于机器学习工作负载的任务调度
背景技术
本说明书通常涉及调度计算工作负载的任务以及分配用于执行计算工作负载的任务的资源。
分布式计算系统通常包括各种资源,诸如中央处理单元(CPU)、存储组件以及图像/语音处理加速器、视频转码加速器或神经网络处理器(例如机器学习(ML)加速器)。这些资源能够相互作用以处理示例计算工作负载的任务,诸如用于训练ML系统的工作负载,或用于分类图像或生成用于语音识别的转录的推理工作负载。
用于处理工作负载的现有方案定期地需要存取存储器以及在分布式系统中的计算资源或资源组之间交换数据通信,该分布式系统相对彼此是非本地的(或远程的)。此类非本地存储器存取操作和数据通信通常为带宽密集型的,其可能在用于交叉端口(cross-socket)(例如远程)操作的主机带宽有限时引起计算群集中的性能瓶颈。
发明内容
本文档描述用于在处理机器学习(ML)工作负载时通过将工作负载的任务分配给跨大型分布式系统中的多个主机的相应资源组的改进调度和资源分配的技术。使用本文档描述的技术,分布式系统能够被配置为将工作负载的每个任务分配给资源组,该资源组经由分布式系统的共享或共同硬件总线来交换数据通信。该分配方案通过利用资源位置实现工作负载处理时间减少,该位置是基于资源组的非一致存储器存取(NUMA)拓扑。在一些示例中,所描述的技术能够用于针对用以加速在分布式系统的离散张量处理节点处执行的神经网络计算的一系列硬件加速器来执行NUMA感知调度。
本说明书中描述的主题的一个方面能够在一种用于调度任务和分配资源以使用硬件加速器来执行机器学习工作负载的方法中实施,所述硬件加速器中的每一个被配置为实施包括多个神经网络层的神经网络。该方法包括:接收请求以执行机器学习(ML)工作负载;基于请求来确定资源需求以在包括多个主机的分布式处理系统处执行ML工作负载,所述多个主机中的每个主机包括相应多个硬件加速器;基于资源需求和每个主机的相应多个硬件加速器来确定分别被分配来执行形成ML工作负载的一组任务中的相应任务的主机的数量。
针对所述数量的主机中的每个主机,该方法包括:基于主机的存储器存取拓扑来生成相应任务规格,该相应任务规格指定被分配以在该主机处使用该主机的资源执行的任务,该主机的资源包括所述相应多个硬件加速器;以及将该相应任务规格提供给所述数量的主机中的所述主机;以及通过由所述数量的主机中的每个主机执行针对该主机在该相应任务规格中指定的任务来执行ML工作负载。
这些和其他实施方式能够分别可选地包括以下特征中的一个或多个特征。例如,在一些实施方式中,每个主机的存储器存取拓扑包括相应的非一致存储器存取(NUMA)拓扑,该非一致存储器存取拓扑包括对于该主机是本地的相应存储器;并且该相应存储器包括端口接口(socket interface),该端口接口将该相应存储器耦接到所述相应多个硬件加速器中的每个硬件加速器以及该主机的一个或多个其他资源。
在一些实施方式中,执行相应任务规格中指定的任务包括:执行多个神经网络计算,以响应于将所述多个神经网络计算的相应部分分配给所述相应多个硬件加速器中的每个硬件加速器来生成用于所述多个神经网络层中的每个神经网络层的输出。
在一些实施方式中,执行ML工作负载包括:使用该主机的控制组的每个资源并且基于包括在该主机的资源当中的相应存储器、硬件加速器和相应处理器之间交换的数据来处理用于所述相应任务规格的指令。
在一些实施方式中,执行ML工作负载包括:响应于基于经由硬件端口交换的数据处理指令来执行所述相应任务规格中指定的任务,该硬件端口链接该主机的控制组的每个资源,其中该硬件端口定义在由该主机管理的多个资源当中共享的本地通信总线。
在一些实施方式中,用于第一主机的相应NUMA拓扑是部分地基于:i)在资源的相应配置中对于第一主机是本地的相应第一存储器;以及ii)在资源的相应配置中对于第二不同主机是本地的,但是对于第一主机是远程的相应第二不同存储器。
在一些实施方式中,确定主机的数量包括:获得描述资源的配置的系统文件,该资源由所述多个主机中的每个主机管理;以及针对所述多个主机中的每个主机基于系统文件中描述的资源的配置来确定主机的数量。在一些实施方式中,该方法包括:基于描述多个主机中的每个主机的NUMA端口的映射的系统文件来标识耦接该主机的资源的一个或多个端口;以及基于耦接该主机的资源的一个或多个端口来形成该主机的控制组。
在一些实施方式中,该方法包括:基于用于控制组中的加速器的一个或多个端口接口来将该任务规格的ML任务分配给该主机的控制组,其中所述端口接口被包括在系统文件中所描述的NUMA端口的映射中;以及使用控制组中的加速器将ML任务作为控制组下的过程来执行。
此方面和其他方面的其他实施方式包括对应系统、装置和计算机程序,该计算机程序被配置为执行方法的动作,在非暂时性计算机可读存储设备上编码。一个或多个计算机的系统能够如此由安装在系统上的软件、固件、硬件或其组合配置,其在操作中使系统执行动作。一个或多个计算机程序能够如此被配置为具有指令,该指令在由数据处理装置执行时使装置执行动作。
本说明书中描述的主题的一个方面能够在系统中实施,该系统接收请求以执行工作负载,并且基于请求来确定资源需求以执行工作负载。该系统包括多个主机并且每个主机包括多个加速器。该系统基于资源需求和每个主机的加速器来确定被分配来执行工作负载的任务的主机的数量。针对所述数量的主机中的每个主机,该系统基于该主机的存储器存取拓扑来生成任务规格。该规格指定将在该主机处使用包括所述多个加速器的该主机的资源执行的任务。该系统将任务规格提供给该主机并且在每个主机执行针对该主机在该任务规格中指定的所分配任务时执行工作负载。
本说明书中描述的主题能够在特定实施例中实施以实现以下优势中的一个或多个优势。本文档中描述的技术能够在系统的主机执行工作负载的任务时通过减少或防止出现非本地存储器存取操作和数据通信来减轻系统中的性能瓶颈。相对现有方式,所描述技术能够用于通过利用资源位置来减少处理工作负载所需的时间量,该位置是基于由系统的每个主机管理的资源或资源组的非一致存储器存取(NUMA)拓扑。
在附图和以下描述中阐述本说明书中描述的主题的一个或多个实施方式的细节。主题的其他潜在特征、方面和优势将从描述、附图和权利要求书中变得显而易见。
附图说明
图1是用于调度任务的示例计算系统的框图,该任务被执行以执行机器学习工作负载。
图2示出了由图1的计算系统中包括的主机管理的示例资源的框图。
图3示出了示例计算逻辑,该示例计算逻辑能够被执行以生成用于执行机器学习工作负载的任务规格。
图4示出了用于调度任务的示例过程,该任务被执行以执行机器学习工作负载。
图5示出了用于生成任务规格的示例过程,该任务规格被提供给图1的计算系统的主机。
各个附图中的相似附图标记指示相似元件。
具体实施方式
分布式系统具有包括用于执行计算工作负载的硬件设备的多个节点(例如主机)。节点能够形成处理数据以执行工作负载的单独硬件计算群集或群集中的主机设备。节点中的每个节点能够包括多个资源。例如,资源可以是处理器或CPU、存储器或外围组件互连(PCI)设备(例如硬件加速器),并且每个主机能够包括形成资源组的多个资源。
每个资源可以具有使一些资源相对于节点中的其他资源是远程的或本地的某一硬件或端口连接。用于在分布式系统处处理工作负载的方式通常需要存取存储器和执行操作,该操作包括在相对彼此为非本地的(或远程的)资源之间移动数据。如上所述,此非本地的存储器存取和数据转移操作能够引起具有用于交叉端口(例如远程的)操作的有限带宽的群集或主机中的性能瓶颈。
在本上下文中,描述了用于改进在分布式系统中的计算群集处调度计算工作负载的任务和分配系统的资源的技术,其用于执行形成计算工作负载的任务。关于调度,技术包括用于将工作负载(例如ML工作负载)的任务分配给由大型分布式系统的单独主机管理的相应资源组的改进过程。例如,系统被配置为将工作负载的具体任务分配给特定资源组,其中组中的离散资源经由分布式系统的共享或共同硬件总线交换数据通信。用于将某些任务分配给主机的特定资源组的过程是通过利用计算群集内的资源位置来执行的,其中位置是基于资源组的非一致存储器存取(NUMA)拓扑。
描述了还提供用于跨分布式系统的不同计算群集中的多个主机来执行NUMA感知任务调度和资源分配的方式的技术。例如,计算群集的控制器能够在描述需要NUMA位置的工作负载的工作或任务的一组协议位上传递。技术通过将一个或多个任务分配给特定资源集或设备来利用群集或群集内的主机的NUMA位置,诸如包括CPU、存储器和外围组件互连(PCI)设备(例如硬件加速器)的资源组。
管理多个资源组的主机可操作以接收并且处理由群集的主控制器传递的协议位。例如,主机基于其资源组的所确定端口拓扑来处理协议位,并且分配来自相同NUMA端口的特定资源集以执行如协议位指定的工作负载的特定工作或部分的任务。主机可操作以将任务规格的一组机器学习任务绑定或分配给在主机处构造的资源组(或控制组)。例如,基于协议位传达的信息,主机能够将任务绑定到给定资源组以减少或防止可能降低给定任务的计算的性能或执行的非本地存储器或数据存取操作的出现。
用于NUMA感知任务调度和资源分配的所述方法使分布式系统能够优化其NUMA位置的使用,以降低带宽要求并且改进用于执行某些工作负载的计算时间。例如,这能够至少基于群集的NUMA位置的利用来实现,使某些类型的任务被分配给同地协作的特定设备集或资源组,使得能够减少交叉端口或交叉节点通信,从而释放用于其他计算的带宽。
图1是用于调度任务的示例分布式计算系统100的框图,该任务被执行以进行计算工作负载。系统100可以是包括多个计算群集102的大型分布式硬件计算系统,其中每个群集102包括多个主机104并且每个主机104包括多个计算资源105。
一个或多个资源组能够由分布式系统100的主机104管理,并且多个计算群集102中的每个计算群集能够包括多个主机104。更具体地,每个主机104被配置成管理形成资源组的两个或更多个离散资源105。由主机104管理的资源群组可以在本文中备选地称为资源组。因此,在一些情况下,资源105能够表示离散资源,诸如单个处理器或存储器设备,而在其他情况下资源105能够表示多个资源,诸如两个或多个处理器、两个或多个存储器组、两个或多个硬件加速器或每个的组合。下文参考图2更详细地描述主机104的资源组。
在一些实施方式中,主机104是硬件计算设备(例如计算机或服务器)。在一些实施方式中,主机104是分布式系统(或计算群集)的虚拟机、用于管理计算资源105的组的软件构造或这两者。系统100能够包括M数目个计算群集102,并且M数目个计算群集中的每个计算群集102能够包括N数目个主机,其中M和N中的每一个为大于或等于一的整数。
在一些实施方式中,计算群集102中的每个计算群集包括形成群集102的主机104的一组机器(例如硬件或虚拟机)。如图1中所示,单个群集102能够包括多个控制器108,所述控制器中的每一个用于将工作负载的任务分配给群集102中的主机104中的一个或多个主机。
计算群集102中的每个计算群集能够包括与群集102的主控制器108(“控制器108”)以及可由主控制器108存取的链接分片110通信的调度器106。控制器108负责生成任务规格并且准备用于发送给主机104的指令和命令,并且负责基于来自主机104的响应来更新主机104的当前处理状态。在一些实施方式中,每个控制器108包括管理与主机104的子集通信的状态逻辑110。例如,状态逻辑110由控制器108运行以将命令发送给主机104的子集,从而获得关于主机104的处理状态的信息并且从主机104接收响应。例如,状态逻辑110用于接收并处理指示所分配任务是完成了还是在处理中的主机报告。状态逻辑110可以确定如果主机104在阈值数目的尝试之后未能提供状态报告,则分配给主机104的任务已停止以获得关于主机的处理状态的信息。在一些情况下,状态逻辑110可操作以合计并且压缩由主机104报告的处理状态信息,从而减小在主控制器108处接收的更新负载的大小。
如下文更详细描述,调度器106和控制器108相互作用或通信以将工作负载的任务调度并且分配给特定主机104以用于在主机处执行。尽管在图1中描绘为与控制器108分离,但是调度器106能够集成于控制器108中。在一些实施方式中,调度器106是计算群集102的可选处理元件,并且其功能能够集成到控制器108处配置的分配和控制功能中。
控制器108可操作以至少基于请求112来分配工作负载的任务以执行一个或多个工作负载以及由主机104管理的资源的硬件配置。例如,控制器108中的每个控制器可以是逻辑上集中的控制器,该控制器基于在群集102处接收的请求112中的参数并且基于主机104中包括的资源105(或资源组)的硬件端口拓扑来生成指令。在一些实施方式中,主机104的子集中的每个主机104被配置为特定主控制器108下的“从设备”计算资产。在此实施方式中,主控制器108基于请求112中的参数和在作为特定主控制器108下的“从设备”的主机104的子集中的每个主机104处的硬件端口拓扑来生成指令。
主机104能够包括对应于机器或硬件设备的多个资源105,例如数百或数千个资源或设备。主机104中的资源105能够在许多方面变化或是异构的。例如,由主机104管理的每个资源组105能够在处理设备(例如CPU、RAM、磁盘、网络)、处理器类型、处理速度、性能和诸如外部IP地址或闪存存储装置的能力方面发生变化。更具体地,针对每个计算群集102,群集102中的多个主机104中的每个主机包括与主机的其他资源相互作用的一个或多个专用硬件电路以执行工作负载的任务。
例如,专用硬件电路可以是硬件加速器、图形处理单元(GPU)硬件加速器或神经网络处理器。在图1的示例中,系统100能够包括第一主机104-1、第二主机104-2、第三主机104-3以及N数目个附加的主机104-n。在一些实施方式中,第一主机104-1的专用电路和资源105可以不同于(例如略微的或显著的)第二主机104-2的专用电路和资源105。
例如,第一主机104-1可以包括10个GPU硬件加速器,所述GPU硬件加速器中的每一个被配置为执行基于位置和内存中的分析或GPU加速数据库查询,而第二主机104-2可以包括20个神经网络处理器,所述神经网络处理器中的每一个被配置为实施卷积神经网络(CNN)模型或递归神经网络(RNN)模型。在一些实施方式中,20个神经网络处理器可以被配置为执行用于经过训练的推理模型的二进制文件并且加速运行基于浮点的推理模型、整数量化推理模型或这两者。
系统100使用控制器108来生成用于分配和控制单独任务(诸如能够在特定主机104的一个或多个机器上运行的任务)的执行的指令。通过重点关注利用计算群集102的主机104内的资源位置来形成用于将某些任务分配给主机104的特定资源组的确定。资源位置是基于主机104处的资源组的硬件拓扑,并且更具体地,基于资源组的非一致存储器存取(NUMA)拓扑,如下文描述。
系统100被配置为生成包括用于每个计算群集102和计算群集的每个主机104的硬件拓扑的系统拓扑。硬件拓扑被配置为标识:i)多个设备和主机的资源的连接性(例如端口连接和接口),以及ii)实现主机104的资源105之间的数据转移的本地通信总线。
系统100被配置为标识与主机104中的硬件端口的连接点或组件接口耦接的每个资源或外围设备的位置。例如,主机104能够运行与由主机104管理的硬件计算机的系统BIOS相关联的程序代码(例如固件),以标识资源位置和与计算机的母板耦接的资源105(例如处理器和存储器)的类型。在一些实施方式中,主机104的操作系统能够使用硬件计算机的芯片组来获得关于数据总线和在由主机104管理的计算机处连接的外围设备的信息的详细列表。例如,列表能够基于表示在计算机的处理器上运行的操作系统的互连配置空间的共同便携式互连库(例如libpci)。
控制器108可操作以将重要指令传输给每个主机104以用于执行任务以及将命令传输给每个主机104,以获得关于在主机104处管理的特定机器或资源组105的当前处理状态的信息。在一些实施方式中,控制器108动态地传输命令以获得关于处理状态的信息。备选地,控制器108可以传输命令以参考预定时间表(例如每几秒)获得关于处理状态的信息,而时间表是基于在主机104处执行的具体任务。一般来说,每个控制器108可操作以基于其传输给主机的指令和命令来控制各种资源与主机104的不同资源组之间的相应通信速率。
图2示出了由示例计算群集102的主机104管理的示例资源组200的框图。如上文所描述,主机104能够包括对应于机器或硬件设备的数百或数千个资源。主机104的资源组中的资源105能够在许多方面变化或是异构的。例如,由主机104管理的每个资源组200能够在处理设备(例如CPU、RAM、磁盘、网络)、处理器类型、处理速度、整体性能和诸如外部IP地址或闪存存储装置等能力方面发生变化。
如图2中所示,每个主机104的存储器存取拓扑能够包括由主机104管理的一个或多个资源组200的相应非一致存储器存取(NUMA)拓扑或端口202-1、202-2。资源组200的NUMA拓扑能够包括多个处理器(P)204或多个处理器核心(P)、存储器资源(例如随机存取存储器(RAM))以及一个或多个专用电路(诸如硬件加速器208)。NUMA拓扑的单独资源能够形成与NUMA端口202-1或202-2对应的本地NUMA节点。
例如,本地NUMA节点可以基于组中的经由共享或共同硬件总线210交换数据通信的资源形成。当资源经由与共同端口的接口(或端口)连接在节点处连接时,本地NUMA节点中的每个资源可以是对于另一资源是本地的。在一些实施方式中,每个硬件加速器208经由PCI或PCI-e端口连接而连接到NUMA节点的其他资源。
如本说明书中所使用,NUMA涉及用于分布式多处理系统中的计算机存储器设计,其中存储器存取时间取决于相对于处理器(P)204或处理器核心的存储器位置。在NUMA下,处理器204能够相较于非本地的存储器更快地存取其自身本地的存储器206-1,该非本地的存储器诸如对于另一处理器是本地的存储器206-2或在处理器之间共享的存储器。
示例资源组202能够包括多个互连位置212。例如,互连位置212-1和212-2中的每个互连位置能够对应于用于在主机104的资源105之间(诸如在主机104的存储器206-1与硬件加速器208之间)建立数据连接的相应组件接口。在一些实施方式中,资源组200的资源105经由链接NUMA端口202-1的本地资源的硬件端口来交换数据通信,其中硬件端口定义在由主机104管理的多个资源当中共享的本地通信总线210。
在一些实施方式中,用于第一NUMA端口202-1的相应NUMA拓扑是部分地基于:i)在资源的相应配置中对于NUMA端口202-1是本地的相应第一存储器206-1;以及ii)在资源的相应配置中对于第二不同NUMA端口202-2是本地的,但是对于第一NUMA端口202-1是远程的相应第二不同存储器206-2。
图3示出了基于在系统100处执行以用于执行计算工作负载的计算逻辑302的示例任务规格300。如图3中所示,逻辑302能够包括分别包括指令(例如编程代码/指令)的多个计算块。能够使用控制器108的处理设备、主机104的处理设备和其他资源105或每个的组合在系统100处执行指令。
计算逻辑302可以是用于调度任务和分配资源以在系统100处执行ML工作负载的示例任务规格300的编程表示。在一些实施方式中,使用硬件加速器来执行ML工作负载,所述硬件加速器中的每一个被配置为实施包括多个神经网络层的神经网络。指令能够存储在系统100的一个或多个非暂时性机器可读存储介质中,并且可由系统100的一个或多个处理器执行以执行操作并执行工作负载的任务。
例如,能够执行操作以生成指令和协议位(例如针对任务规格),该指令和协议位被提供给特定主机104以执行ML工作负载的任务。在一些实施方式中,协议位由编码信号、二进制值的数据字或其他相关参数或数据值表示。编码信号和二进制值在主机104处接收和处理(或解译)以确定任务规格的任务的分配。一般来说,每个主机104被配置为运行或执行工作负载的一个或多个任务,包括可以分配给主机104的多个不同工作负载的任务。当由计算群集102接收请求112时,群集102的调度器106和控制器108相互作用以扫描请求112。
例如,控制器108可以扫描请求112以标识请求112中的参数(例如协议位),该参数指定工作负载中的各种任务的CPU、存储器和加速器需求(304)。基于请求112中的参数和值,控制器108可以确定示例工作负载包括16个任务,其中任务中的每个任务需要96个CPU和4个专用电路(例如硬件加速器)的总资源分配。例如,请求112能够包括指定将用于执行16个任务中的每个任务的大量硬件加速器(4)的标量资源参数。在一些实施方式中,标量资源参数可以包括指定将用于处理工作负载的硬件加速器的类型的子类型。例如,子类型可以指定4个硬件加速器中的每个硬件加速器是被配置为加速运行针对特征识别训练的模型的神经网处理器。
计算逻辑的封装字段指定用于执行16个任务中的每个任务的任务二进制(306)。例如,任务二进制能够为将在硬件加速器处执行或运行以执行用于执行16个任务中的特定任务的计算的特定类型的神经网络或推理模型。在一些情况下,任务二进制来源于指定将用于处理工作负载的任务的硬件加速器类型的标量资源子类型。
响应于标识请求112中的参数,控制器108可操作以基于请求112的参数并且基于主机104中的资源105(或资源组200)的硬件端口拓扑来确定用于将任务调度和分配给群集102中的主机104的分配方案。控制器108基于用于将任务调度和分配给主机104的分配方案来生成相应任务规格。例如,请求112中的参数中的每个参数和对应参数值能够表示用于调度器108的调度约束。在一些实施方式中,请求112可以将优先级分配给参数中的每个参数以进一步约束调度器108和控制器108。例如,分配给加速器子类型或CPU核心的优先级能够将控制器108约束为某些主机104,该主机104具有特定类型的硬件加速器或特定数量的可用CPU。
控制器108至少通过针对由主机104中的一个或多个主机管理的资源组中的每个资源组分析请求112的参数与硬件端口拓扑的细节来确定任务的分配并且生成任务规格,该主机104在控制器108下为“从设备”。例如,控制器108可操作以扫描主机104的每个资源组的硬件端口拓扑从而确定资源105的位置,确定资源或资源的类型是否满足请求112的约束,以及确定资源的可用性。在一些示例中,控制器108确定来自对于特定NUMA节点是本地的并且满足请求112的约束中的一个或多个约束的资源当中的资源的可用性。在一些实施方式中,用于每个主机104的硬件端口拓扑是基于主机104中的每个资源组200的相应存储器存取拓扑。
在NUMA系统中,存在由一组处理器和存储器组成的多个NUMA节点。如上文所指示,由相同NUMA节点202-1中的处理器204对存储器206-1的存取为本地的,而存取另一NUMA节点202-2中的存储器206-2的NUMA节点202-1中的处理器204为远程的。在一些实施方式中,远程存取能够采取相对于本地存取的多次循环,这是因为远程存取能够涉及多跳操作。由于该非对称存储器存取延迟,保持存储器存取为本地的或最大化存储器位置能够提高分布式处理的性能。在一些实施方式中,跨NUMA节点的CPU负载平衡结合利用NUMA位置能够转化为附加的性能提高。
主控制器108被配置为编码任务规格中的一个或多个约束(308)。例如,任务规格300能够包括来源于请求112中的参数和值的调度约束。例如,控制器108能够将请求112中的参数转化为任务约束,该任务约束指示主机104加载用于对位于特定云区内的主机执行任务计算的数据。例如,云区可以是包括某组硬件加速器资源的数据中心的特定物理或地理位置,需要该硬件加速器资源来执行用于工作负载的给定任务的数据计算。
计算群集102被配置为以利用跨计算群集102中的多个主机104的资源位置的方式来确定用于将任务调度和分配给主机104的特定资源组200的分配方案。图3中描绘的示例任务规格300提供表示计算群集102的简化任务规格,该计算群集102接收请求以执行16个任务。任务中的每个任务占用包括两个NUMA节点的主机104。在此示例中,任务中的每个任务需要96个CPU和4个专用电路(例如硬件加速器)的总资源分配。
该任务规格300包括定义特定主机104的资源分配的参数,诸如主机104如何分配来自特定NUMA节点的其CPU核心(310)。图3的示例示出了从每个NUMA节点分配以满足用于每个任务的96个CPU的总资源分配的48个处理器核心的均衡CPU分配。在其他示例中,控制器108可以生成指定不均衡分配的任务规格,诸如来自第一NUMA节点的36个CPU和来自第二NUMA节点的60个CPU。
图4示出了用于调度任务的示例过程400,该任务被执行以执行机器学习工作负载。过程400能够使用上述系统100来实施或执行。因此,过程400的描述可以参考系统100的上述计算资源以及本说明书中描述的其他组件。一般来说,过程400的描述中的计算步骤或过程流程能够被分组或布置以按不同顺序发生且不限于本文中所描述的数字序列。
现在参考过程400,系统100接收请求以使用其计算群集中的一个或多个计算群集来执行工作负载(402)。在一些实施方式中,过程400对应于用于调度任务和分配资源以使用硬件加速器和主机104的其他资源来执行工作负载的方法。在一些示例中,工作负载是与特定机器学习操作相关的训练或推理工作负载,诸如视频转码、图像处理、语音处理、自主车辆导航或图像识别。
请求112可以是为了执行ML工作负载,诸如检测图像中的物体或识别语音话语中的术语的推理工作负载。在此背景下,硬件加速器中的一个或多个硬件加速器可以被配置为实施包括多个神经网络层的神经网络,诸如卷积神经网络(CNN)或递归神经网络(RNN)。所接收的请求112可以包括指定应被用于执行工作负载的任务的特定类型的神经网络配置(例如CNN或RNN)的参数。
所接收的请求112还可以跟随第二请求112以例如使用主机104的资源组在群集102上部署特定神经网络。第二请求可以跟随指令或命令以使控制器108(或主机104)获得用于特定神经网络层的一组权重的参数。例如,该组权重可以基于指令中指定的位置地址从由主机104管理的存储器的存储器位置获得。在一些实施方式中,存储由主机104获得的权重的存储器是定义主机104处的资源组的NUMA节点的多个本地资源中的一个本地资源。类似地,指令可以使控制器108(或主机104)存取其他存储器位置以提取用于通过神经网络层处理的输入,从而使用主机104中的NUMA节点的本地资源105来生成用于神经网络层的输出。在一些实施方式中,通过神经网络层处理请求112中标识的输入的特定部分以生成层输出能够表示执行更大工作负载的一个或多个任务,该工作负载可以跨计算群集102的多个主机104或跨多个计算群集102处理。
系统100基于请求来确定资源需求(404)。资源需求能够指示相对于工作负载请求112的关于系统100的资源的某些细节,诸如执行表示ML工作负载的一套任务所需的计算资源的类型和数量。例如,资源需求能够指定某一处理器或处理器类型、处理能力或速度、存储器或存储器大小的数量、硬件加速器的数量或分布式系统处的资源的资源位置的度量。
系统100基于资源需求和每个主机的多个硬件加速器来确定被分配以执行ML工作负载的相应任务的主机104的数量(406)。针对所述数量的主机104中的每个主机104,系统100基于主机的存储器存取拓扑来生成相应任务规格(408)。主机的存储器存取拓扑能够基于主机104的每个资源组200的多个相应NUMA拓扑中的一个NUMA拓扑。在一些实施方式中,资源组200的特定NUMA拓扑特定于本地NUMA节点,并且包括对于组的其他资源是本地的相应存储器(M)。相应存储器(M)能够包括端口接口,该端口接口将存储器本地地耦接到至少一个硬件加速器和NUMA节点的一个或多个其他资源。
控制器108响应于扫描请求112的参数以及交叉参考一组主机104中的每个资源组200的相应硬件拓扑来生成任务规格,该一组主机104作为从设备资产被分配给控制器108。系统100将相应任务规格提供给主机(410)。例如,控制器108能够将多个相应任务规格提供给不同主机104,并且系统100通过执行每个主机的相应任务规格指定的任务来执行ML工作负载(412)。
图5示出了用于生成被提供给系统100的主机的任务规格的示例过程。类似于过程400,过程500能够使用系统100来实施或执行,并且过程500的描述可以参考系统100的资源,包括本说明书中描述的其他组件。一般来说,过程500的描述中的计算步骤或过程流程能够被分组或布置以按不同顺序发生并且不限于本文所述的数字序列。
现在参考过程500,系统100被配置为使用描述每个主机的NUMA端口的映射的系统文件来标识主机的资源的一个或多个端口(502)。例如,控制器108被配置为基于在主机104处的资源组的硬件拓扑来确定NUMA端口的映射。NUMA端口的映射用于指示由主机104管理的资源组中的每个资源组的NUMA拓扑。
控制器108使用主机的NUMA端口的映射中描述的资源的端口来构造主机104的控制组(504)。在一些实施方式中,控制器108将一个或多个协议位传递给主机104,并且主机的调度器使用(请求或任务规格的)协议位基于在主机104处的各种资源组当中的资源105的位置来构造控制组。例如,控制器108或主机104的调度器可操作以基于资源组中的每个资源组的NUMA拓扑和在主机104处的资源的类型来构造控制组,该资源满足所接收请求112中的约束中的一些(或全部)约束。
控制器108与主机104合作以将任务规格的ML任务绑定或分配给在主机104处构造的控制组。在一些实施方式中,由控制器108传递给主机104的协议位由主机104的调度器使用,以将任务规格的ML任务绑定或分配给在主机104处构造的控制组。协议位可以包括在任务规格中以指示任务规格的一个或多个约束或需求。协议位能够由一个或多个编码信号、二进制值的数据字或数据值的其他相关参数来表示。编码信号和二进制值能够由主机的调度器接收和处理或以其他方式解译以确定任务规格的任务的分配。在一些实施方式中,协议位可以与任务规格相关联但是与任务规格分开提供。
主机104可操作以至少基于用于控制组中的特定类型的加速器的端口接口(包括控制组中的资源可用性)来将任务规格的ML任务绑定到控制组(506)。主机104使用控制组中的存储器资源和硬件加速器将任务规格的ML任务作为控制组下的过程来执行(508)。在一些实施方式中,主机104能够使用控制组的一个或多个其他资源来执行ML任务,包括本地存储器。在某些情况下,可能会利用非本地存储器,但要与所需的计算机带宽或利用此类资源时可能产生的任何性能影响相平衡。
本说明书中描述的主题和功能操作的实施例能够在数字电子电路系统中、在有形地实施的计算机软件或固件中、在计算机硬件中实施,包括本说明书中公开的结构和其结构等效物,或其中一个或多个的组合。本说明书中描述的主题的实施例能够被实施为一个或多个计算机程序,即在有形的非暂时性程序载体上编码的计算机程序指令的一个或多个模块供数据处理装置执行或控制数据处理装置的操作。
备选地或另外的,程序指令能够在人工生成的传播信号(例如机器生成的电信号、光信息或电磁信号)上编码,该信号被生成以编码用于传输到合适的接收器装置以供数据处理装置执行的信息。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或其中一个或多个的组合。
本说明书中描述的过程和逻辑流程能够由执行一个或多个计算机程序的一个或多个可编程计算机执行以通过在输入数据上操作和生成输出来执行功能。过程和逻辑流程还能够由专用逻辑电路系统执行,并且装置还能够被实施为专用逻辑电路系统,例如FPGA(场可编程门阵列)、ASIC(专用集成电路)或GPGPU(通用图形处理单元)。
适用于执行计算机程序的计算机包括例如能够基于通用微处理器或专用微处理器或这两者,或任何其他种类的中央处理单元。一般来说,中央处理单元将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件为用于进行或执行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。一般来说,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如磁盘、磁光盘或光盘),或可操作地耦接以从该设备接收数据或将数据传送到该设备。然而,计算机不需要具有此类设备。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,通过示例包括半导体存储器设备,例如EPROM、EEPROM和闪存存储器设备;磁盘,例如内置硬盘或可移动磁盘。处理器和存储器能够由专用逻辑电路系统实施或并入专用逻辑电路系统中。
尽管本说明书含有许多具体实施细节,但这些不应被解释为对任何本发明的范围或可主张内容的限制,而是实际上解释为可能特定于特定发明的特定实施例的特征的描述。在单独实施例的背景下在本说明书中描述的某些特征还能够在单个实施例的组合中实施。相反,在单个实施例的背景下描述的各种特征还能够单独地在多个实施例中或在任何合适的子组合中实施。此外,尽管特征可以在上文中描述为在某些组合中起作用并且甚至最初是这样主张的,但来自所主张组合的一个或多个特征能够在一些情况下从组合删除,并且所主张组合可以导向子组合或子组合的变化。
类似地,当在附图中以特定顺序描绘操作时,这不应理解为需要以所示特定顺序或连续顺序执行此类操作,或执行所有说明操作或实现期望结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应理解为在所有实施例中需要此分离,并且应理解所述程序组件和系统能够通常一起整合在单个软件产品中或封装在多个软件产品中。
已描述主题的特定实施例。其他实施例在随附权利要求书的范围内。例如,权利要求书中叙述的动作能够以不同顺序执行并且仍实现期望结果。作为一个示例,附图中描绘的过程不必需要所示特定顺序或连续顺序或实现期望结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

Claims (20)

1.一种用于调度任务和分配资源以使用硬件加速器来执行机器学习工作负载的方法,所述硬件加速器中的每一个被配置为实施包括多个神经网络层的神经网络,所述方法包括:
接收请求以执行所述机器学习ML工作负载;
基于所述请求来确定资源需求以在包括多个主机的分布式处理系统处执行所述ML工作负载,所述多个主机中的每个主机包括相应多个硬件加速器;
基于所述资源需求和每个主机的所述相应多个硬件加速器来确定分别被分配来执行形成所述ML工作负载的一组任务中的相应任务的主机的数量;
针对所述数量的主机中的每个主机:
基于所述主机的存储器存取拓扑来生成相应任务规格,所述任务规格指定被分配以在所述主机处使用所述主机的资源执行的任务,所述主机的资源包括所述相应多个硬件加速器;以及
将所述相应任务规格提供给所述数量的主机中的所述主机;以及
通过由所述数量的主机中的每个主机执行针对所述主机在所述相应任务规格中指定的所述任务来执行所述ML工作负载。
2.根据权利要求1所述的方法,其中:
每个主机的所述存储器存取拓扑包括相应的非一致存储器存取NUMA拓扑,所述非一致存储器存取拓扑包括对于所述主机是本地的相应存储器;以及
所述相应存储器包括端口接口,所述端口接口将所述相应存储器耦接到所述相应多个硬件加速器中的每个硬件加速器以及所述主机的一个或多个其他资源。
3.根据权利要求2所述的方法,其中,执行所述相应任务规格中指定的所述任务包括:
执行多个神经网络计算,以响应于将所述多个神经网络计算的相应部分分配给所述相应多个硬件加速器中的每个硬件加速器来生成用于所述多个神经网络层中的每个神经网络层的输出。
4.根据权利要求2所述的方法,其中,执行所述ML工作负载包括:
使用所述主机的控制组的每个资源并且基于包括在所述主机的所述资源当中的所述相应存储器、所述硬件加速器和相应处理器之间交换的数据来处理用于所述相应任务规格的指令。
5.根据权利要求4所述的方法,其中,执行所述ML工作负载包括:
响应于基于经由硬件端口交换的所述数据处理所述指令来执行所述相应任务规格中指定的任务,所述硬件端口链接所述主机的所述控制组的每个资源,其中,所述硬件端口定义在由所述主机管理的多个资源当中共享的本地通信总线。
6.根据权利要求4所述的方法,其中,用于第一主机的相应NUMA拓扑是部分地基于:
i)在资源的相应配置中对于所述第一主机是本地的相应第一存储器;以及
ii)在资源的相应配置中对于第二不同主机是本地的,但是对于所述第一主机是远程的相应第二不同存储器。
7.根据权利要求2所述的方法,其中,确定所述主机的数量包括:
获得描述由所述多个主机中的每个主机管理的资源的配置的系统文件;以及
针对所述多个主机中的每个主机基于所述系统文件中描述的所述资源的配置来确定所述主机数量。
8.根据权利要求1所述的方法,包括:
基于针对所述多个主机中的每个主机来描述NUMA端口的映射的系统文件来标识耦接所述主机的资源的一个或多个端口;以及
基于耦接所述主机的所述资源的所述一个或多个端口来形成所述主机的控制组。
9.根据权利要求8所述的方法,包括:
基于用于所述控制组中的加速器的一个或多个端口接口来将所述任务规格的ML任务分配给所述主机的所述控制组,其中,所述端口接口被包括在所述系统文件中所描述的NUMA端口的所述映射中;以及
使用所述控制组中的所述加速器将所述ML任务作为所述控制组下的过程来执行。
10.一种被配置为调度任务和分配资源以用于使用硬件加速器来执行机器学习工作负载的系统,所述硬件加速器中的每一个被配置为实施包括多个神经网络层的神经网络,所述系统包括:
一个或多个处理设备;以及
存储指令的一个或多个非暂时性机器可读存储设备,所述指令可由所述一个或多个处理设备执行以使得执行以下操作,包括:
接收请求以执行所述机器学习ML工作负载;
基于所述请求来确定资源需求以在包括多个主机的分布式处理系统处执行所述ML工作负载,所述多个主机中的每个主机包括相应多个硬件加速器;
基于所述资源需求和每个主机的所述相应多个硬件加速器来确定分别被分配来执行形成所述ML工作负载的一组任务中的相应任务的主机的数量;
针对所述数量的主机中的每个主机:
基于所述主机的存储器存取拓扑来生成相应任务规格,所述相应任务规格指定被分配以在所述主机处使用所述主机的资源执行的任务,所述主机的资源包括所述相应多个硬件加速器;以及
将所述相应任务规格提供给所述数量的主机中的所述主机;以及
通过由所述数量的主机中的每个主机执行针对所述主机在所述相应任务规格中指定的所述任务来执行所述ML工作负载。
11.根据权利要求10所述的系统,其中:
每个主机的所述存储器存取拓扑包括相应非一致存储器存取NUMA拓扑,所述非一致存储器存取拓扑包括对于所述主机是本地的相应存储器;以及
所述相应存储器包括端口接口,所述端口接口将所述相应存储器耦接到所述相应多个硬件加速器中的每个硬件加速器以及所述主机的一个或多个其他资源。
12.根据权利要求11所述的系统,其中,执行所述相应任务规格中指定的所述任务包括:
执行多个神经网络计算,以响应于将所述多个神经网络计算的相应部分分配给所述相应多个硬件加速器中的每个硬件加速器来生成用于所述多个神经网络层中的每个神经网络层的输出。
13.根据权利要求11所述的系统,其中,执行所述ML工作负载包括:
使用所述主机的每个资源并且基于包括在所述主机的所述资源当中的所述相应存储器、所述硬件加速器和相应处理器之间交换的数据来处理用于所述相应任务规格的指令。
14.根据权利要求13所述的系统,其中,执行所述ML工作负载包括:
响应于基于经由硬件端口交换的所述数据处理所述指令来执行所述相应任务规格中指定的任务,所述硬件端口链接所述主机的每个资源,其中,所述硬件端口定义在由所述主机管理的多个资源当中共享的本地通信总线。
15.根据权利要求13所述的系统,其中,用于第一主机的相应NUMA拓扑是部分地基于:
i)在资源的相应配置中对于所述第一主机是本地的相应第一存储器;以及
ii)在资源的相应配置中对于第二不同主机是本地的,但是对于所述第一主机是远程的相应第二不同存储器。
16.根据权利要求11所述的系统,其中,确定所述主机数量包括:
获得描述由所述多个主机中的每个主机管理的资源的配置的系统文件;以及
针对所述多个主机中的每个主机基于所述系统文件中描述的所述资源的配置来确定所述主机数量。
17.根据权利要求10所述的系统,其中,所述操作包括:
基于针对所述多个主机中的每个主机来描述NUMA端口的映射的系统文件来标识耦接所述主机的资源的一个或多个端口;以及
基于耦接所述主机的所述资源的所述一个或多个端口来形成所述主机的控制组。
18.根据权利要求17所述的系统,包括:
基于用于所述控制组中的加速器的一个或多个端口接口来将所述任务规格的ML任务分配给所述主机的所述控制组,其中,所述端口接口被包括在所述系统文件所描述的NUMA端口的所述映射中;以及
使用所述控制组中的所述加速器将所述ML任务作为所述控制组下的过程来执行。
19.一种用于调度任务和分配资源以使用硬件加速器来执行机器学习工作负载的存储指令的非暂时性机器可读存储介质,所述硬件加速器中的每一个被配置为实施包括多个神经网络层的神经网络,所述指令可由一个或多个处理器执行以使得执行以下操作,包括:
接收请求以执行所述机器学习ML工作负载;
基于所述请求来确定资源需求以在包括多个主机的分布式处理系统处执行所述ML工作负载,所述多个主机中的每个主机包括相应多个硬件加速器;
基于所述资源需求和每个主机的所述相应多个硬件加速器来确定分别被分配来执行形成所述ML工作负载的一组任务中的相应任务的主机的数量;
针对所述数量的主机中的每个主机:
基于所述主机的存储器存取拓扑来生成相应任务规格,所述相应任务规格指定被分配以在所述主机处使用所述主机的资源执行的任务,所述主机的资源包括所述相应多个硬件加速器;以及
将所述相应任务规格提供给所述数量的主机中的所述主机;以及
通过由所述数量的主机中的每个主机执行针对所述主机在所述相应任务规格中指定的所述任务来执行所述ML工作负载。
20.根据权利要求19所述的机器可读存储介质,其中:
每个主机的所述存储器存取拓扑包括相应的非一致存储器存取NUMA拓扑,所述非一致存储器存取拓扑包括对于所述主机是本地的相应存储器;以及
所述相应存储器包括端口接口,所述端口接口将所述相应存储器耦接到所述相应多个硬件加速器中的每个硬件加速器以及所述主机的一个或多个其他资源。
CN202080061569.2A 2019-11-20 2020-09-08 用于机器学习工作负载的任务调度 Pending CN114503077A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962938304P 2019-11-20 2019-11-20
US62/938,304 2019-11-20
US16/720,717 US11544113B2 (en) 2019-11-20 2019-12-19 Task scheduling for machine-learning workloads
US16/720,717 2019-12-19
PCT/US2020/049648 WO2021101617A1 (en) 2019-11-20 2020-09-08 Task scheduling for machine-learning workloads

Publications (1)

Publication Number Publication Date
CN114503077A true CN114503077A (zh) 2022-05-13

Family

ID=75910002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080061569.2A Pending CN114503077A (zh) 2019-11-20 2020-09-08 用于机器学习工作负载的任务调度

Country Status (6)

Country Link
US (2) US11544113B2 (zh)
EP (1) EP4062281A1 (zh)
JP (2) JP7379668B2 (zh)
KR (1) KR20220038497A (zh)
CN (1) CN114503077A (zh)
WO (1) WO2021101617A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544113B2 (en) * 2019-11-20 2023-01-03 Google Llc Task scheduling for machine-learning workloads
JP7459287B2 (ja) * 2020-03-23 2024-04-01 メンティアム テクノロジーズ インコーポレイテッド ニューラルネットワーク高速化のためのデジタル-imcハイブリッドシステムアーキテクチャ
US11847489B2 (en) * 2021-01-26 2023-12-19 Apple Inc. United states graphics processor techniques with split between workload distribution control data on shared control bus and corresponding graphics data on memory interfaces
US11436054B1 (en) * 2021-04-05 2022-09-06 Hewlett Packard Enterprise Development Lp Directing queries to nodes of a cluster of a container orchestration platform distributed across a host system and a hardware accelerator of the host system

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003202356A1 (en) 2002-02-07 2003-09-02 Thinkdynamics Inc. Method and system for managing resources in a data center
US20130185729A1 (en) 2012-01-13 2013-07-18 Rutgers, The State University Of New Jersey Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures
JP2015132887A (ja) 2014-01-09 2015-07-23 富士通株式会社 要求分散プログラム、要求分散方法および情報処理装置
US9697045B2 (en) 2015-03-24 2017-07-04 International Business Machines Corporation Selecting resource allocation policies and resolving resource conflicts
US10241674B2 (en) 2015-12-11 2019-03-26 Vmware, Inc. Workload aware NUMA scheduling
US10346950B2 (en) 2016-10-05 2019-07-09 Hidden Path Entertainment, Inc. System and method of capturing and rendering a stereoscopic panorama using a depth buffer
US10176550B1 (en) 2017-03-20 2019-01-08 Nutanix, Inc. GPU resource usage display and dynamic GPU resource allocation in a networked virtualization system
US11010205B2 (en) 2017-05-30 2021-05-18 Hewlett Packard Enterprise Development Lp Virtual network function resource allocation
US11222256B2 (en) 2017-10-17 2022-01-11 Xilinx, Inc. Neural network processing system having multiple processors and a neural network accelerator
US10445249B2 (en) * 2017-11-09 2019-10-15 International Business Machines Corporation Facilitating access to memory locality domain information
US10713092B2 (en) 2018-01-02 2020-07-14 Jpmorgan Chase Bank, N.A. Dynamic resource management of a pool of resources for multi-tenant applications based on sample exceution, query type or jobs
US10942767B2 (en) 2018-02-27 2021-03-09 Microsoft Technology Licensing, Llc Deep neural network workload scheduling
US10728091B2 (en) * 2018-04-04 2020-07-28 EMC IP Holding Company LLC Topology-aware provisioning of hardware accelerator resources in a distributed environment
US11315013B2 (en) 2018-04-23 2022-04-26 EMC IP Holding Company LLC Implementing parameter server in networking infrastructure for high-performance computing
US10601903B2 (en) * 2018-05-17 2020-03-24 International Business Machines Corporation Optimizing dynamical resource allocations based on locality of resources in disaggregated data centers
US11030012B2 (en) 2018-09-28 2021-06-08 Intel Corporation Methods and apparatus for allocating a workload to an accelerator using machine learning
US11216314B2 (en) * 2018-11-02 2022-01-04 EMC IP Holding Company LLC Dynamic reallocation of resources in accelerator-as-a-service computing environment
US20200294182A1 (en) * 2019-03-15 2020-09-17 Intel Corporation On chip dense memory for temporal buffering
US11388054B2 (en) * 2019-04-30 2022-07-12 Intel Corporation Modular I/O configurations for edge computing using disaggregated chiplets
US11521042B2 (en) 2019-05-21 2022-12-06 Anil Ravindranath System and method to dynamically and automatically sharing resources of coprocessor AI accelerators
US11301307B2 (en) * 2019-07-24 2022-04-12 Red Hat, Inc. Predictive analysis for migration schedulers
US20210097428A1 (en) * 2019-09-30 2021-04-01 International Business Machines Corporation Scalable and dynamic transfer learning mechanism
US11726793B2 (en) * 2019-11-15 2023-08-15 Intel Corporation Data locality enhancement for graphics processing units
US20210149677A1 (en) * 2019-11-15 2021-05-20 Intel Corporation Enhanced processor functions for calculation
US11544113B2 (en) * 2019-11-20 2023-01-03 Google Llc Task scheduling for machine-learning workloads
US11586932B2 (en) * 2020-03-10 2023-02-21 International Business Machines Corporation Model training with variable batch sizing and gradient checkpoint segments
US11526964B2 (en) * 2020-06-10 2022-12-13 Intel Corporation Deep learning based selection of samples for adaptive supersampling
US20220114401A1 (en) * 2020-10-12 2022-04-14 International Business Machines Corporation Predicting performance of machine learning models
WO2022118322A1 (en) * 2020-12-02 2022-06-09 Unifabrix Ltd. System and method for multimodal computer address space provisioning
US20220188691A1 (en) * 2020-12-11 2022-06-16 International Business Machines Corporation Machine Learning Pipeline Generation
US20220114251A1 (en) * 2021-11-16 2022-04-14 Francesc Guim Bernat Reputation management and intent-based security mechanisms
US20230195519A1 (en) * 2021-12-22 2023-06-22 Intel Corporation Low power inference engine pipeline in a graphics processing unit
US20230137191A1 (en) * 2022-11-12 2023-05-04 Adrian C. Hoban Mechanism to recompose workload packages in a computing environment

Also Published As

Publication number Publication date
JP7379668B2 (ja) 2023-11-14
US20230136661A1 (en) 2023-05-04
US11544113B2 (en) 2023-01-03
EP4062281A1 (en) 2022-09-28
US20210149729A1 (en) 2021-05-20
WO2021101617A1 (en) 2021-05-27
JP2023511467A (ja) 2023-03-20
KR20220038497A (ko) 2022-03-28
JP2024020271A (ja) 2024-02-14

Similar Documents

Publication Publication Date Title
JP7379668B2 (ja) 機械学習ワークロードのためのタスクスケジューリング
CN111247533B (zh) 用于神经网络加速的机器学习运行时库
CN115269717B (zh) 存储设备、分布式存储系统以及数据处理方法
US10891156B1 (en) Intelligent data coordination for accelerated computing in cloud environment
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
US8671418B2 (en) Environment modification in a hybrid node computing environment
US20180165579A1 (en) Deep Learning Application Distribution
CN110619595A (zh) 一种基于多fpga加速器互联的图计算优化方法
CN102929725B (zh) 信号处理并行计算软件的动态重配置方法
US10936377B2 (en) Distributed database system and resource management method for distributed database system
EP3779778A1 (en) Methods and apparatus to enable dynamic processing of a predefined workload
CN118119933A (zh) 用于触发协作进程的提前终止的机制
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
CN113010301B (zh) 用户定义的测定的优先级队列
US12026118B2 (en) Asymmetric data communication for host-device interface
CN116166396A (zh) 调度模型的训练方法、装置、电子设备及可读存储介质
US11341025B2 (en) Dynamic tuning of computing devices using application log data
US20230124193A1 (en) Distributed Processing Node and Distributed Processing System
US20200143244A1 (en) Method of managing task in artificial neural network and system including the artificial neural network system using the method
US20240111578A1 (en) Hierarchical work scheduling
WO2023086204A1 (en) Reducing latency in highly scalable hpc applications via accelerator-resident runtime management
KR20230064963A (ko) 클러스터 컴퓨팅 시스템에서의 리소스 할당 방법 및 장치

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40071346

Country of ref document: HK