CN113377546B - 通信避免方法、装置、电子设备和存储介质 - Google Patents

通信避免方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113377546B
CN113377546B CN202110782183.7A CN202110782183A CN113377546B CN 113377546 B CN113377546 B CN 113377546B CN 202110782183 A CN202110782183 A CN 202110782183A CN 113377546 B CN113377546 B CN 113377546B
Authority
CN
China
Prior art keywords
matrix
neural network
network model
training
loss function
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.)
Active
Application number
CN202110782183.7A
Other languages
English (en)
Other versions
CN113377546A (zh
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.)
Hyperai Cloud Technology Beijing Co ltd
Original Assignee
Hyperai Cloud Technology Beijing Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hyperai Cloud Technology Beijing Co ltd filed Critical Hyperai Cloud Technology Beijing Co ltd
Priority to CN202110782183.7A priority Critical patent/CN113377546B/zh
Publication of CN113377546A publication Critical patent/CN113377546A/zh
Application granted granted Critical
Publication of CN113377546B publication Critical patent/CN113377546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Abstract

本申请的实施例提供了一种通信避免方法、装置、电子设备和存储介质,该方法包括:确定训练神经网络模型每层的计算过程的统一表达形式;基于涉及训练神经网络模型的计算过程的所有进程数量,将变量矩阵重复Pr次且使每个进程持有变量矩阵的1/Pc块、参数矩阵重复Pc次且使每个进程持有参数矩阵的1/Pr块;基于统一表达形式、变量矩阵的划分结果以及参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得通信复杂度最优,以通信复杂度最优的方式来进行通信。本申请能够有效减少处理器间通信量。

Description

通信避免方法、装置、电子设备和存储介质
技术领域
本申请的实施例涉及通信技术领域,尤其涉及一种通信避免方法、装置、电子设备和存储介质。
背景技术
目前神经网络模型训练的算法研究已得到了发展,但是其通信优化仍是研究难点,也是提升计算性能的关键。由于神经网络模型训练涉及大量数据样本传输与模型参数更新,因此处理器间的数据传输十分频繁。
一方面,为了减少处理间的分布式通信开销,目前最具代表性的方法有“量化”、“剪枝”和“梯度压缩”等。这些方法的核心思想是通过减少每次通信中发送数据的大小来降低通信量。虽然它们在目前的模型训练中被广泛采用,但是这些方法都会或多或少地以牺牲计算精度为代价,并且有时需要某些特殊的预处理来保证模型的准确性。
另一方面,为了获得更高的计算效率,“数据并行”、“模型并行”等多种并行策略被陆续提出,并得到了深入的研究。研究的重点主要关注的是通过寻找计算操作与通信操作的最佳适配来重叠通信与计算、掩盖延迟开销从而获得较高的计算性能。
然而,由于神经网络的训练过程中数据传递操作频繁、数据传输时间占比大,因此试图通过重叠通信操作与计算操作来提升扩展性的现有技术难以取得较好的优化效果。此外,值得一提的是,大部分并行训练优化的研究工作几乎都只是考虑一些相对简化的模型和比较简单的情况。针对大模型训练的并行优化,并行策略的设计几乎全凭经验,并且相关工作并没有解决如何有效减少通信次数的瓶颈问题。
发明内容
为了改善训练神经网络模型时的通信复杂度,本申请的实施例提供了一种通信避免方法、装置、电子设备和存储介质。
在第一方面,本申请提供了一种通信避免方法,包括:
确定训练神经网络模型每层的计算过程的统一表达形式,所述统一表达形式为变量矩阵和参数矩阵的相互关系;
基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复Pr次且使每个进程持有所述变量矩阵的1/Pc块、所述参数矩阵重复Pc次且使每个进程持有所述参数矩阵的1/Pr块,其中Pc和Pr的乘积等于所有进程数量;
基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得所述通信复杂度最优,以所述通信复杂度最优的方式来进行通信。
在一种可能的实现方式中,所述确定训练神经网络模型每层的计算过程的统一表达形式包括:
确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
Figure GDA0003395349780000021
Figure GDA0003395349780000022
Figure GDA0003395349780000023
其中,
Figure GDA0003395349780000024
的每列表示神经网络模型第i层的输入变量,
Figure GDA0003395349780000025
的每列表示神经网络模型第i层的输出变量,
Figure GDA0003395349780000026
的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
Figure GDA0003395349780000031
Figure GDA0003395349780000032
其中,
Figure GDA0003395349780000033
为损失函数关于输入变量矩阵的梯度矩阵,
Figure GDA0003395349780000037
为损失函数关于输出变量矩阵的梯度矩阵,
Figure GDA0003395349780000034
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵;
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
确定Yi=WiXi
Figure GDA0003395349780000035
以及
Figure GDA0003395349780000036
为训练神经网络模型每层的计算过程的统一表达形式。
在一种可能的实现方式中,所述基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复Pr次且使每个进程持有所述变量矩阵的1/Pc块、所述参数矩阵重复Pc次且使每个进程持有所述参数矩阵的1/Pr块包括:
将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;
将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;
将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;
将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
在一种可能的实现方式中,所述基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度包括:
通过下式确定所述通信复杂度:
Figure GDA0003395349780000041
其中,T为通信复杂度,L为神经网络模型的层数,P为涉及训练神经网络模型的计算过程的所有进程数,α为网络延迟,β为带宽的倒数,B为Batch中元素的个数,Batch为随机索引指标集,di为神经网络模型的神经元个数,|Wi|为神经网络模型第i层中模型参数的总数。
在第二方面,本申请提供了一种通信避免装置,包括:
确定模块,用于确定训练神经网络模型每层的计算过程的统一表达形式,所述统一表达形式为变量矩阵和参数矩阵的相互关系;
划分模块,用于基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复Pr次且使每个进程持有所述变量矩阵的1/Pc块、所述参数矩阵重复Pc次且使每个进程持有所述参数矩阵的1/Pr块,其中Pc和Pr的乘积等于所有进程数量;
调整模块,用于基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得所述通信复杂度最优,以所述通信复杂度最优的方式来进行通信。
在一种可能的实现方式中,所述确定模块具体用于:
确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
Figure GDA0003395349780000051
Figure GDA0003395349780000052
Figure GDA0003395349780000053
其中,
Figure GDA0003395349780000054
的每列表示神经网络模型第i层的输入变量,
Figure GDA0003395349780000055
的每列表示神经网络模型第i层的输出变量,
Figure GDA0003395349780000056
的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
Figure GDA0003395349780000057
Figure GDA0003395349780000058
其中,
Figure GDA0003395349780000059
为损失函数关于输入变量矩阵的梯度矩阵,
Figure GDA00033953497800000510
为损失函数关于输出变量矩阵的梯度矩阵,
Figure GDA00033953497800000511
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵;
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
确定Yi=WiXi
Figure GDA00033953497800000512
以及
Figure GDA00033953497800000513
为训练神经网络模型每层的计算过程的统一表达形式。
在一种可能的实现方式中,所述划分模块具体用于:
将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;
将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;
将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;
将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
在一种可能的实现方式中,通过下式确定所述通信复杂度:
Figure GDA0003395349780000061
其中,T为通信复杂度,L为神经网络模型的层数,P为涉及训练神经网络模型的计算过程的所有进程数,α为网络延迟,β为带宽的倒数,B为Batch中元素的个数,Batch为随机索引指标集,di为神经网络模型的神经元个数,|Wi|为神经网络模型第i层中模型参数的总数。
在第三方面,本申请提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现上述任一项所述的方法。
在第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述中任一项所述的方法。
在本申请的实施例提供的通信避免方法、装置、电子设备和存储介质中,首先确定训练神经网络模型每层的计算过程的统一表达形式,然后基于涉及训练神经网络模型的计算过程的所有进程数量,将变量矩阵重复Pr次且使每个进程持有变量矩阵的1/Pc块、参数矩阵重复Pc次且使每个进程持有参数矩阵的1/Pr块,最后基于统一表达形式、变量矩阵的划分结果以及参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得通信复杂度最优,以通信复杂度最优的方式来进行通信,从而能够有效减少处理器间通信量。
应当理解,发明内容部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本申请的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本申请的实施例的通信避免方法的流程图。
图2示出了根据本申请的实施例的一种运算方式的实现示意图。
图3示出了根据本申请的实施例的另一种运算方式的实现示意图。
图4示出了根据本申请的实施例的又一种运算方式的实现示意图。
图5示出了根据本申请的实施例的通信避免装置的方框图。
图6示出了适于用来实现本申请实施例的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了提升卷积神经网络在图像识别、语义理解等方面的表达能力与准确性,扩大模型的参数规模和增加训练数据样本已经成为深度学习技术发展的一个重要方向。随着模型参数和数据样本的不断增加,单台计算机逐渐无法在预期的时间内完成大型模型的计算。为了提升计算效率,一种自然的想法是把计算任务分布到由网络连接的多台机器上。因此,分布式并行计算技术为实现大模型的训练提供了契机。
近年来,基于图形处理器(GPU,Graphics Processing Unit)的分布式体系架构已被广泛应用于大规模神经网络的训练。由于GPU计算能力的不断提升,数据传输的速度已远远赶不上计算速度,而卷积神经网络训练涉及的数据传输开销通常十分巨大,所以通信效率已经成为了影响神经网络计算能力提升的关键。因此,为了应对分布式深度学习发展的计算需求,从数据传输的视角优化卷积神经网络的训练过程,已成为当务之急。
从数据传输的视角来看多个处理器的协同计算过程,我们发现处理器间的通信过程(数据在不同处理器的内存间传递的过程)几乎决定了模型训练的效率。随着GPU数量的增加,通信时间逐渐占据了运行时间的主要部分,并且通信时间与计算时间的比值呈现急剧增长的趋势。此外,当我们基于ImageNet数据集利用100个处理器(GPU)来训练AlexNet、VGG-16、Inception-V4、ResNet-50卷积神经网络时,在批处理数(Batch Size)设置为104的前提下,AlexNet和VGG-16的训练通常需要9600次迭代,而ResNet-50和Inception-V4分别需要15600次和19200次迭代。基于数据并行计算策略,AlexNet、VGG-16、ResNet-50和Inception-V4的整个训练过程分别需要在处理器间传输0.24、0.51、0.16和0.33PetaBytes的数据。巨大的通信量给网络带宽带来了巨大的压力,并且随着处理器数量的不断增加将成为严重制约训练并行效率的瓶颈。因此,随着计算规模的扩大,通信优化将是提升卷积神经网络计算性能的关键。
由于硬件发展受经济和物理定律所限,所以从算法层次上研究卷积神经网络训练的通信优化十分必要。几十年来,超级计算机的计算能力已经远远超过了其传递数据的能力。然而,当今硬件的发展趋势,例如使用多核加速器,进一步扩大了数据传输能力与浮点运算能力的差距。浮点计算性能随着处理器中晶体管数目的增加而提高;带宽的提升则主要依赖于硬件代价(电线、管脚、磁盘等的数量)和能耗的增加;而延迟是最难减少的,它经常受限于物理定律。因此,从算法层面对训练过程中的数据传递进行优化,为突破性能瓶颈提供了切实可行的解决方案。
算法的通信避免对于计算系统的性能提升和能耗降低意义重大。随着GPU数量的增加,模型训练的通信时间与计算时间比值急剧增长,因此试图通过重叠通信操作与计算操作来提升扩展性的传统方法难以取得较好的优化效果,而发展通信避免技术可以为卷积神经网络计算的并行优化提供新思路。
综上所述,目前分布式卷积神经网络训练的发展主要受限于其计算方法的并行效率,而其性能的瓶颈主要在于传递数据多、通信次数频繁、通信时间占比大。因此,本申请提供了一种通信避免方法,来改善神经网络训练过程中的通信复杂度。
图1示出了根据本申请的实施例的通信避免方法的流程图。参见图1,该方法包括以下步骤:
步骤101,确定训练神经网络模型每层的计算过程的统一表达形式,统一表达形式为变量矩阵和参数矩阵的相互关系。
在一些实施例中,神经网络模型每层的计算过程的统一表达形式可以表示为如下:
Yi=WiXi
Figure GDA0003395349780000091
Figure GDA0003395349780000101
其中,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,
Figure GDA0003395349780000102
为损失函数关于输入变量矩阵的梯度矩阵,
Figure GDA0003395349780000103
为损失函数关于输出变量矩阵的梯度矩阵,
Figure GDA0003395349780000104
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵,i为神经网络模型的层数。
下面结合一个具体的例子来说明神经网络模型每层的计算过程的统一表达形式的确定方法。
神经网络模型的训练本质上是一个寻找最优参数的过程。示例地,对于N个经验样本,当模型参数w被随机初始化后,随机梯度下降算法(SGD:Stochastic GradientDescent)将通过迭代的方式来更新参数,即:
Figure GDA0003395349780000105
其中,i为[1,N]中随机选择的下标索引,η为学习率,f为损失函数。
在实际应用中,使用mini-batch SGD方法在每次迭代时随机选取一个索引指标集Batch,然后利用相应fi的梯度(其中i∈Batch)来更新参数w,即:
Figure GDA0003395349780000106
其中,B为集合Batch中元素的个数。
在基于随机梯度下降算法的训练过程中,每次迭代更新都需要一个前向传递过程和一个后向传递过程。
前向传递主要涉及在给定的模型参数下,神经网络模型输出结果和相应损失函数的计算,而后向传递主要关系到损失函数梯度的计算。
在确定训练神经网络模型每层的计算过程的统一表达形式时,首先确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
Figure GDA0003395349780000111
Figure GDA0003395349780000112
Figure GDA0003395349780000113
其中,
Figure GDA0003395349780000114
的每列表示神经网络模型第i层的输入变量,
Figure GDA0003395349780000115
的每列表示神经网络模型第i层的输出变量,
Figure GDA0003395349780000116
的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集。
然后确定训练神经网络模型过程中反向传递的表达形式为:
Figure GDA0003395349780000117
其中,
Figure GDA0003395349780000118
为损失函数关于输入变量矩阵的梯度矩阵,
Figure GDA0003395349780000119
为损失函数关于输出变量矩阵的梯度矩阵,
Figure GDA00033953497800001110
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵。
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么最后确定
Yi=WiXi
Figure GDA00033953497800001111
Figure GDA00033953497800001112
为训练神经网络模型每层的计算过程的统一表达形式。
步骤102,基于涉及训练神经网络模型的计算过程的所有进程数量,将变量矩阵重复Pr次且使每个进程持有变量矩阵的1/Pc块、参数矩阵重复Pc次且使每个进程持有参数矩阵的1/Pr块。
在本申请实施例中,涉及训练神经网络模型的计算过程的所有进程数量P、Pr和Pc满足关系:P=Pr×Pc
在本申请实施例中,将变量矩阵重复Pr次且使每个进程持有变量矩阵的1/Pc块、参数矩阵重复Pc次且使每个进程持有参数矩阵的1/Pr块可以采用如下方式:
将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;
将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;
将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;
将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
步骤103,基于统一表达形式、变量矩阵的划分结果以及参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得通信复杂度最优,以通信复杂度最优的方式来进行通信。
需要说明的是,在模型并行计算策略下,由于每个进程只存储了部分模型参数,因此每个进程只能基于输入变量得到部分输出变量。完整输出变量的获得需要进一步利用all-gather通信来完成。
参见图2,模型并行主要是对参数矩阵Wi进行分块存储和更新,而对输入变量Xi和输出变量Yi则是在多个进程上进行多次复制。
假设卷积网络中的某一层由YC个kh×kw×XC卷积组成,其中kh、kw表示每个卷积滤波器的高度和宽度,XC、YC是输入和输出通道的个数。在模型并行的情况下,整个计算任务被分解,并分配给P个进程。每个进程获得YC/P个过滤器,并计算相应输出结果中的YC/P个通道。
由于卷积层的计算需要访问前一层的所有变量,所以在每一层都需要执行全局集合通信。此外,反向传播还需要在ΔX的计算过程中进行一次全局归约操作。因此,模型并行的通信复杂性可以表示为:
Figure GDA0003395349780000131
其中,P是进程数,L是神经网络模型的层数,α是网络延迟,β是带宽的倒数。
上式中,第一个求和运算考虑的是每层计算所需all-gather的成本,而第二个求和运算考虑的是后向传递中all-reduce的成本。
由于不需要在第一层做后向传递,因此第二个求和是从i=2开始。以上通信复杂度的分析结果基于一个假定,即使用Bruck算法进行all-gather和利用ring算法实现all-reduce。
由此可知,模型并行的通信复杂性依赖于mini-batch的大小。
还需要说明的是,对于数据并行的情况,每个进程独立地进行梯度的计算。当进程算得各自的局部梯度后,all-reduce操作将会被用来得到梯度和。
参见图3,与模型并行的不同之处在于,数据并行主要是对输入变量Xi和输出变量Yi进行分块存储和分布式管理,而在多个进程上对参数矩阵Wi进行多次复制。此方法的通信成本主要是计算
Figure GDA0003395349780000132
所需all-reduce的通信开销。因此,数据并行方法的通信复杂度为:
Figure GDA0003395349780000133
其中,|Wi|表示第i层中模型参数的总数。
对于P>>1,带宽开销与P无关。
与模型并行不同,数据并行的通信复杂度不依赖于批量数B的大小。目前关于神经网络模型训练的大部分工作都是使用数据并行策略来实现可扩展训练。
由此可知,对于卷积层,模型并行和数据并行之间通信量比值为:
Figure GDA0003395349780000141
因此,当B>(2|Wi|/3di)时,数据并行将优于模型并行。然而,数据并行并不总是优于模型并行。对于实际应用中的某些卷积层,模型并行比数据并行有时候会具有更低的通信复杂度。
参见图4,本申请实施例采用结合数据并行和模型并行的方式进行通信时,此种通信方式下的通信复杂度为:
Figure GDA0003395349780000142
其中,T为通信复杂度,L为神经网络模型的层数,P为涉及训练神经网络模型的计算过程的所有进程数,α为网络延迟,β为带宽的倒数,B为Batch中元素的个数,Batch为随机索引指标集,di为神经网络模型的神经元个数,|Wi|为神经网络模型第i层中模型参数的总数。
在本申请实施例中,在确定通信复杂度之后,在给定固定批量数B的情况下,可以调整Pc和Pr使得通信复杂度最优,并采用调整后的Pc和Pr来进行通信。
根据本申请的实施例,首先确定训练神经网络模型每层的计算过程的统一表达形式,然后基于涉及训练神经网络模型的计算过程的所有进程数量,将变量矩阵重复Pr次且使每个进程持有变量矩阵的1/Pc块、参数矩阵重复Pc次且使每个进程持有参数矩阵的1/Pr块,最后基于统一表达形式、变量矩阵的划分结果以及参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得通信复杂度最优,以通信复杂度最优的方式来进行通信,从而能够有效减少处理器间通信量。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。
图5示出了根据本申请的实施例的通信避免装置的方框图。参见图5,该装置包括确定模块501、划分模块502和调整模块503。
确定模块501,用于确定训练神经网络模型每层的计算过程的统一表达形式,统一表达形式为变量矩阵和参数矩阵的相互关系。
划分模块502,用于基于涉及训练神经网络模型的计算过程的所有进程数量,将变量矩阵重复Pr次且使每个进程持有变量矩阵的1/Pc块、参数矩阵重复Pc次且使每个进程持有参数矩阵的1/Pr块,其中Pc和Pr的乘积等于所有进程数量。
调整模块503,用于基于统一表达形式、变量矩阵的划分结果以及参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得通信复杂度最优。
在一些实施例中,确定模块501具体用于:
确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
Figure GDA0003395349780000161
Figure GDA0003395349780000162
Figure GDA0003395349780000163
其中,
Figure GDA0003395349780000164
的每列表示神经网络模型第i层的输入变量,
Figure GDA0003395349780000165
的每列表示神经网络模型第i层的输出变量,
Figure GDA0003395349780000166
的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
Figure GDA0003395349780000167
Figure GDA0003395349780000168
其中,
Figure GDA0003395349780000169
为损失函数关于输入变量矩阵的梯度矩阵,
Figure GDA00033953497800001610
为损失函数关于输出变量矩阵的梯度矩阵,
Figure GDA00033953497800001611
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵;
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
确定Yi=WiXi
Figure GDA00033953497800001612
以及
Figure GDA00033953497800001613
为训练神经网络模型每层的计算过程的统一表达形式。
在一些实施例中,划分模块502具体用于:将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
在一些实施例中,通过下式确定所述通信复杂度:
Figure GDA0003395349780000171
其中,T为通信复杂度,L为神经网络模型的层数,P为涉及训练神经网络模型的计算过程的所有进程数,α为网络延迟,β为带宽的倒数,B为Batch中元素的个数,Batch为随机索引指标集,di为神经网络模型的神经元个数,|Wi|为神经网络模型第i层中模型参数的总数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例中提供了一种电子设备,如图6所示,图6所示的电子设备600包括:处理器601和存储器603。其中,处理器601和存储器603相连,如通过总线602相连。可选地,电子设备600还可以包括收发器604。需要说明的是,实际应用中收发器604不限于一个,该电子设备600的结构并不构成对本申请实施例的限定。
处理器601可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器601也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线602可包括一通路,在上述组件之间传送信息。总线602可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器603用于存储执行本申请方案的应用程序代码,并由处理器601来控制执行。处理器601用于执行存储器603中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

Claims (6)

1.一种通信避免方法,其特征在于,包括:
确定训练神经网络模型每层的计算过程的统一表达形式,所述统一表达形式为变量矩阵和参数矩阵的相互关系;
基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复Pr次且使每个进程持有所述变量矩阵的1/Pc块、所述参数矩阵重复Pc次且使每个进程持有所述参数矩阵的1/Pr块,其中Pc和Pr的乘积等于所有进程数量;
基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得所述通信复杂度最优,以所述通信复杂度最优的方式来进行通信;
其中,所述确定训练神经网络模型每层的计算过程的统一表达形式包括:
确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
Figure FDA0003395349770000011
其中,
Figure FDA0003395349770000012
的每列表示神经网络模型第i层的输入变量,
Figure FDA0003395349770000013
的每列表示神经网络模型第i层的输出变量,
Figure FDA0003395349770000014
的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi 为神经网络模型的输出变量矩阵,Wi 为神经网络模型的权重参数矩阵,Xi 为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di 为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
Figure FDA0003395349770000015
其中,
Figure FDA0003395349770000021
为损失函数关于输入变量矩阵的梯度矩阵,
Figure FDA0003395349770000022
为损失函数关于输出变量矩阵的梯度矩阵,
Figure FDA0003395349770000023
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵;
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
确定Yi=WiXi
Figure FDA0003395349770000024
以及
Figure FDA0003395349770000025
为训练神经网络模型每层的计算过程的统一表达形式;
其中,所述基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度包括:
通过下式确定所述通信复杂度:
Figure FDA0003395349770000026
其中,T为通信复杂度,L为神经网络模型的层数,P为涉及训练神经网络模型的计算过程的所有进程数,α为网络延迟,β为带宽的倒数,B为Batch中元素的个数,Batch为随机索引指标集,di 为神经网络模型的神经元个数,∣Wi ∣为神经网络模型第i层中模型参数的总数。
2.根据权利要求1所述的方法,其特征在于,所述基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复Pr次且使每个进程持有所述变量矩阵的1/Pc块、所述参数矩阵重复Pc次且使每个进程持有所述参数矩阵的1/Pr块包括:
将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;
将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;
将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;
将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
3.一种通信避免装置,其特征在于,包括:
确定模块,用于确定训练神经网络模型每层的计算过程的统一表达形式,所述统一表达形式为变量矩阵和参数矩阵的相互关系;
划分模块,用于基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复Pr次且使每个进程持有所述变量矩阵的1/Pc块、所述参数矩阵重复Pc次且使每个进程持有所述参数矩阵的1/Pr块,其中Pc和Pr的乘积等于所有进程数量;
调整模块,用于基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度,并调整Pc和Pr使得所述通信复杂度最优,以所述通信复杂度最优的方式来进行通信;
其中,所述确定模块具体用于:
确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
Figure FDA0003395349770000031
其中,
Figure FDA0003395349770000041
的每列表示神经网络模型第i层的输入变量,
Figure FDA0003395349770000042
的每列表示神经网络模型第i层的输出变量,
Figure FDA0003395349770000043
的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
Figure FDA0003395349770000044
其中,
Figure FDA0003395349770000045
为损失函数关于输入变量矩阵的梯度矩阵,
Figure FDA0003395349770000046
为损失函数关于输出变量矩阵的梯度矩阵,
Figure FDA0003395349770000047
为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵;
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
确定Yi=WiXi
Figure FDA0003395349770000048
以及
Figure FDA0003395349770000049
为训练神经网络模型每层的计算过程的统一表达形式;
其中,通过下式确定所述通信复杂度:
Figure FDA00033953497700000410
其中,T为通信复杂度,L为神经网络模型的层数,P为涉及训练神经网络模型的计算过程的所有进程数,α为网络延迟,β为带宽的倒数,B为Batch中元素的个数,Batch为随机索引指标集,di为神经网络模型的神经元个数,|Wi|为神经网络模型第i层中模型参数的总数。
4.根据权利要求3所述的装置,其特征在于,所述划分模块具体用于:
将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;
将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;
将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;
将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
5.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1或2中任一项所述的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1或2中任一项所述的方法。
CN202110782183.7A 2021-07-12 2021-07-12 通信避免方法、装置、电子设备和存储介质 Active CN113377546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110782183.7A CN113377546B (zh) 2021-07-12 2021-07-12 通信避免方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110782183.7A CN113377546B (zh) 2021-07-12 2021-07-12 通信避免方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN113377546A CN113377546A (zh) 2021-09-10
CN113377546B true CN113377546B (zh) 2022-02-01

Family

ID=77581689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110782183.7A Active CN113377546B (zh) 2021-07-12 2021-07-12 通信避免方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113377546B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070117A (zh) * 2019-04-08 2019-07-30 腾讯科技(深圳)有限公司 一种数据处理方法及装置
CN111698789A (zh) * 2019-03-15 2020-09-22 华为技术有限公司 通信系统中的调度方法、装置及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10832120B2 (en) * 2015-12-11 2020-11-10 Baidu Usa Llc Systems and methods for a multi-core optimized recurrent neural network
US10565500B2 (en) * 2016-12-20 2020-02-18 Intel Corporation Unsupervised learning using neuromorphic computing
US10228937B2 (en) * 2016-12-30 2019-03-12 Intel Corporation Programmable matrix processing engine
EP3794515A1 (en) * 2018-05-17 2021-03-24 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Concepts for distributed learning of neural networks and/or transmission of parameterization updates therefor
CN109472361B (zh) * 2018-11-13 2020-08-28 钟祥博谦信息科技有限公司 神经网络优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111698789A (zh) * 2019-03-15 2020-09-22 华为技术有限公司 通信系统中的调度方法、装置及存储介质
CN110070117A (zh) * 2019-04-08 2019-07-30 腾讯科技(深圳)有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN113377546A (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
EP4036724A1 (en) Method for splitting neural network model by using multi-core processor, and related product
Higham et al. Squeezing a matrix into half precision, with an application to solving linear systems
JP7430744B2 (ja) 機械学習モデルを改良して局所性を改善させること
US20220121903A1 (en) Method of performing splitting in neural network model by means of multi-core processor, and related product
Stevens et al. Manna: An accelerator for memory-augmented neural networks
EP4006788A1 (en) Quantum circuit determining method and apparatus, device, and storage medium
CN109472361A (zh) 神经网络优化方法
US20210350230A1 (en) Data dividing method and processor for convolution operation
US11429849B2 (en) Deep compressed network
CN110689045A (zh) 一种深度学习模型的分布式训练方法及装置
CN109902821B (zh) 一种数据处理方法、装置及相关组件
Yan et al. FPGAN: an FPGA accelerator for graph attention networks with software and hardware co-optimization
Dey et al. Accelerating training of deep neural networks via sparse edge processing
US20200311511A1 (en) Accelerating neuron computations in artificial neural networks by skipping bits
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
CN113377546B (zh) 通信避免方法、装置、电子设备和存储介质
WO2021151056A1 (en) Computer-implemented methods and systems for compressing recurrent neural network (rnn) models and accelerating rnn execution in mobile devices to achieve real-time inference
US10990525B2 (en) Caching data in artificial neural network computations
CN112561049A (zh) 一种基于忆阻器的dnn加速器的资源分配方法及装置
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
CN113986816B (zh) 可重构计算芯片
CN113177632B (zh) 一种基于流水线并行的模型训练方法、装置以及设备
CN111260036B (zh) 一种神经网络加速方法和装置
CN117114055B (zh) 面向工业应用场景的fpga二值神经网络加速方法
WO2020194032A1 (en) Accelerating neuron computations in artificial neural networks by skipping bits

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant