CN114424214A - 用于高效深度学习的混合数据-模型并行性 - Google Patents

用于高效深度学习的混合数据-模型并行性 Download PDF

Info

Publication number
CN114424214A
CN114424214A CN202080065781.6A CN202080065781A CN114424214A CN 114424214 A CN114424214 A CN 114424214A CN 202080065781 A CN202080065781 A CN 202080065781A CN 114424214 A CN114424214 A CN 114424214A
Authority
CN
China
Prior art keywords
parallelism
processors
neural network
array
technique
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
CN202080065781.6A
Other languages
English (en)
Inventor
S·温卡塔拉玛尼
V·斯里尼瓦桑
P·黑德尔博格
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114424214A publication Critical patent/CN114424214A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Abstract

公开了混合并行性技术,其中使用数据与模型并行性技术的混合来跨处理器阵列拆分层的工作负载。当配置阵列时,处理器在一个方向上的带宽可大于另一方向上的带宽。每个层根据它们是特征更重还是权重更重来表征。根据该表征,NN层的工作负载可以使用混合并行性技术来分配给阵列,而不是仅使用数据并行性技术或仅使用模型并行性技术。例如,如果NN层相比特征重更加权重重,则在具有较大带宽的方向上使用数据并行性(以最小化权重减小的负面影响),而在具有较小带宽的方向上使用模型并行性。

Description

用于高效深度学习的混合数据-模型并行性
背景技术
本发明涉及使用混合并行性技术来将神经网络中的层分配给处理器阵列。
训练神经网络(NN)是耗时的过程。结果,许多训练平台使用处理器阵列(例如,2D环面)来划分NN的每一层的工作负载。存在用于在多个处理器之间划分工作负载的若干已知技术。一种这样的技术是数据并行性,其中工作负荷被层的特征(或输入)拆分。在该技术中,每个处理器可以执行训练数据的特定批(或小批)的所有任务。以图像处理器NN为例,可以分配各处理器来处理各自的图像。为此,该层的权重(或内核)必须被传送到处理器中的每一者。在权重大于特征的NN层(本文中称为权重重层)中,由于芯片之间的权重减小(其中在每批或小批训练末尾处,权重被同步),使用数据并行性技术是低效的。这是昂贵的芯片对芯片操作,并且通常是数据并行性的主要痛点。
另一技术为模型并行性,其中层的工作负载在输出维度中拆分。即,前几个特征在一个处理器中被计算,接下来的几个特征在另一处理器中被计算,等等。这样做避免了必须将层的所有权重发送到每个处理器,并且因此避免了权重减小。然而,通常在NN中,每个输出特征需要整个输入通道。即,为了计算几个特征,每一处理器仍需要所述层的整个输入(例如,来自先前层的输出)。使用模型并行性,在所有处理器中复制输入(称为执行“激活”)。在NN中的下一层可以开始之前,每个处理器需要接收由每隔一个芯片计算的输出——即,所有处理器的激活被传递至彼此。由此,模型并行性对于权重重层而言比数据并行性更高效,但对于特征重层(其中特征(或输入)数据大于权重数据)则更低效。
发明内容
根据本发明的一个实施例,是一种方法,该方法包括选择用于将神经网络层的工作负载拆分到处理器阵列的混合并行性技术,其中所述处理器阵列中的每个处理器可在第一方向和第二方向上向相邻处理器传输数据。该方法还包括使用所选择的混合并行性技术将对应于神经网络层的任务分配给处理器阵列,其中混合并行性技术包括当在第一方向上在处理器阵列中的处理器之间传输数据时使用第一并行性技术,以及当在第二方向上在处理器阵列中的处理器之间传输数据时使用不同的第二并行性技术。
本发明的另实施例是一种系统,该系统包括处理器阵列和神经网络分配器。所述分配器经配置以选择用于将神经网络层的工作负载拆分到处理器阵列的混合并行性技术,其中所述处理器阵列中的每个处理器可在第一方向和第二方向上向相邻处理器传输数据,且使用所选择的混合并行性技术将对应于神经网络层的任务分配给处理器阵列,其中混合并行性技术包括当在第一方向上在处理器阵列中的处理器之间传输数据时使用第一并行性技术,以及当在第二方向上在处理器阵列中的处理器之间传输数据时使用不同的第二并行性技术。
本发明的另一个实施例是其中包含计算机可读程序代码的计算机可读存储媒质,所述计算机可读程序代码可由一个或多个计算机处理器执行以执行操作。所述操作包括选择用于将神经网络层的工作负载拆分到处理器阵列的混合并行性技术,其中所述处理器阵列中的每个处理器可在第一方向和第二方向上向相邻处理器传输数据,以及使用所选择的混合并行性技术将对应于神经网络层的任务分配给处理器阵列,其中混合并行性技术包括当在第一方向上在处理器阵列中的处理器之间传输数据时使用第一并行性技术,以及当在第二方向上在处理器阵列中的处理器之间传输数据时使用不同的第二并行性技术。
附图说明
现在将参考附图仅通过示例的方式来描述本发明的实施例,在附图中:
图1示出根据本文描述的一个实施例的NN训练系统。
图2示出了根据本文所述的一个实施例的NN训练硬件。
图3示出根据本文描述的一个实施例的NN中的各种尺寸。
图4是根据本文描述的一个实施例的用于确定用于在处理器阵列之间拆分NN层的执行的最佳技术的流程图。
图5是根据本文描述的一个实施例的用于选择混合并行性技术的流程图。
图6图示根据本文描述的一个实施例的形成X环和y环的处理器的阵列。
图7示出了根据本文描述的一个实施例的用于为NN层选择并行性技术的矩阵。
图8示出了根据本文描述的一个实施例的基于NN层的特征的并行性技术的排序。
具体实施方式
并非限于数据并行性或模型并行性,本文中的实施例引入混合并行性技术,其中数据和模型并行性的混合可用于跨处理器阵列(例如,集成电路(IC)或芯片阵列)拆分层的工作负载。在一个实施例中,处理器的阵列包括在第一(X)方向上的x环和在第二(Y)方向上的y环。当配置阵列时,处理器在一个方向上的带宽可大于另一方向上的带宽。即,系统设计者可以相比于Y方向故意为在X方向上的处理器之间进行通信分配更多的通信链路。然后可以根据它们是特征更重还是权重更重来表征每个层。根据该表征,NN层的工作负载可以使用混合并行性技术来分配给阵列,而不是仅使用数据并行性技术或仅使用模型并行性技术。例如,NN层可以稍微权重更重(而不是特征更重)。由于模型并行性在执行权重重层时更高效,因此可使用第一混合并行性技术来拆分NN层的工作负载,其中在X方向(其中,带宽更大)上使用数据并行性以实现沿着快速X方向链路的梯度减小,并且在Y方向(其中,带宽更低,但是模型并行性对于权重重层固有地更高效)上使用模型并行性。相反,如果NN层特征更重(而不是权重更重),则可以使用第二混合并行性技术来拆分工作负载,其中在X方向上使用模型并行性来最小化特征激活的负面影响,而在Y方向上使用数据并行性,因为对于权重重层来说,数据并行性固有地更高效。
虽然可在一个方向上的带宽不同于正交方向上的带宽的处理器阵列中使用混合并行性技术,但也可在阵列的两个方向上的带宽相同的情况下使用混合并行性技术。
图1示出根据本文描述的一个实施例的NN训练系统100。训练系统100包括计算系统105,其使用所选择的技术145来在被分配给NN训练硬件150的NN中拆分每个层的工作负荷。虽然本文的实施例描述了当训练NN时拆分层的工作负荷,但是它们限于此。在训练NN之外的其他情况下,使用下面讨论的技术来划分工作负荷可能是有利的。
计算系统105包括处理器110和存储器115,处理器110表示具有任何数量的处理核的任何数量的处理元件,存储器115可以包括易失性存储器元件、非易失性存储器元件和其组合。如图所示,存储器115包括在计算系统105中执行的两个软件应用:NN分配器120和性能估计器125。NN分配器120确定用于将NN中的层的工作负荷分配给NN训练硬件150的所选择的技术145。在一个实施例中,NN分配器120响应于性能估计器125生成的关于NN中的每个层的信息而选择技术145。也就是说,NN分配器120可以为NN中的各个层选择不同技术145。
性能估计器125建模(或模拟)NN层以使用各种并行性技术来估计层的性能。在此实例中,性能估计器125评估层以在使用数据并行性技术130、模型并行性技术135及一或多个混合并行性技术140时确定其性能。在一个实施例中,混合并行性技术140是作为两个其他并行性技术的混合的任何技术,所述两个其他并行性技术组合使用以在NN训练硬件150中的各个硬件元件之间拆分任务的工作负荷。即,混合并行性技术140可以是作为数据并行性技术130和模型并行性技术135的组合的一种或多种技术。然而,混合并行性技术140不限于技术130、135的组合,而是可以包括用于在训练硬件150之间拆分层的工作负荷的其他类型的并行性技术的组合。
NN训练硬件150包括多个处理器155,每个处理器155包括多个核160。核160包括使用多个PE 170形成的多个处理元件(PE)阵列(例如,收缩阵列)。如以下所讨论的,所选择的技术145在处理器155之间拆分层的工作负荷。例如,如果数据并行性技术130是所选技术145,则工作量被小批拆分,其中每个小批被分配给不同的处理器155(例如,当训练图像处理NN时使用的图像被发送到每个处理器155)。如果模型并行性技术135是所选技术145,那么向每一处理器155分配输出数据中的特征的子集(其中子集是一个或多个)。处理器155然后可以并行操作以完成其分配的任务。例如,每一处理器155可同时处理图像,或每一处理器155可同时处理其所分配的特征子集。
图2示出了根据本文所述的一个实施例的NN训练硬件。图2图示了2D阵列200,其包括水平地(X方向)和垂直地(Y方向)与相邻处理器155互连的处理器155。照此,处理器可共享经处理的数据。下文在讨论混合并行性技术时更详细地描述此数据共享。
每个处理器155包括使用片上互连202通信地耦合的多个核160,片上互连202允许核160与NN训练硬件中的外部存储器205(例如,RAM)通信。进而,每个核160包括耦合到便签簿存储器210的多个PE阵列165,便签簿存储器210表示形成片内存储器的任何数量的高速缓存(例如,1级和2级高速缓存)。
每个PE阵列165包括互连以形成阵列或网格(例如,收缩阵列)的多个PE 170。PE阵列165的输入和输出包括先进先出(FIFO)缓冲器215。每个PE 170包括耦接至注册表文件225的多重累加(MAC)单元220。
NN层的工作负荷可以在图2中所示的不同硬件组件之间划分。然而,下面的技术集中于在处理器155之间拆分NN层的工作负荷。然后可以使用其他技术来在核160、PE阵列165和PE 170之间进一步拆分分配给每个处理器155的工作负荷。也就是说,虽然以下实施例讨论了选择最佳并行性技术来在处理器155之间分布工作负荷,但是可以使用附加的并行性技术在处理器155中的硬件元件之间进一步拆分工作负荷。
图3示出根据本文描述的一个实施例的NN中的各种尺寸。即,图3示出了可以用于在NN中分割卷积层的不同维度。卷积层的工作负荷可以输入三个数据结构:输入(Inp)、输出(Out)和权重(内核)。Nin是从NN中的先前一个或多个层接收的数据中的特征(或面)的数量。即,输入具有Nin的深度。每个特征或面具有由Ni和Nj表示的尺寸(例如,特征大小Ni xNj)。当执行卷积时,使用内核中的一者来处理特征中的每一像素(例如,点积)。NN具有Nout数量的内核,其中每个内核具有Ki的高度、Kj的宽度和Nin上的深度。
卷积通过执行内核中的一者与输入中的特征中的一者中的像素的点积来工作。这输出被存储在该输出中的标量值(例如,像素)。结果,输出的深度是Nout(例如,输出中的特征的数目),其与内核的数目相同。当对输入的特征或面中的其他像素执行点积时使用步幅移动内核会产生输出的特征(或面)。假设步幅为1,则输出的特征或面具有与输入的特征相同的宽度和高度(Ni和Nj)。
在四个维度中执行卷积结果:Nin、Nij、Kij和Nout,用于拆分卷积层的工作负荷。但训练NN还包括小批(mb),其中NN可以使用全部使用相同权重(内核)来生成多个输出结果的不同输入训练数据(例如,不同训练图像)来训练。因此,mb是第五维度,其可以与其他四个维度一起使用以将卷积层的工作负荷表示为:N{Inp,Out,Nij,Kij,mb}。
可以使用不同尺寸表示其他类型的层。例如,当对NN中的全连接层执行矩阵乘法时,Nij和Kij值是1。在任何情况下,本文的实施例可以用于划分可以具有不同类型(和数量)的尺寸的不同类型的层。
图4是根据本文描述的一个实施例的用于确定用于在处理器阵列之间拆分NN层的执行的最优技术的方法400的流程图。在方框405,NN分配器在NN中选择层。在一个实施例中,方法400用于迭代通过NN中的每一层并选择最佳并行性技术。
在框410处,NN分配器确定用于拆分处理器的2D阵列上的层的执行的最佳技术。也就是说,NN分配器可以确定图1中所示的技术(数据并行性技术130、模型并行性技术135或混合并行性技术140)中的哪个是用于特定层的最佳技术。
在一个实施例中,处理器的2D阵列是其中处理器互连的2D环面。例如,处理器可在两个不同方向(例如,x/y或北/南)上通信地耦合到相邻处理器。在一个实施例中,处理器到处理器通信的带宽可以取决于方向而不同。例如,2D阵列可经设计以使得X方向上的处理器之间的通信具有比y方向上的处理器之间的通信高的带宽。下文在图5中描述用于选择在2D阵列中的处理器之间划分工作负载时使用的最佳技术的细节。
在方框415处,NN分配器确定NN中是否剩余附加层。也就是说,NN分配器确定其是否已经为NN中的每一层选择最佳并行性技术。如果否,则方法400返回到框405,但如果是,则方法前进到框420。
在框420,当训练NN时,NN分配器根据最佳技术将任务分配给2D处理器阵列。如果数据并行性或模型并行性是所选择的技术,则处理器通过根据这些技术传输数据来在两个方向上交换数据。即,如果选择了数据并行性,那么处理器在2D阵列的X和Y方向(也称为梯度方向)上交换权重/内核。如果选择了模型并行性,则处理器沿着两个方向交换输入特征。
然而,如果选择混合并行性技术,则处理器根据数据并行性在一个方向上交换数据,并且根据模型并行性在另一个方向上交换数据。因而,相对于具有较少带宽的另一方向上实施的技术,在具有较大带宽的2D阵列的方向上实施的并行性技术具有改善的性能。下文论述此折衷的细节。
图5是根据本文描述的一个实施例的用于选择混合并行性技术的方法500的流程图。方法500描述用于执行方法400中的块410以针对NN中的层选择最佳并行性技术的若干技术。为了清楚起见,与图6并行地描述方法500。
在框505处,性能估计器在使用多个并行性技术时估计层的性能。例如,在每个层,性能估计器可以使用模型或模拟来估计层将如何使用不同并行性技术(例如,数据并行性、模型并行性或混合并行性)中的每个在NN训练硬件上执行。
在一个实施例中,性能估计器可以使用启发法来限制被估计的技术的数量,而不是针对每个层建模或模拟每个并行性技术。例如,性能估计器可产生可用于快速确定应使用何种并行性技术的权重特征比。如果层根据预定义阈值具有比特征数据显著更多的权重数据,那么性能估计器可假定模型并行性是最佳并行性技术,而不执行任何进一步建模或模拟。相反,如果权重特征比指示该层具有比权重数据显著更多的特征数据,则数据并行性被认为是最优并行性技术。由此,性能估计器不需要针对每一层建模或测试每一并行性技术。
如上所述,2D处理器阵列可以包括多个维度,其中至少一个维度具有比另一个维度更大的用于处理器对处理器通信的带宽。图6图示根据本文描述的一个实施例的在2D阵列600中形成x环和y环的处理器的阵列。X环610指示处理器155用于在X方向上通信的通信链路,而y环605指示处理器155用于在Y方向上通信的通信链路。
在一个实施例中,2D阵列600可以包括用于形成x环和y环的通信链路的有限资源。2D阵列600具有用于x和y环的不同带宽,而不是为两个环分配相同数量的资源。即,2D阵列600是非对称阵列(或非对称环面),其中用于处理器到处理器通信的带宽根据数据传输的方向而不同。例如,每个处理器到处理器链路可以包括多个物理连接。为了向X环610指派比y环605多的带宽,相比于在Y方向上的处理器到处理器链路,2D阵列可具有分配给在X方向上的每个处理器到处理器链路的更多物理连接。因此,处理器155能够在X方向上(例如,到左侧和右侧上的相邻处理器)比在Y方向上(例如,到上方和下方的相邻处理器)更快地传输数据。这样做利用了本文描述的混合并行性技术,其中,当在X方向上在处理器155之间传送数据时可以使用较低效的并行性技术(以利用更大的带宽),而当在Y方向上在处理器155之间传送数据时使用较高效的并行性技术。然而,对于一些NN层,可能不是这种情况,并且在具有更大带宽的方向上使用更高效的并行性技术是最佳的。
尽管图2和6示出了处理器的2D阵列,但是实施例不限于此。如果使用处理器的N维阵列(其中N大于3)来实施NN,那么所述维度(或方向)中的至少一者可经设计以具有比至少一个其他维度大的带宽。照此,本文描述的实施例可用于选择混合并行性模型,其中不同维度使用不同的并行性技术。
返回方法500,在框510处,NN分配器使用在框505处生成的性能估计来确定数据或模型并行性是否是层的最佳并行性技术。如果是,则方法500前进到块515,其中NN分配器为该层分配数据或模型并行性技术。也就是说,当拆分任务并配置NN训练硬件时,使用相同的并行性技术(无论是数据模型并行性技术还是模型并行性技术)在2D阵列中在两个方向上传送数据。照此,在两个方向上使用相同并行性模型,即使所述方向中的一者可具有大于另一方向的带宽。
否则,方法500前进到方框520,在方框520中,NN分配器使用性能估计来确定当前正被评估的层是否是特征更重(而不是权重更重)。如上所述,在特征大于权重的NN层(例如,重层)中,数据并行性技术比模型并行性技术更高效。即,在一些NN中,每个输出特征需要整个输入通道。即,为了计算几个特征,每一处理器仍需要所述层的整个输入(例如,来自先前层的输出)。使用模型并行性,在所有处理器中复制输入或者在所有处理器上执行激活。由此,如果层是特征重层,则方法500前进到块535,其中NN分配器选择在2D阵列中具有最大带宽的方向上使用模型并行性技术。这样,激活的负面影响对NN的有效操作具有较小的影响,因为这些激活在具有较大带宽的处理器到处理器链路上传输。在框540,NN分配器选择在2D阵列中具有最小带宽量的方向上使用数据并行性技术。
相反,如果该层更是权重重层,则该方法从框520前进到框525,其中,NN分配器选择在2D阵列中具有最大带宽的方向上使用数据并行性技术;以及框530,其中,NN分配器选择在具有最小带宽的方向上使用模型并行性技术。由于在带宽较大的链路上使用数据并行性,降低了梯度减小的负面影响。以此方式,方法500指示使用两种不同的混合并行性技术。一个混合技术是块535和540,其中在处理器的阵列的较高带宽维度中使用模型并行性,并且在较低带宽维度中使用数据并行性,而另一个是块525和530,其中在处理器的阵列的较高带宽维度中使用数据并行性,并且在较低带宽维度中使用模型并行性。
然而,如上所述,对于特征重层在具有较大带宽的方向上使用数据并行性,或对于权重重层在具有较大带宽的方向上使用模型并行性,可能更有效。例如,虽然权重重,但长短期存储器(LSTM)层优选混合并行性,其中在具有较大带宽的方向上使用模型并行性,而在具有较小带宽的方向上使用数据并行性。在此状况下,梯度减小相当不频繁(仅在所有时间步长完成之后发生),并可在较慢方向链路上发生而不影响性能。
虽然在带宽不同的非对称阵列的上下文中讨论了方法500,但方法500还可用于X和Y方向上的带宽相同的对称处理器阵列中。例如,NN训练硬件可包括比要测试的小批更多的处理器。在这种情况下,仅使用数据并行性是低效的,因为NN分配器可以向每个处理器分配批(例如,图像)。在这种情况下,使用混合并行性模型可以提高效率。在另一示例中,NN分配器可能不具有足够的特征来分布到所有处理器(例如,Nout小于阵列中的处理器的数量)。由此,仅使用模型并行性可能是低效的,但是使用混合并行性模型来划分维度可能导致NN训练硬件的更高效的使用。在这些实例中,由于对称阵列中的方向具有相同带宽,因而哪个并行性用于哪个方向无关紧要。
图7示出了根据本文描述的一个实施例的用于为NN层选择并行性技术的矩阵700。矩阵700示出了四种并行性技术以及它们与彼此的关系。X轴表示在2D阵列的X方向上使用的平行技术,而y轴表示在2D阵列的Y方向上使用的平行技术。
“全数据”并行性技术是在拆分工作负荷时仅使用数据并行性的技术。照此,使用数据并行性来执行2D阵列的X方向和Y方向上的并行性。
“DataXModelY”并行性技术是第一混合并行性技术,其中,在2D阵列的X方向使用数据并行性,但是在2D阵列的Y方向使用模型并行性。
“ModelXDataY”并行性技术是第二混合并行性技术,其中,在2D阵列的X方向使用模型并行性,但是在2D阵列的Y方向使用数据并行性。
“全模型”并行性技术是在拆分工作负荷时仅使用模型并行性的技术。照此,使用模型并行性来执行2D阵列的X方向和Y方向上的并行性。
图8示出了根据本文描述的一个实施例的基于NN层的特征的并行性技术的排序。混合并行性技术表示数据和模型并行性技术的优点和缺点之间的折衷。对于作为主要特征重层的NN层,在2D阵列的两个方向上使用全数据并行性技术可能导致NN训练硬件的最有效使用。相反,对于主要作为权重重层的NN层,在2D阵列的两个方向上使用全模型并行性技术可能导致NN训练硬件的最有效使用。
使用混合并行性技术(即,DataXModelY和ModelXDataY)可以对于主要不是特征重或权重重的层改进相对于全数据或全模型技术的效率。即,对于落在这两个极端之间的层,使用混合并行性技术可能更有效。即,对于性能估计器确定为相比权重重更接近特征重的层,ModelXDataY混合并行性可导致改善的效率(假定2D阵列的X方向具有比Y方向多的带宽)。即,在X方向上执行模型并行性,而在Y方向上使用数据并行性。由此,这使得NN训练硬件能够减轻模型并行性的较慢输入激活的负面影响,因为它在带宽最大的X方向上执行,而在带宽较小的Y方向使用固有地更高效的数据并行性。例如,具有小特征尺寸的卷积层(例如,ResNet和GoogLeNet中的最后一组卷积层)(其稍微地特征重)优选ModelXDataY并行性以优化激活/误差旋转。
对于相比特征重更接近权重重的NN层,DataXModelY混合并行性可导致改善的效率,这是因为在具有更大带宽的方向(即,X方向)上执行数据并行性,这使得权重/梯度减小的负面影响最小化,而在具有更低带宽的方向上执行固有地更高效的模型并行性。例如,中等权重重的小型全连接层(例如,VGG/ResNet的最后一层)优选DataXModelY,因为它们实现沿着快速X方向链路的梯度减小。
已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。
在上文中,参考本公开中提出的实施方式。然而,本公开的范围不限于具体描述的实施例。相反,以下特征和元件的任何组合(无论是否涉及不同实施例)被考虑来实现和实践所考虑的实施例。此外,尽管本文所公开的实施例可实现优于其他可能的解决方案或优于现有技术的优点,但特定优点是否由给定实施例实现并不限制本公开的范围。因此,以上呈现的方面、特征、实施例和优点仅仅是说明性的并且不被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。同样,对“本发明”的引用不应被解释为在此所披露的任何发明主题的概括,并且不应被认为是所附权利要求的元素或限制,除非在权利要求中明确陈述。
本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储媒质(或多个媒质)。
计算机可读存储媒体可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储媒质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储媒质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)、以及常规的过程式程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储媒质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储媒质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
本发明的实施例可以通过云计算基础设施被提供给终端用户。云计算通常指的是通过网络将可扩展的计算资源作为服务提供。更正式地,云计算可以被定义为提供计算资源与其底层技术架构(例如,服务器、存储装置、网络)之间的抽象化的计算能力,从而实现对可配置计算资源的共享池的方便的、按需的网络访问,所述可配置计算资源可以用最小的管理努力或服务提供商交互来快速供应和释放。因此,云计算允许用户访问“云”中的虚拟计算资源(例如,存储、数据、应用和甚至完整的虚拟化计算系统),而不考虑用于提供计算资源的底层物理系统(或那些系统的位置)。
通常,云计算资源基于每次使用支付提供给用户,其中,用户仅针对实际使用的计算资源(例如,用户消耗的存储空间量或用户实例化的虚拟化系统的数量)被收费。用户可以在任何时间以及从跨互联网的任何地方访问驻留在云中的任何资源。在本发明的上下文中,用户可以访问应用(例如,NN分配器或性能估计器)或云中可用的相关数据。例如,NN分配器或性能估计器可以在云中的计算系统上执行,并为NN中的每个层选择最佳并行性技术。在这种情况下,NN分配器或性能估计器可以选择最佳技术,并且将这些选择存储在云中的存储位置处。这样做允许用户从附接到连接到云的网络(例如,互联网)的任何计算系统访问该信息。
虽然前述内容针对本发明的实施例,但是可以在不偏离本发明的基本范围的情况下设计本发明的其他和进一步的实施例,并且本发明的范围由所附权利要求确定。

Claims (20)

1.一种方法,包括:
选择用于将神经网络层的工作负载拆分到处理器阵列的混合并行性技术,其中所述处理器阵列中的每个处理器可在第一方向和第二方向上向相邻处理器传输数据;以及
使用所选择的混合并行性技术将对应于所述神经网络层的任务分配给所述处理器阵列,其中所述混合并行性技术包括当在所述第一方向上在所述处理器阵列中的处理器之间传输数据时使用第一并行性技术,以及当在所述第二方向上在所述处理器阵列中的处理器之间传输数据时使用不同的第二并行性技术。
2.根据权利要求1所述的方法,其中与在所述第二方向上在所述处理器之间传输数据时相比,当在所述第一方向上在所述处理器之间传输数据时,所述处理器阵列具有更大的带宽。
3.根据权利要求2所述的方法,进一步包括:
使用多个不同的混合并行性技术来估计所述神经网络层的性能;以及
基于所估计的性能来确定所述神经网络层是特征更重还是权重更重。
4.根据权利要求3所述的方法,进一步包括:
在确定神经网络层特征更重时,将模型并行性作为第一并行性技术,并将数据并行性作为第二并行性技术。
5.根据权利要求3所述的方法,进一步包括:
在确定神经网络层权重更重时,将数据并行性作为第一并行性技术,并将模型并行性作为第二并行性技术。
6.根据权利要求1所述的方法,其中所述处理器阵列形成2D环面,其中所述第一方向和所述第二方向是垂直的。
7.根据权利要求1所述的方法,其中对应于所述神经网络层的所述任务包括用于训练包含所述神经网络层的神经网络的训练数据。
8.根据权利要求7所述的方法,进一步包括:
使用多个不同的混合并行性技术来估计所述神经网络中的多个层的性能;以及
向所述多个层中的每个分配多个不同的混合并行性技术之一。
9.一种系统,包括:
处理器阵列;以及
神经网络分配器,被配置为:
选择用于将神经网络层的工作负载拆分到处理器阵列的混合并行性技术,其中所述处理器阵列中的每个处理器可在第一方向和第二方向上向相邻处理器传输数据;以及
使用所选择的混合并行性技术将对应于所述神经网络层的任务分配给所述处理器阵列,其中所述混合并行性技术包括当在所述第一方向上在所述处理器阵列中的处理器之间传输数据时使用第一并行性技术,以及当在所述第二方向上在所述处理器阵列中的处理器之间传输数据时使用不同的第二并行性技术。
10.根据权利要求9所述的系统,其中与在所述第二方向上在所述处理器之间传输数据时相比,当在所述第一方向上在所述处理器之间传输数据时,所述处理器阵列具有更大的带宽。
11.根据权利要求10所述的系统,其中所述神经网络分配器被配置为:
使用多个不同的混合并行性技术来估计所述神经网络层的性能;以及
基于所估计的性能来确定所述神经网络层是特征更重还是权重更重。
12.根据权利要求11所述的系统,其中所述神经网络分配器被配置为:
在确定神经网络层特征更重时,将模型并行性作为第一并行性技术,并将数据并行性作为第二并行性技术。
13.根据权利要求11所述的系统,其中所述神经网络分配器被配置为:
在确定神经网络层权重更重时,将数据并行性作为第一并行性技术,并将模型并行性作为第二并行性技术。
14.根据权利要求9所述的系统,其中所述处理器阵列形成2D环面,其中所述第一方向和所述第二方向是正交的。
15.一种计算机可读存储介质,具有随其包含的计算机可读程序代码,所述计算机可读程序代码能够由一个或多个计算机处理器执行以执行操作,所述操作包括:
选择用于将神经网络层的工作负载拆分到处理器阵列的混合并行性技术,其中所述处理器阵列中的每个处理器可在第一方向和第二方向上向相邻处理器传输数据;以及
使用所选择的混合并行性技术将对应于所述神经网络层的任务分配给所述处理器阵列,其中所述混合并行性技术包括当在所述第一方向上在所述处理器阵列中的处理器之间传输数据时使用第一并行性技术,以及当在所述第二方向上在所述处理器阵列中的处理器之间传输数据时使用不同的第二并行性技术。
16.根据权利要求15所述的计算机可读存储介质,其中与在所述第二方向上在所述处理器之间传输数据时相比,当在所述第一方向上在所述处理器之间传输数据时,所述处理器阵列具有更大的带宽。
17.根据权利要求16所述的计算机可读存储介质,其中所述操作包括:
使用多个不同的混合并行性技术来估计所述神经网络层的性能;以及
基于所估计的性能来确定所述神经网络层是特征更重还是权重更重。
18.根据权利要求17所述的计算机可读存储介质,其中所述操作包括:
在确定神经网络层特征更重时,将模型并行性作为第一并行性技术,并将数据并行性作为第二并行性技术。
19.根据权利要求17所述的计算机可读存储介质,其中所述操作包括:
在确定神经网络层权重更重时,将数据并行性作为第一并行性技术,并将模型并行性作为第二并行性技术。
20.根据权利要求15所述的计算机可读存储介质,其中所述处理器阵列形成2D环面,其中所述第一方向和所述第二方向是正交的。
CN202080065781.6A 2019-10-11 2020-09-29 用于高效深度学习的混合数据-模型并行性 Pending CN114424214A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/599,189 2019-10-11
US16/599,189 US11556450B2 (en) 2019-10-11 2019-10-11 Hybrid data-model parallelism for efficient deep learning
PCT/IB2020/059113 WO2021070006A1 (en) 2019-10-11 2020-09-29 Hybrid data-model parallelism for efficient deep learning

Publications (1)

Publication Number Publication Date
CN114424214A true CN114424214A (zh) 2022-04-29

Family

ID=75384038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080065781.6A Pending CN114424214A (zh) 2019-10-11 2020-09-29 用于高效深度学习的混合数据-模型并行性

Country Status (6)

Country Link
US (1) US11556450B2 (zh)
JP (1) JP7497946B2 (zh)
CN (1) CN114424214A (zh)
DE (1) DE112020004067T5 (zh)
GB (1) GB2604060B (zh)
WO (1) WO2021070006A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210158147A1 (en) * 2019-11-26 2021-05-27 International Business Machines Corporation Training approach determination for large deep learning models
US20220043769A1 (en) * 2020-07-21 2022-02-10 Fathom Radiant, PBC Toroidal Systolic Array Processor for General Matrix Multiplication (GEMM) With Local Dot Product Output Accumulation
US20220121928A1 (en) * 2020-10-19 2022-04-21 Google Llc Enhanced reconfigurable interconnect network
KR20220056621A (ko) * 2020-10-28 2022-05-06 삼성전자주식회사 매니코어 시스템을 위한 뉴럴 네트워크 모델 처리의 병렬화 방법 및 장치
CN114035936B (zh) * 2021-10-15 2024-05-17 北京潞晨科技有限公司 一种基于人工智能的多维并行处理方法、系统、设备和可读存储介质
CN114461400A (zh) * 2022-02-14 2022-05-10 北京百度网讯科技有限公司 数据处理的方法、装置、电子设备和存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747070B2 (en) 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
US9508347B2 (en) 2013-07-10 2016-11-29 Tencent Technology (Shenzhen) Company Limited Method and device for parallel processing in model training
WO2015157718A2 (en) * 2014-04-11 2015-10-15 Google Inc. Parallelizing the training of convolutional neural networks
US10089197B2 (en) 2014-12-16 2018-10-02 Intel Corporation Leverage offload programming model for local checkpoints
US9805303B2 (en) * 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US10540588B2 (en) * 2015-06-29 2020-01-21 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US11200664B2 (en) 2015-12-18 2021-12-14 The Regents Of The University Of California Interpretation and quantification of emergency features on head computed tomography
JP6784162B2 (ja) * 2016-12-13 2020-11-11 富士通株式会社 情報処理装置、プログラム及び情報処理方法
EP3367310A1 (en) 2017-02-28 2018-08-29 Fujitsu Limited Method and apparatus for parallelizing layers of deep neural networks onto parallel computing systems
US11023803B2 (en) * 2017-04-10 2021-06-01 Intel Corporation Abstraction library to enable scalable distributed machine learning
US11094029B2 (en) * 2017-04-10 2021-08-17 Intel Corporation Abstraction layers for scalable distributed machine learning
US11556772B2 (en) * 2017-04-28 2023-01-17 Intel Corporation Incremental precision networks using residual inference and fine-grain quantization
US11373266B2 (en) * 2017-05-05 2022-06-28 Intel Corporation Data parallelism and halo exchange for distributed machine learning
US11188820B2 (en) 2017-09-08 2021-11-30 International Business Machines Corporation Deep neural network performance analysis on shared memory accelerator systems
US12061990B2 (en) 2017-10-17 2024-08-13 Xilinx, Inc. Static block scheduling in massively parallel software defined hardware systems
US20190164035A1 (en) * 2017-11-29 2019-05-30 Electronics And Telecommunications Research Institute Device for reorganizable neural network computing
CN109919308B (zh) * 2017-12-13 2022-11-11 腾讯科技(深圳)有限公司 一种神经网络模型部署方法、预测方法及相关设备
US11270201B2 (en) * 2017-12-29 2022-03-08 Intel Corporation Communication optimizations for distributed machine learning
WO2019165946A1 (zh) 2018-02-27 2019-09-06 上海寒武纪信息科技有限公司 集成电路芯片装置、板卡及相关产品
CN108647773B (zh) 2018-04-20 2021-07-23 复旦大学 一种可重构卷积神经网络的硬件互连系统
US20200019836A1 (en) * 2018-07-12 2020-01-16 International Business Machines Corporation Hierarchical parallelism in a network of distributed neural network cores
EP3654247A1 (en) * 2018-11-15 2020-05-20 IMEC vzw Convolution engine for neural networks
CN110163338B (zh) * 2019-01-31 2024-02-02 腾讯科技(深圳)有限公司 具有运算阵列的芯片运算方法、装置、终端及芯片

Also Published As

Publication number Publication date
US11556450B2 (en) 2023-01-17
US20210110247A1 (en) 2021-04-15
WO2021070006A1 (en) 2021-04-15
GB2604060B (en) 2024-10-16
GB202206096D0 (en) 2022-06-08
JP2022552803A (ja) 2022-12-20
DE112020004067T5 (de) 2022-05-19
GB2604060A (en) 2022-08-24
JP7497946B2 (ja) 2024-06-11

Similar Documents

Publication Publication Date Title
US11556450B2 (en) Hybrid data-model parallelism for efficient deep learning
US11960566B1 (en) Reducing computations for data including padding
US20180018197A1 (en) Virtual Machine Resource Allocation Method and Apparatus
US20190394132A1 (en) System and Method for Network Slicing for Service-Oriented Networks
US8065503B2 (en) Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process
US20180152361A1 (en) Distributed assignment of video analytics tasks in cloud computing environments to reduce bandwidth utilization
CN110058936B (zh) 用于确定专用处理资源的资源量的方法、设备和计算机程序产品
Tessier et al. Topology-aware data aggregation for intensive I/O on large-scale supercomputers
CN115460216A (zh) 算力资源调度方法和装置、算力资源调度设备、系统
US20210097396A1 (en) Neural network training in a distributed system
CN111782385A (zh) 用于处理任务的方法、电子设备和计算机程序产品
KR102238600B1 (ko) 스케쥴러 컴퓨팅 장치, 그것을 포함하는 분산 컴퓨팅 시스템의 데이터 노드 및 그것의 방법
US9753769B2 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
CN109729110B (zh) 管理专用处理资源的方法、设备以及计算机可读介质
CN109412865A (zh) 一种虚拟网络资源分配方法、系统及电子设备
Ibrahim et al. Extending Data Flow Architectures for Convolutional Neural Networks to Multiple FPGAs
US10713581B2 (en) Parallelization and synchronization of procedures to enable overhead hiding
CN114201727A (zh) 数据的处理方法、处理器、人工智能芯片及电子设备
CN113841132A (zh) 用于主机设备接口的非对称数据通信
US20210081254A1 (en) Dynamic integration flows in hybrid cloud environments
KR20150137796A (ko) 모바일 컴퓨팅 환경에서의 자원할당 및 데이터 분배를 최적화하는 방법
CN118095351B (zh) 层归一化计算的协同处理装置及方法
US11442794B1 (en) Event assignment for synchronization of concurrent execution engines
CN118312327B (zh) 硬件资源分配方法、电子设备与存储介质
Somasundaram et al. Virtual machine placement optimization in SDN-aware federated clouds

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