CN113452546A - 深度学习训练通信的动态服务质量管理 - Google Patents
深度学习训练通信的动态服务质量管理 Download PDFInfo
- Publication number
- CN113452546A CN113452546A CN202110303473.9A CN202110303473A CN113452546A CN 113452546 A CN113452546 A CN 113452546A CN 202110303473 A CN202110303473 A CN 202110303473A CN 113452546 A CN113452546 A CN 113452546A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- data
- priority
- data requests
- host computer
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 90
- 238000013135 deep learning Methods 0.000 title abstract description 3
- 238000012549 training Methods 0.000 title abstract description 3
- 238000010801 machine learning Methods 0.000 claims abstract description 182
- 230000015654 memory Effects 0.000 claims abstract description 166
- 230000001419 dependent effect Effects 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims description 57
- 238000010586 diagram Methods 0.000 description 20
- 230000001934 delay Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000001152 differential interference contrast microscopy Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及深度学习训练通信的动态服务质量管理。处理器分析机器学习工作负荷。基于相关联的数据依赖延迟性能影响,将相应的优先等级分配给机器学习工作负荷中的所识别的数据请求。当向存储器控制器提供数据请求时,指示所分配的相应的优先等级。存储器控制器基于指示的相应的优先等级将接收的数据请求分类到多个不同的优先级队列中。存储器控制器按照基于不同的优先级队列的不同服务质量的顺序从不同的优先级队列向存储器发起数据请求。
Description
发明背景
分布式计算系统由多个主计算机系统组成。多个主计算机系统通过实现相应的机器学习模型一起工作来解决问题。执行相应的机器学习模型是存储器密集型的。当与主计算机系统相关联的存储器带宽分配不当时,就会出现延迟。
附图简述
在以下详细描述和附图中公开了本发明的各种实施例。
图1是示出根据一些实施例的分布式计算系统的框图。
图2是示出数据依赖图的示例的图示。
图3是示出根据一些实施例的优先级队列的图示。
图4是示出根据一些实施例的机器学习模型的框图。
图5是示出根据一些实施例的用于执行机器学习工作负荷(workload)的过程的流程图。
图6是示出根据一些实施例的用于执行机器学习工作负荷的过程的流程图。
图7是示出根据一些实施例的为数据请求分配优先等级的过程的流程图。
图8是示出根据一些实施例的用于确定机器学习工作负荷中的数据依赖延迟影响的过程的流程图。
图9是示出根据一些实施例的用于更新机器学习模型的过程的流程图。
图10是示出根据一些实施例的用于选择请求的过程的流程图。
详细描述
本发明可以以多种方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,例如被配置为执行存储在耦合到处理器的存储器上和/或由该存储器提供的指令的处理器。在本说明书中,这些实现或者本发明可以采取的任何其他形式可以被称为技术。通常,在本发明的范围内,可以改变所公开的过程的步骤顺序。除非另有说明,否则被描述为被配置为执行任务的诸如处理器或存储器的组件可以被实现为在给定时间被临时配置为执行任务的通用组件或者被制造为执行任务的特定组件。如本文所使用的,术语“处理器”指的是被配置成处理数据(例如计算机程序指令)的一个或更多个设备、电路和/或处理核心。
下面连同说明本发明原理的附图一起提供了本发明的一个或更多个实施例的详细描述。结合这些实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定,并且本发明包括许多替代、修改和等同物。为了提供对本发明的全面理解,在以下描述中阐述了许多具体细节。这些细节是出于示例的目的而提供的,并且本发明可以根据权利要求来被实施,而不需要这些具体细节中的一些或全部。为了清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以便本发明不被不必要地模糊。
分布式计算系统可以由多个主计算机系统组成。每个主计算机系统可以具有相应的处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)、加速器、专用集成电路(ASIC)设备等)、相应的存储器控制器和相应的存储器。每个主计算机系统可以耦合到相应的网络接口控制器(NIC)。在一些实施例中,NIC集成到主计算机系统内(例如扩展卡、可移除设备、集成在主板上等)。在一些实施例中,NIC经由计算机总线(例如PCI、PCI-e、ISA等)连接到主计算机系统。NIC被配置为提供到与它相关联的主计算机系统的网络接入(例如以太网、Wi-Fi、光纤、FDDI、LAN、WAN、SAN等)。
多个主计算机系统中的每一个可以被配置成实现相应的机器学习模型以输出相应的预测。由分布式计算系统实现的机器学习模型的例子包括但不限于神经网络模型、深度学习模型等。机器学习模型可以由多个层组成。每一层可以与相应的权重相关联。输入数据可以应用于机器学习模型的初始层。初始层的输出可以被提供作为机器学习模型的下一层的输入。向前传递可以继续,直到机器学习模型的最后一层接收到来自机器学习模型的倒数第二层的输出作为输入。机器学习模型的最后一层可以输出预测。
分布式计算系统的每个主计算机系统可以被配置成实现不同版本的机器学习模型。例如,与机器学习模型的每一层相关联的权重可以不同。第一机器学习模型可以具有与第一层相关联的第一权重,第二机器学习模型可以具有与第一层相关联的第二权重,……,以及第n机器学习模型可以具有与第一层相关联的第n权重。第一机器学习模型可以具有与第二层相关联的第一权重,第二机器学习模型可以具有与第二层相关联的第二权重,……,以及第n机器学习模型可以具有与第二层相关联的第n权重。第一机器学习模型可以具有与第n层相关联的第一权重,第二机器学习模型可以具有与第n层相关联的第二权重,……,以及第n机器学习模型可以具有与第n层相关联的第n权重。
分布式计算系统可以将与嵌入表格相关联的数据应用于主计算机系统的每个相应的机器学习模型。在单个主计算机系统中存储与嵌入表格相关联的数据可能使单个主计算机系统的资源负担过重。例如,存储与嵌入表格相关联的数据可能使用单个主计算机系统的可用存储器的一大部分。这可能降低单个主计算机系统的系统性能,因为可以用于其他目的的存储器的该大部分被保留用于存储嵌入表格。为了减少在单个主计算机系统上的负担,与嵌入表格相关联的数据分布在多个主计算机系统中,使得每个主计算机系统存储分布式表格的相应部分。
第一主计算机系统可以从分布式计算系统的其他主计算机系统中的每个请求数据,并且接收所请求的数据以执行向前传递。例如,第一主计算机系统可以请求由分布式计算系统的第二主计算机系统存储的分布式表格部分的一些或全部。该请求可以在第二主计算机系统的NIC处被接收。该请求可以从第二主计算机系统的NIC提供到第二主计算机系统的处理器。响应于该请求,第二主计算机系统的处理器可以执行查找,并且从第二主计算机系统的存储器检索所请求的数据,并且经由第二主计算机系统的NIC将所请求的数据提供到第一主计算机系统。第二主计算机的存储器控制器可以保留存储器带宽来执行查找。从第二主机系统的处理器接收数据请求的时间到第二主机系统的处理器能够执行存储器查找的时间可能有延迟,因为存储器控制器可能不能保留存储器带宽来执行存储器查找。
在所请求的数据从其他主计算机系统中的每个被接收到之后,第一主计算机系统可以将接收到的数据与和它的分布式表格部分相关联的数据组合以为第一主计算机系统的机器学习模型生成输入数据集。从第二主机系统的处理器接收所请求的数据的时间到第二主机系统的处理器能够将所接收的数据与其分布式表格部分相关联的数据进行组合的时间可能存在延迟,因为存储器控制器可能无法保留存储器带宽来执行组合以生成输入数据集。输入数据集可以应用于与第一主计算机系统相关联的机器学习模型。与第一主计算机系统相关联的机器学习模型可以输出预测。第一主计算机系统可以基于它的预测来接收反馈。例如,第一主计算机系统可以预测与社交媒体平台相关联的用户对特定产品感兴趣,以及第一主计算机系统可以从用户(直接或间接)接收指示用户是否对特定产品感兴趣的反馈。
第一主计算机系统可以使用该反馈来更新它的相应机器学习模型。例如,第一主计算机系统可以使用反馈来更新与机器学习模型的多个层中的每一个相关联的权重。第一主计算机系统也可以使用反馈来更新它的相应分布式表格部分。例如,分布式表格的条目可以表示用户的兴趣。可以基于反馈来调整条目的元素值以提供对用户兴趣的更准确的表示。
当第一主计算机系统正在执行向前传递以输出预测时,分布式系统的其他主计算机系统也可以并行地执行相应的向前传递以输出相应的预测。其他主计算机系统也可以基于它们的相应预测来接收相应的反馈,并使用相应的反馈来更新它们的相应模型和相应分布式表格部分。
更新主计算机系统的相应机器学习模型可以包括主计算机系统执行权重梯度通信并共享与每个机器学习模型层相关联的相应权重以确定每个机器学习模型层的共同权重。例如,第一主计算机系统可以向其他主计算机系统提供与机器学习模型的最后一层相关联的已更新权重。其他主计算机系统可以向第一主计算机系统提供与机器学习模型的最后一层相关联的相应已更新权重。主计算机系统,即第一主计算机系统和其他主计算机系统,可以为机器学习模型的最后一层确定共同权重。每当机器学习模型的一层被更新时,主计算机系统可以执行该过程。主计算机系统可以共同确定分布式表格的已更新值。例如,分布式表格可以是表示实体的嵌入表格。嵌入的元素可以被更新以更准确地表示实体。已更新值可以经由与主计算机系统相关联的NIC提供到与主计算机系统相关联的处理器。响应于接收到已更新值,与主计算机系统相关联的处理器可以查找存储在存储器中的分布式表格部分,从存储器检索分布式表格部分,并用已更新值更新检索到的分布式表格部分。
在上述过程中的一个限制因素是每个处理器具有有限数量的核心。一些核心可用于计算操作,一些核心可用于通信操作。在机器学习工作负荷期间,即,执行与机器学习模型相关联的向前传递和反向传播期间,计算核心(用于计算操作的核心)和通信核心(用于通信操作的核心)可能竞争存储器带宽。
其他系统可以为计算操作提供第一固定量的存储器带宽,为通信操作提供第二固定量的存储器带宽。然而,仅仅为计算操作提供固定量的存储器带宽和为通信操作提供固定量的存储器带宽可能会导致机器学习工作负荷的性能问题。在机器学习工作负荷的某些部分中,存储器带宽的量可能被过度供应或供应不足。例如,为计算操作提供的固定量的存储器带宽可能小于处理一个或更多个计算操作所需的存储器带宽的量,这导致机器学习工作负荷中的延迟。为计算操作提供的固定量的存储器带宽可能大于处理一个或更多个计算操作所需的存储器带宽的量,这在为通信操作提供的存储器带宽的量小于处理一个或更多个通信操作所需的存储器带宽的量时,可能导致机器学习工作负荷中的延迟。为通信操作提供的固定量的存储器带宽可能小于处理一个或更多个通信操作所需的存储器带宽的量,这导致机器学习工作负荷中的延迟。为通信操作提供的固定量的存储器带宽可能大于处理一个或更多个通信操作所需的存储器带宽的量,这在为计算操作提供的存储器带宽的量小于处理一个或更多个计算操作所需的存储器带宽的量时,可能导致机器学习工作负荷中的延迟。
通过为数据请求(例如,通信操作、计算操作)分配优先等级并将数据请求分配给对应于所分配的优先等级的优先级队列,可以减少执行机器学习工作负荷中的延迟。主计算机系统的存储器可以与具有相应的优先等级的多个优先级队列相关联。每个优先级队列都有一个相应的服务质量(QoS),该服务质量决定了完成数据请求的频率。例如,当存储器带宽可用时,处于具有高优先等级的优先级队列中的数据请求可以立即得到完成。在已经完成第一阈值数量的其他数据请求之后,可以完成处于具有中优先等级的优先级队列中的数据请求。在已经完成第二阈值数量的其他数据请求之后,可以完成处于具有低优先等级的优先级队列中的数据请求。
可以分析机器学习工作负荷,以确定机器学习工作负荷是否由一个或更多个计算繁重部分和/或一个或更多个通信繁重部分组成。在机器学习工作负荷部分期间,如果执行的计算操作多于通信操作,则机器学习工作负荷部分是计算繁重部分。在机器学习工作负荷部分期间,如果执行的通信操作比计算操作多,则机器学习工作负荷部分是通信繁重部分。
可以基于机器学习工作负荷是在机器学习工作负荷的计算繁重部分还是在机器学习工作负荷的通信繁重部分,将计算操作或通信操作分配给优先级队列。例如,当机器学习工作负荷处于计算繁重部分时,计算请求可以被分配给具有高优先等级的优先级队列,而通信请求可以被分配给具有中或低优先等级的优先级队列。当机器学习工作负荷处于通信繁重部分时,通信请求可以被分配给具有高优先等级的优先级队列,而计算请求可以被分配给具有中或低优先等级的优先级队列。
机器学习工作负荷内的数据请求可以被识别为依赖于机器学习工作负荷的其他数据请求。可以生成数据依赖图来确定数据请求之间的依赖和数据依赖延迟影响。诸如计算操作的数据请求可能依赖于多个通信和/或计算操作。在工作负荷的计算繁重部分期间,存储器控制器可以接收计算操作,但是确定与多个依赖的通信和/或计算操作相关联的一些数据尚未被确定或接收。代替将对应于计算操作的数据请求放置在具有高等级优先级的优先级队列中,可以基于预期延迟(例如,确定或接收与多个依赖的通信和/或计算操作相关联的数据所需的时间量),将对应于计算操作的数据请求放置在具有中等级优先级的优先级队列或具有低等级优先级的优先级队列中。在与多个依赖的通信和/或计算操作相关联的数据预计在计算操作处于具有中等级优先级的优先级队列的前面时被确定或接收的情况下,对应于计算操作的数据请求可以被放置在具有中等级优先级的优先级队列中。在与多个依赖的通信和/或计算操作相关联的数据预计在计算操作处于具有低等级优先级的优先级队列的前面时被确定或接收的情况下,对应于计算操作的数据请求可以被放置在具有低等级优先级的优先级队列中。
当机器学习工作负荷正在执行时,主计算机系统的处理器可以将数据请求分配给具有相应的优先等级的优先级队列。主计算机系统的存储器控制器可以分析多个优先级队列,并基于与多个优先级队列相关联的相应QoS来选择要完成哪个数据请求。这减少了在执行机器学习工作负荷时对存储器带宽的竞争和延迟,因为存储器带宽在它们被需要时可用于计算操作和/或通信操作。
图1是示出根据一些实施例的分布式计算系统的框图。在所示的例子中,分布式计算系统100由主计算机系统101、主计算机系统111和主计算机系统121组成。尽管描绘了三个主计算机系统,但是分布式计算系统100可以由n个主计算机系统组成。主计算机系统101、111、121经由网络110连接到彼此。网络110可以是LAN、WAN、内联网、互联网和/或其组合。连接109、119、129可以是有线连接或无线连接。
主计算机系统101由存储器102、存储器控制器105和处理器103组成。主计算机系统101耦合到NIC 104。主计算机系统111由存储器112、存储器控制器115和处理器113组成。主计算机111耦合到NIC 114。主计算机系统121由存储器122、存储器控制器125和处理器123组成。主计算机系统121耦合到NIC 124。在一些实施例中,NIC 104、114、124分别集成到主计算机系统101、111、121中(例如,扩展卡、可移除设备、集成在主板上等)。在一些实施例中,NIC 104、114、124分别经由计算机总线(例如PCI、PCI-e、ISA等)连接到主计算机系统101、111、121。NIC 104、114、124被配置为提供到与它相关联的主计算机系统的网络接入(例如以太网、Wi-Fi、光纤、FDDI、LAN、WAN、SAN等)。
表格(例如嵌入表格)由多个条目组成。每个条目可以与多个元素相关联。例如,表格可以由数百万个条目组成,其中每个条目由64个元素组成。不是将该表格存储在单个主计算机系统的存储器中,而是该表格可以分布在分布式计算系统100中。例如,存储器102可以存储第一分布式表格部分,存储器112可以存储第二分布式表格部分,……,以及存储器122可以存储第n分布式表格部分。这减少了分布式计算系统100对用于执行预测的单个计算节点及其相应存储器的依赖性。存储器102、112、122可以存储与不同分布式表格相关联的多个分布式表格部分。例如,存储器102可以存储与用户相关联的第一分布式表格部分和与项目(例如电影、产品、服务、商品等)相关联的第一分布式表格部分。存储器112可以存储与用户相关联的第二分布式表格部分和与项目相关联的第二分布式表格部分。存储器122可以存储与用户相关联的第n分布式表格部分和与项目相关联的第n分布式表格部分。
处理器103、113、123可以是CPU、GPU、加速器、专用集成电路(ASIC)设备、任何其他类型的处理单元或其组合。处理器103、113、123可以被配置成执行相应的机器学习工作负荷(例如,实现机器学习模型)。由分布式计算系统100实现的机器学习模型的例子包括但不限于神经网络模型、深度学习模型等。机器学习模型可以由多个层组成。每一层可以与相应的权重相关联。
由每个处理器103、113、123实现的机器学习模型可以不同。例如,基于机器学习模型在上面被执行的处理器,与机器学习模型的每一层相关联的权重可以不同。由处理器103执行的机器学习模型可以具有与第一层相关联的第一权重,由处理器113执行的机器学习模型可以具有与第一层相关联的第二权重,……,以及由处理器123执行的机器学习模型可以具有与第一层相关联的第n权重。由处理器103执行的机器学习模型可以具有与第二层相关联的第一权重,由处理器113执行的机器学习模型可以具有与第二层相关联的第二权重,……,以及由处理器123执行的机器学习模型可以具有与第二层相关联的第n权重。由处理器103执行的机器学习模型可以具有与第n层相关联的第一权重,由处理器113执行的机器学习模型可以具有与第n层相关联的第二权重,……,以及由处理器123执行的机器学习模型可以具有与第n层相关联的第n权重。
主计算机系统101、111、121可以一起工作来解决问题。例如,主计算机系统101、111、121可以确定特定用户是否对特定项目感兴趣。主计算机系统101、111、121可以实现相应的机器学习模型以预测特定用户是否对特定项目感兴趣。
主计算机系统101、111、121可以共享它们的相应分布式表格部分以执行预测。例如,主计算机系统101可以经由NIC 104与主计算机系统111、121共享存储在存储器102中的分布式表格部分。类似地,主计算机系统111可以经由NIC 114与主计算机系统101、121共享存储在存储器112中的分布式表格部分,以及主计算机系统121可以经由NIC 124与主计算机系统101、111共享存储在存储器122中的分布式表格部分。
处理器103、113、123可以将与分布式表格部分相关联的数据应用于机器学习模型,并执行向前传递以输出相应的预测。可以接收反馈(直接或间接),并且该反馈可以用于更新与处理器103、113、123相关联的相应机器学习模型。可以执行反向传播来更新与处理器103、113、123相关联的相应机器学习模型。更新主计算机系统的相应机器学习模型可以包括主计算机系统101、111、121执行权重梯度通信并共享与每个机器学习模型层相关联的相应权重以确定每个机器学习模型层的共同权重。例如,主计算机系统101可以向主计算机系统111、121提供与机器学习模型的最后一层相关联的更新的权重。主计算机系统111、121可以向主计算机系统101提供与机器学习模型的最后一层相关联的相应更新的权重。主计算机系统101、111、121可以为机器学习模型的最后一层确定共同权重。这种过程被称为Allreduce,需要执行计算操作和通信操作两者。每当机器学习模型的一层被更新时,主计算机系统可以执行该过程。
在机器学习工作负荷期间,即,执行与机器学习模型相关联的向前传递和反向传播期间,计算核心(用于计算操作的核心)和通信核心(用于通信操作的核心)可能竞争存储器带宽。通过为请求(例如,通信操作、计算操作)分配优先等级并将该请求分配给对应于所分配的优先等级的优先级队列,可以减少执行机器学习工作负荷中的延迟。主计算机系统的存储器可以与多个优先等级相关联。每个优先级队列都有一个相应的QoS,该QoS决定了完成请求的频率。例如,当存储器带宽可用时,处于具有高优先等级的优先级队列中的请求可以立即得到完成。处于具有中优先等级的优先级队列中的请求可以在第一阈值数量的其他请求已经被完成之后被完成。处于具有低优先等级的优先级队列中的请求可以在第二阈值数量的其他请求已经被完成之后被完成。
诸如处理器103、113、123之一的处理器可以分析机器学习工作负荷,以确定机器学习工作负荷是否包括一个或更多个计算繁重部分和/或一个或更多个通信繁重部分。例如,机器学习工作负荷的向前传递部分可以被确定为机器学习工作负荷的计算繁重部分。机器学习工作负荷的反向传播部分可以被确定为机器学习工作负荷的通信繁重部分。
处理器,例如处理器103、113、123之一,可以基于机器学习工作负荷是处于机器学习工作负荷的计算繁重部分还是处于机器学习工作负荷的通信繁重部分,将计算操作或通信操作分配给优先级队列。例如,当机器学习工作负荷处于计算繁重部分时,处理器可以将对应于计算操作的数据请求分配给具有高优先等级的优先级队列,而处理器可以将对应于通信操作的数据请求分配给具有中或低优先等级的优先级队列。当机器学习工作负荷处于通信繁重部分时,处理器可以将对应于通信操作的数据请求分配给具有高优先等级的优先级队列,而处理器可以将对应于计算操作的数据请求分配给具有中或低优先等级的优先级队列。
诸如处理器103、113、123之一的处理器可以将机器学习工作负荷的操作识别为依赖于机器学习工作负荷的其他操作。处理器可以生成数据依赖图,以确定数据请求之间的依赖和数据依赖延迟。例如,计算操作可以依赖于多个通信和/或计算操作。在工作负荷的计算繁重部分期间,诸如存储器控制器105、115、125的存储器控制器可以接收对应于计算操作的数据请求,但是确定与多个依赖的通信和/或计算操作相关联的一些数据尚未被确定或接收。代替将对应于计算操作的数据请求放置在具有高等级优先级的优先级队列中,处理器可以基于预期延迟(例如,确定或接收与多个依赖的通信和/或计算操作相关联的数据所需的时间量),将对应于计算操作的数据请求放置在具有中等级优先级的优先级队列或具有低等级优先级的优先级队列中。在与多个依赖的通信和/或计算操作相关联的数据预计在对应于计算操作的数据请求处于具有中等级优先级的优先级队列的前面时被确定或接收的情况下,处理器可以将对应于计算操作的数据请求置于具有中等级优先级的优先级队列中。在与多个依赖的通信和/或计算操作相关联的数据预计在计算操作处于具有低等级优先级的优先级队列的前面时被确定或接收的情况下,处理器可以将对应于计算操作的数据请求置于具有低等级优先级的优先级队列中。
当机器学习工作负荷正在执行时,诸如处理器103、113、123之一的处理器可以将数据请求分配给具有相应的优先等级的优先级队列。诸如存储器控制器105、115、125之一的存储器控制器可以分析多个优先级队列,并基于与多个优先级队列相关联的相应QoS来选择要完成哪个数据请求。这减少了在执行机器学习工作负荷时对存储器带宽的竞争和延迟,因为存储器带宽在它们被需要时可用于计算操作和/或通信操作。
图2是示出数据依赖图的示例的图示。在所示的例子中,数据依赖图200包括节点202、204、206、208、210、212、214、216、218。数据依赖图200可以由诸如处理器103、113、123的处理器生成。在处理器分析机器学习工作负荷之后,可以生成数据依赖图。数据依赖图可用于确定每个节点的数据依赖延迟性能影响。
节点202对应于计算操作。例如,第一主计算机系统可以确定与机器学习模型的层相关联的更新的权重。计算操作可能需要存储在第一主计算机系统的存储器中的数据。第一主计算机系统的处理器可以将计算操作分配给具有高等级优先级的优先级队列。响应于计算操作被分配给具有高等级优先级的优先级队列,存储器控制器可以选择计算操作并提供完成计算操作所需的必要存储器带宽。
第一主计算机系统可以与多个其他主计算机系统传递计算操作的输出,例如确定的权重。例如,节点204可以对应于第一主计算机系统通过向第二主计算机系统发送确定的权重来执行通信操作,节点206可以对应于第一主计算机系统通过向第三主计算机系统发送确定的权重来执行通信操作,节点208可以对应于第一主计算机系统通过向第四主计算机系统发送确定的权重来执行通信操作,并且节点210可以对应于第一主计算机系统通过向第五主计算机系统发送所确定的权重来执行通信操作。
第一主计算机系统的处理器可以将通信操作分配给具有高等级优先级的优先级队列。响应于通信操作被分配给具有高等级优先级的优先级队列,存储器控制器可以选择通信操作并提供完成通信操作所需的必要存储器带宽。在一些实施例中,存储器控制器基于可用的存储器带宽量顺序执行与节点204、206、208、210相关联的通信操作。在一些实施例中,存储器控制器基于可用的存储器带宽量并行执行与节点204、206、208、210相关联的通信操作。在一些实施例中,存储器控制器基于可用的存储器带宽量顺序执行与节点204、206、208、210相关联的一些通信操作,并且并行执行与节点204、206、208、210相关联的一些通信操作。
在能够执行节点204、206、208、210之前,第一主计算机系统必须完成与节点202相关联的计算操作。因此,节点204、206、208、210依赖于节点202。
第一主计算机系统可以从多个其他主计算机系统接收与多个其他主计算机系统相关联的机器学习模型的相应层相关联的更新的权重。例如,节点212可以对应于第一主计算机系统通过从第二主计算机系统接收更新的权重来执行通信操作,节点214可以对应于第一主计算机系统通过从第三主计算机系统接收更新的权重来执行通信操作,节点216可以对应于第一主计算机系统通过从第四主计算机系统接收更新的权重来执行通信操作,并且节点218可以对应于第一主计算机系统通过从第五主计算机系统接收更新的权重来执行通信操作。因此,节点212、214、216、218分别依赖于节点204、206、208、210。
第一主计算机系统可以在不同的时间从不同的主计算机系统接收相应的更新的权重。节点220依赖于来自节点212、214、216、218的输出。与节点220相关联的计算操作可以是确定机器学习模型的一层的共同权重。处理器可以将与节点212、214、216、218相关联的通信操作分配给具有中或低优先等级的优先级队列,因为与节点212、214、216、218相关联的数据可能不会同时被接收。当与节点220相关联的计算操作被置于具有中或低优先等级的优先级队列中时,与节点212、214、216、218相关联的一些数据可能未被接收,但是当与节点220相关联的计算操作处于具有中或低优先等级的优先级队列的前面时,第一主计算机系统可能已经接收到与节点212、214、216、218相关联的所有数据。
将与节点220相关联的计算操作分配给具有中或低优先等级的优先级队列可以提高第一主计算机系统和整个分布式计算系统的性能,因为不是立即尝试执行与节点220相关联的计算操作,而是为与节点220相关联的计算操作保留存储器带宽,并等待与节点212、214、216、218相关联的数据被接收,为与节点220相关联的计算操作保留的存储器带宽可以被分配给可以立即执行的其他操作。这是对存储器带宽的更有效的使用,因为存储器带宽在被保留时被使用,而不是保留存储器带宽并等待保留的存储器带宽被使用。
图3是示出根据一些实施例的优先级队列的图示。在所示的例子中,优先级队列300可以由诸如主计算机系统101、111、121的主计算机系统实现。尽管图3描绘了四个不同的优先级队列,但是主计算机系统可以实现n个优先级队列,其中每个优先级队列具有不同的优先等级。
存储器控制器301可以基于多个优先级队列选择要执行的数据请求(例如,计算操作或通信操作),并为所选择的数据请求保留存储器带宽。每个优先级队列都有相应的QoS。例如,优先级队列Q1可以具有指示存储器控制器301将立即保留存储器带宽以执行数据请求并且当保留的存储器带宽可用时立即执行数据请求的QoS。优先级队列Q2可以具有指示存储器控制器301将保留存储器带宽以执行数据请求并且在已经执行了第一阈值数量(例如,4)的操作之后执行数据请求的QoS。优先级队列Q3可以具有指示存储器控制器301将保留存储器带宽以执行数据请求并且在已经执行了第二阈值数量(例如,8)的操作之后执行数据请求的QoS。优先级队列Q4可以具有指示存储器控制器301将保留存储器带宽以执行数据请求并且在已经执行了第三阈值数量(例如,16)的操作之后执行数据请求的QoS。
多个优先级队列可以具有计数器。每当存储器控制器301为数据请求保留存储器带宽时,计数器可以递增。在一些实施例中,每个优先级队列具有对应的计数器。在一些实施例中,单个计数器用于所有优先级队列。存储器控制器301可以使用计数器来确定何时为优先级队列之一中的数据请求保留存储器带宽。
存储器控制器301可以基于机器学习工作负荷是否处于计算繁重部分来将操作分配给优先级队列。例如,对应于在机器学习工作负荷的计算繁重部分期间请求存储器带宽的诸如计算操作302的计算操作的数据请求可以被分配给具有高优先等级的优先级队列。在可以执行计算操作之前,计算操作可以依赖于一个或更多个其他操作。这种计算操作(例如,计算操作312、322)可以被分配给具有中优先等级的优先级队列(例如,Q2,Q3)。当一个或更多个其他依赖的操作完成时,对应于计算操作的数据请求可以位于具有中优先等级的优先级队列的前面。这是对存储器带宽的有效利用,因为当数据请求准备好被执行而不等待依赖的操作的输出时,存储器带宽将被保留给该数据请求。对应于在机器学习工作负荷的计算繁重部分期间请求存储器带宽的诸如通信操作332、334、336的通信操作的数据请求可以被分配给具有低优先等级的优先级队列。
存储器控制器301可以基于机器学习工作负荷是否处于通信繁重部分,将对应于操作的数据请求分配给优先级队列。例如,对应于在机器学习工作负荷的通信繁重部分期间请求存储器带宽的通信操作的数据请求可以被分配给具有高优先等级的优先级队列。在可以执行通信操作之前,通信操作可以依赖于一个或更多个其他操作。这种通信操作可以被分配给具有中优先等级的优先级队列(例如,Q2,Q3)。当一个或更多个其他依赖的操作完成时,对应于通信操作的数据请求可以在具有中优先等级的优先级队列的前面。这是对存储器带宽的有效利用,因为当操作准备好执行而不等待依赖的操作的输出时,存储器带宽将被保留给该操作。对应于在机器学习工作负荷的通信繁重部分期间请求存储器带宽的计算操作的数据请求可以被分配给具有低优先等级的优先级队列。
图4是示出根据一些实施例的机器学习模型的框图。在所示的例子中,机器学习模型400可以由诸如主计算机系统101、111、121的主计算机系统实现。
在所示的例子中,机器学习模型400由层402、412、422组成。尽管该例子将机器学习模型400示为具有三层,但是机器学习模型400可以由n层组成。
每个层与相应的权重相关联。层402与权重404相关联,层412与权重414相关联,以及层422与权重424相关联。在向前传递中,输入数据可以应用于层402。输入数据可以对应于与分布式表格相关联的数据(例如,分布式表格的一个或更多个条目)。层402可以将权重404(例如加权函数)应用于输入数据,并输出值。层402的输出可以被提供作为层412的输入。层412可以将权重414应用于由层402输出的数据,并输出值。层412的输出可以被提供作为层422的输入。层422可以将权重424应用于由层412输出的数据,并输出值。由层422输出的值可以对应于预测。机器学习模型400的向前传递包括多个计算操作。主计算机系统的存储器控制器可以在向前传递期间将存储器带宽优先给予这种计算操作,而不是通信操作。
主计算机系统可以基于它的预测来接收反馈,并确定它的相应机器学习模型需要被更新以在未来提供更准确的预测。在反向传播部分期间,可以确定层422的已更新权重。在一些实施例中,已更新权重与一个或更多个其他主计算机系统共享。一个或更多个其他主计算机系统可以共享层422的它们的相应已更新权重。可以为层422确定共同权重426。可以确定层412的已更新权重。在一些实施例中,已更新权重与一个或更多个其他主计算机系统共享。一个或更多个其他主计算机系统可以共享层412的它们的相应已更新权重。可以为层412确定共同权重416。可以确定层402的已更新权重。在一些实施例中,已更新权重与一个或更多个其他主计算机系统共享。一个或更多个其他主计算机系统可以共享层402的它们的相应已更新权重。可以为层412确定共同权重416。主计算机系统的存储器控制器可以在反向传播期间将存储器带宽的优先给予通信操作,而不是计算操作。
图5是示出根据一些实施例的用于执行机器学习工作负荷的过程的流程图。在所示的例子中,过程500可以由主计算机系统例如主计算机系统101、111、121实现。
在502,执行向前传递。输入数据可以应用于主计算机系统的机器学习模型,并且由主计算机系统输出预测。在一些实施例中,输入数据是与分布式表格例如嵌入表格相关联的数据。
在504,执行向后传播。机器学习模型可以被更新。机器学习模型可以由多个层组成,其中每一层与相应的权重相关联。可以更新与机器学习模型的每一层相关联的相应权重。在一些实施例中,与机器学习模型的每一层相关联的相应权重与一个或更多个其他主计算机系统共享,以及针对机器学习模型的每一层确定共同权重。
图6是示出根据一些实施例的用于执行机器学习工作负荷的过程的流程图。在所示的例子中,过程600可以由主计算机系统例如主计算机系统101、111、121实现。
在602,分析机器学习工作负荷。机器学习工作负荷由多个部分组成。机器学习工作负荷由多个操作组成。在一些实施例中,机器学习工作负荷部分是计算繁重部分。如果在机器学习工作负荷部分期间执行的计算操作比通信操作多,则机器学习工作负荷部分是计算繁重部分。在一些实施例中,机器学习工作负荷是通信繁重部分。如果在机器学习工作负荷部分期间执行的通信操作比计算操作多,则机器学习工作负荷部分是通信繁重部分。分析机器学习工作负荷以确定机器学习工作负荷部分是计算繁重部分、通信繁重部分还是中性部分(既不是计算繁重也不是通信繁重)。
分析机器学习工作负荷,以确定机器学习工作负荷的操作之间的数据依赖延迟影响。例如,计算操作可以从多个通信操作接收数据。可以分析机器学习工作负荷,以确定在接收计算操作所需的第一条数据和接收计算操作所需的最后一条数据之间有多少时间(即,数据依赖延迟)。
在604,基于相关联的数据依赖延迟性能影响,分配相应的优先等级以识别机器学习工作负荷中的数据请求。基于相应的数据依赖延迟性能影响,对应于机器学习工作负荷的操作的数据请求被分配不同的优先等级(例如,低、中、高)。对应于没有数据依赖延迟性能影响的操作的数据请求可以被分配高优先等级。对应于具有小于或等于第一阈值的数据依赖延迟性能影响的操作的数据请求可以被分配中优先等级。对应于具有大于第一阈值且小于第二阈值的数据依赖延迟性能影响的操作的数据请求可以被分配低优先等级。
在606,当向存储器控制器提供数据请求时,指示所分配的相应的优先等级。处理器可以尝试执行操作,并请求存储器带宽来执行该操作。处理器可以对对应于操作的数据请求分配通过分析机器学习工作负荷预先确定的优先级。
在608,基于指示的相应的优先等级,将接收的数据请求分类到多个优先级队列中。例如,对应于操作的数据请求可以被分配给具有高优先等级的优先级队列、具有中优先等级的优先级队列或具有低优先等级的优先级队列。
在610,数据请求按照基于不同的优先级队列的不同服务质量的顺序从不同的优先级队列向存储器发起。存储器控制器可以从优先级队列中选择对应于操作的数据请求,并为该操作保留存储器带宽。存储器控制器可以使用计数器来确定何时从优先级队列中选择对应于操作的数据请求。例如,具有高优先等级的优先级队列中的数据请求可以被选择作为下一个数据请求。在已经选择并执行了第一阈值数量的数据请求之后,可以选择具有中优先等级的优先级队列中的数据请求。在已经选择并执行了第二阈值数量的数据请求之后,可以选择具有低优先等级的优先级队列中的数据请求。
图7是示出根据一些实施例的为数据请求分配优先等级的过程的流程图。过程700可以由诸如主计算机系统101、111、121的主计算机系统实现。过程700可以被实现为执行过程600的步骤602或步骤604中的一些或全部。
在702,确定机器学习工作负荷的当前部分。机器学习工作负荷由多个部分组成。机器学习工作负荷由多个操作组成。如果在机器学习工作负荷部分期间执行的计算操作多于通信操作,则机器学习工作负荷部分是计算繁重部分。如果在机器学习工作负荷部分期间执行的通信操作比计算操作多,则机器学习工作负荷部分是通信繁重部分。
在704,确定当前部分是否是计算繁重部分。在所确定的部分是计算繁重部分的情况下,过程700前进到706。如果所确定的不是计算繁重部分,即通信繁重部分,则过程700进行到712。
在706,确定数据请求是否对应于计算操作。如果数据请求对应于计算操作,则过程700前进到708。如果数据请求不对应于计算操作,即数据请求对应于通信操作,则过程700前进到710。
在708,对应于计算操作的数据请求被分配给具有高优先等级的优先级队列。对应于具有高优先等级的优先级队列中的操作的数据请求可以被选择作为存储器控制器为其保留存储器带宽的下一个操作。
在710,对应于通信操作的数据请求被分配给具有低或中优先等级的优先级队列。在已经选择并执行了第一阈值数量的操作之后,可以选择具有中优先等级的优先级队列中的数据请求。在已经选择并执行了第二阈值数量的操作之后,可以选择具有低优先等级的优先级队列中的数据请求。
在712,确定数据请求是否对应于通信操作。在数据请求对应于通信操作的情况下,过程700前进到716。如果数据请求不对应于通信操作,即数据请求对应于计算操作,则过程700前进到714。
在714,对应于计算操作的数据请求被分配给具有低或中优先等级的优先级队列。在716,对应于通信操作的数据请求被分配给具有高优先等级的优先级队列。
图8是示出根据一些实施例的用于确定机器学习工作负荷中的数据依赖延迟影响的过程的流程图。在所示的例子中,过程800可以由主计算机系统例如主计算机系统101、111、121实现。过程800可以被实现为执行过程600的步骤602或步骤604中的一些。
在802,分析机器学习工作负荷。机器学习工作负荷由多个节点组成。节点可以对应于计算操作或通信操作。
在804,生成数据依赖图。数据依赖图指示机器学习工作负荷的多个节点是如何连接的。
在806,确定与节点相关联的数据依赖延迟性能影响。一个节点可以依赖于数据依赖图的一个或更多个其他节点。与节点相关联的数据依赖延迟性能影响可以包括节点从第一个依赖的节点接收数据和最后一个依赖的节点接收数据之间的时间量(例如,上游延迟)。与节点相关联的数据依赖延迟性能可以包括节点执行操作并向数据依赖图的另一个节点提供输出所需的时间量(例如,下游延迟)。
图9是示出根据一些实施例的用于更新机器学习模型的过程的流程图。在所示的例子中,过程900可以由主计算机系统例如主计算机系统101、111、121实现。
在902,基于与分布式表格相关联的数据执行预测。主计算机系统的处理器可以确定它的相关机器学习模型需要被更新以执行更准确的预测。
在904,确定与机器学习模型层相关联的新权重。机器学习模型可以由多个层组成。每层可以有相应的权重。主计算机系统的处理器可以确定层的已更新权重。
在906,所确定的权重被提供到分布式计算系统的其他节点。分布式计算系统的其他节点可能已经执行相应的预测并已经确定对它们的相应机器学习模型的相应调整。在908,接收来自分布式计算系统的其他节点的所确定的权重。
在910,为机器学习模型层确定共同权重。共同权重基于由主计算机系统确定的权重和由分布式计算系统的其他节点确定的权重。
图10是示出根据一些实施例的用于选择请求的过程的流程图。在所示的例子中,过程1000可以由存储器控制器例如存储器控制器105、115、125实现。过程1000可以在每次存储器控制器确定要完成哪个请求时被实现。在一些实施例中,过程1000用于执行过程600的步骤610中一些或全部。
在1002,分析请求队列。存储器控制器可以与多个请求队列相关联。每个请求队列可以包括零个或更多个请求。每个请求队列都有一个相关的优先等级。请求队列可以包括具有高优先等级的优先级队列、具有中优先等级的优先级队列和具有低优先等级的优先级队列。可能有n个请求队列。存储器控制器基于与优先级队列相关联的优先等级来选择要完成的数据请求。
在1004,确定在具有高优先等级的优先级队列中是否有任何数据请求。当存储器控制器能够为请求保留带宽时,包括在具有高优先等级的优先级队列中的数据请求可以被立即完成。具有高优先等级的优先级队列中的数据请求可以被赋予比其他队列中的请求更高的优先级。对于具有中或低优先等级的优先级队列中的数据请求,可能已经完成了阈值数量的请求。可以是轮到具有中或低优先等级的优先级队列中的数据请求由存储器控制器来完成。然而,存储器控制器可以选择为具有高优先等级的优先级队列中的请求保留存储器带宽,而不是为具有中或低优先等级的优先级队列中的请求保留存储器带宽。
在具有高优先等级的优先级队列中有数据请求的情况下,过程1000进行到1010。在具有高优先等级的优先级队列中没有数据请求的情况下,过程1000进行到1006。
在1006,确定在具有中优先等级的优先级队列中是否有任何数据请求。在存储器控制器已经完成第一阈值数量的请求之后,可以完成包括在具有中优先等级的优先级队列中的数据请求。例如,对于具有中优先等级的优先级队列中的数据请求,存储器控制器可以在每四个请求被完成之后保留存储器带宽。具有中优先等级的优先级队列中的数据请求可以被赋予比具有低优先等级的优先级队列中的请求更高的优先级。对于具有低优先等级的优先级队列中的请求,可能已经完成了阈值数量的请求。可以是轮到具有低优先等级的优先级队列中的数据请求由存储器控制器来完成。然而,存储器控制器可以选择为具有中优先等级的优先级队列中的请求保留存储器带宽,而不是为具有低优先等级的优先级队列中的数据请求保留存储器带宽。在中优先级队列中有数据请求的情况下,过程1000进行到1010。在中优先级队列中没有数据请求的情况下,过程1000进行到1008。
在1008,确定在低优先级队列中是否有任何数据请求。在存储器控制器已经完成第二阈值数量的请求之后,可以完成包括在具有低优先等级的优先级队列中的数据请求。在低优先级队列中有数据请求的情况下,过程1000进行到1010。在低优先级队列中没有数据请求的情况下,过程1000返回到1002。
在1010,执行数据请求。存储器控制器可以保留执行数据请求所需的存储器带宽量,并且执行数据请求。
在1012,递增计数器。每次完成针对存储器带宽的数据请求时,计数器都会被递增。计数器用于确定是否完成来自具有高优先等级的优先级队列、具有中优先等级的优先级队列或具有低优先等级的优先级队列的数据请求。
尽管为了清楚理解的目的已经详细描述了前述实施例,但是本发明不限于所提供的细节。有许多实现本发明的替代方式。所公开的实施例是说明性的,而不是限制性的。
Claims (20)
1.一种系统,包括:
处理器,其被配置为:
分析机器学习工作负荷,并基于相关联的数据依赖延迟性能影响,为所述机器学习工作负荷中识别的数据请求分配相应的优先等级;和
当向存储器控制器提供所述数据请求时,指示所分配的相应的优先等级;和
所述存储器控制器,其被配置为:
基于所指示的相应的优先等级,将所接收的数据请求分类到多个不同的优先级队列中;和
按照基于所述不同的优先级队列的不同服务质量的顺序,从所述不同的优先级队列向存储器发起所述数据请求。
2.根据权利要求1所述的系统,其中,为了分析所述机器学习工作负荷,所述处理器被配置为生成数据依赖图。
3.根据权利要求2所述的系统,其中,所述数据依赖图包括多个节点,其中,所述多个节点中的每个节点对应于数据请求。
4.根据权利要求3所述的系统,其中,所述处理器被配置为确定所述多个节点中的每个节点的相关联的数据依赖延迟性能影响。
5.根据权利要求1所述的系统,其中,所分配的相应的优先等级至少包括高优先等级、中优先等级和低优先等级。
6.根据权利要求5所述的系统,其中,所述存储器控制器被配置为当与所述存储器相关联的存储器带宽可用时,在具有所述高优先等级的优先级队列中发起数据请求。
7.根据权利要求5所述的系统,其中,所述存储器控制器被配置为当与所述存储器相关联的存储器带宽可用时并且在已经完成第一阈值数量的数据请求之后,在具有所述中优先等级的优先级队列中发起数据请求。
8.根据权利要求5所述的系统,其中,所述存储器控制器被配置为当与所述存储器相关联的存储器带宽可用时并且在已经完成第二阈值数量的数据请求之后,在具有所述低优先等级的优先级队列中发起数据请求。
9.根据权利要求1所述的系统,其中,为了分析所述机器学习工作负荷,所述处理器被配置为确定所述机器学习工作负荷的当前部分。
10.根据权利要求9所述的系统,其中,所述处理器被配置为基于所述机器学习工作负荷的所确定的当前部分来指示所分配的相应的优先等级。
11.根据权利要求10所述的系统,其中,所确定的当前部分对应于所述机器学习工作负荷的计算繁重部分。
12.根据权利要求11所述的系统,其中,在所述计算繁重部分期间,所述处理器被配置为将对应于计算操作的数据请求分配给与对应于通信操作的数据请求不同的优先级队列。
13.根据权利要求10所述的系统,其中,所确定的当前部分对应于所述机器学习工作负荷的通信繁重部分。
14.根据权利要求13所述的系统,其中,在所述通信繁重部分期间,所述处理器被配置为将对应于计算操作的数据请求分配给与对应于通信操作的数据请求不同的优先级队列。
15.一种方法,包括:
分析机器学习工作负荷,并基于相关联的数据依赖延迟性能影响,为所述机器学习工作负荷中识别的数据请求分配相应的优先等级;
当向存储器控制器提供所述数据请求时,指示所分配的相应的优先等级;
基于所指示的相应的优先等级,将所接收的数据请求分类到多个不同的优先级队列中;和
按照基于所述不同的优先级队列的不同服务质量的顺序,从所述不同的优先级队列向存储器发起所述数据请求。
16.根据权利要求15所述的方法,其中,分析所述机器学习工作负荷包括生成数据依赖图。
17.根据权利要求16所述的方法,其中,所述数据依赖图包括多个节点,其中,所述多个节点中的每个节点对应于数据请求。
18.根据权利要求17所述的方法,其中,处理器为所述多个节点中的每个节点确定相关联的数据依赖延迟性能影响。
19.根据权利要求15所述的方法,其中,所分配的相应的优先等级至少包括高优先等级、中优先等级和低优先等级。
20.一种方法,包括:
由处理器分析机器学习工作负荷,并基于相关联的数据依赖延迟性能影响将相应的优先等级分配给所述机器学习工作负荷中识别的数据请求;和
当向存储器控制器提供所述数据请求时,指示所分配的相应的优先等级,其中,所述存储器控制器:
基于所指示的相应的优先等级,将所接收的数据请求分类到多个不同的优先级队列中;和
按照基于所述不同的优先级队列的不同服务质量的顺序,从所述不同的优先级队列向存储器发起所述数据请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/828,729 US20210304025A1 (en) | 2020-03-24 | 2020-03-24 | Dynamic quality of service management for deep learning training communication |
US16/828,729 | 2020-03-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113452546A true CN113452546A (zh) | 2021-09-28 |
Family
ID=74797721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110303473.9A Pending CN113452546A (zh) | 2020-03-24 | 2021-03-22 | 深度学习训练通信的动态服务质量管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210304025A1 (zh) |
EP (1) | EP3885910A1 (zh) |
CN (1) | CN113452546A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024065826A1 (en) * | 2022-09-30 | 2024-04-04 | Intel Corporation | Accelerate deep learning with inter-iteration scheduling |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230195528A1 (en) * | 2021-12-20 | 2023-06-22 | Intel Corporation | Method and apparatus to perform workload management in a disaggregated computing system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019045928A1 (en) * | 2017-08-30 | 2019-03-07 | Intel Corporation | TECHNOLOGIES FOR MANAGING AN EFFECTIVE LATENCY PIPELINE VIA A NETWORK INTERFACE CONTROL DEVICE |
CN110135575A (zh) * | 2017-12-29 | 2019-08-16 | 英特尔公司 | 用于分布式机器学习的通信优化 |
CN110352584A (zh) * | 2016-12-28 | 2019-10-18 | 谷歌有限责任公司 | 跨越本地网络的设备流量的自动优先级排序 |
US20190354497A1 (en) * | 2018-05-18 | 2019-11-21 | International Business Machines Corporation | Selecting a priority queue from which to process an input/output (I/O) request by training a machine learning module |
US20190372866A1 (en) * | 2019-08-14 | 2019-12-05 | Intel Corporation | Technologies for latency based service level agreement management in remote direct memory access networks |
US20200082273A1 (en) * | 2018-09-11 | 2020-03-12 | Apple Inc. | Compiling models for dedicated hardware |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990548B1 (en) * | 2019-11-25 | 2021-04-27 | Micron Technology, Inc. | Quality of service levels for a direct memory access engine in a memory sub-system |
-
2020
- 2020-03-24 US US16/828,729 patent/US20210304025A1/en not_active Abandoned
-
2021
- 2021-02-25 EP EP21159435.3A patent/EP3885910A1/en not_active Withdrawn
- 2021-03-22 CN CN202110303473.9A patent/CN113452546A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110352584A (zh) * | 2016-12-28 | 2019-10-18 | 谷歌有限责任公司 | 跨越本地网络的设备流量的自动优先级排序 |
WO2019045928A1 (en) * | 2017-08-30 | 2019-03-07 | Intel Corporation | TECHNOLOGIES FOR MANAGING AN EFFECTIVE LATENCY PIPELINE VIA A NETWORK INTERFACE CONTROL DEVICE |
CN110135575A (zh) * | 2017-12-29 | 2019-08-16 | 英特尔公司 | 用于分布式机器学习的通信优化 |
US20190354497A1 (en) * | 2018-05-18 | 2019-11-21 | International Business Machines Corporation | Selecting a priority queue from which to process an input/output (I/O) request by training a machine learning module |
US20200082273A1 (en) * | 2018-09-11 | 2020-03-12 | Apple Inc. | Compiling models for dedicated hardware |
US20190372866A1 (en) * | 2019-08-14 | 2019-12-05 | Intel Corporation | Technologies for latency based service level agreement management in remote direct memory access networks |
Non-Patent Citations (2)
Title |
---|
LIU KE等: "RecNMP: Accelerating Personalized Recommendation with Near-Memory Processing", 《2020 ACM/IEEE 47TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA)》, 30 December 2019 (2019-12-30), pages 2 - 5 * |
MIN KYU JEONG等: "A QoS-Aware Memory Controller for Dynamically Balancing GPU and CPU Bandwidth Use in an MPSoC", 《DESIGN AUTOMATION CONFERENCE(DAC)》, 3 June 2012 (2012-06-03), pages 2 - 3 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024065826A1 (en) * | 2022-09-30 | 2024-04-04 | Intel Corporation | Accelerate deep learning with inter-iteration scheduling |
Also Published As
Publication number | Publication date |
---|---|
EP3885910A1 (en) | 2021-09-29 |
US20210304025A1 (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Le et al. | Allox: compute allocation in hybrid clusters | |
EP3525096B1 (en) | Resource load balancing control method and cluster scheduler | |
US20200236012A1 (en) | System and method for applying machine learning algorithms to compute health scores for workload scheduling | |
EP2176754B1 (en) | System and method for optimizing data analysis | |
CN110476172A (zh) | 用于卷积神经网络的神经架构搜索 | |
US11221876B2 (en) | Scheduling applications in CPU and GPU hybrid environments | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
JP2022130363A (ja) | 機械学習モデルを改良して局所性を改善させること | |
CN113452546A (zh) | 深度学习训练通信的动态服务质量管理 | |
CN110262897B (zh) | 一种基于负载预测的Hadoop计算任务初始分配方法 | |
US20210303978A1 (en) | Load balancing for memory channel controllers | |
CN110322020B (zh) | 分布式随机梯度下降的自适应学习率调度 | |
CN113037800A (zh) | 作业调度方法以及作业调度装置 | |
US8677304B2 (en) | Task-based multi-process design synthesis | |
WO2016018352A1 (en) | Platform configuration selection based on a degraded makespan | |
US20170083375A1 (en) | Thread performance optimization | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
EP3851967A1 (en) | Smart network interface controller for caching distributed data | |
US10402762B2 (en) | Heterogeneous platform configurations | |
US20180322226A1 (en) | Scheduling simultaneous optimization of multiple very-large-scale-integration designs | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
Marinho et al. | LABAREDA: a predictive and elastic load balancing service for cloud-replicated databases | |
Nasr et al. | Task scheduling algorithm for high performance heterogeneous distributed computing systems | |
de Freitas Cunha et al. | An SMDP approach for Reinforcement Learning in HPC cluster schedulers | |
Zykov et al. | Application of information processes applicative modelling to virtual machines auto configuration |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan platform Co. Address before: California, USA Applicant before: Facebook, Inc. |