CN113377546B - 通信避免方法、装置、电子设备和存储介质 - Google Patents
通信避免方法、装置、电子设备和存储介质 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, 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)
其中,的每列表示神经网络模型第i层的输入变量,的每列表示神经网络模型第i层的输出变量,的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
在一种可能的实现方式中,所述基于涉及训练神经网络模型的计算过程的所有进程数量,将所述变量矩阵重复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块。
在一种可能的实现方式中,所述基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度包括:
通过下式确定所述通信复杂度:
其中,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)
其中,的每列表示神经网络模型第i层的输入变量,的每列表示神经网络模型第i层的输出变量,的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
在一种可能的实现方式中,所述划分模块具体用于:
将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;
将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;
将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;
将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;
将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
在一种可能的实现方式中,通过下式确定所述通信复杂度:
其中,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
其中,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,为损失函数关于输入变量矩阵的梯度矩阵,为损失函数关于输出变量矩阵的梯度矩阵,为损失函数关于神经网络模型每层的权重参数矩阵的梯度矩阵,i为神经网络模型的层数。
下面结合一个具体的例子来说明神经网络模型每层的计算过程的统一表达形式的确定方法。
神经网络模型的训练本质上是一个寻找最优参数的过程。示例地,对于N个经验样本,当模型参数w被随机初始化后,随机梯度下降算法(SGD:Stochastic GradientDescent)将通过迭代的方式来更新参数,即:
其中,i为[1,N]中随机选择的下标索引,η为学习率,f为损失函数。
在实际应用中,使用mini-batch SGD方法在每次迭代时随机选取一个索引指标集Batch,然后利用相应fi的梯度(其中i∈Batch)来更新参数w,即:
其中,B为集合Batch中元素的个数。
在基于随机梯度下降算法的训练过程中,每次迭代更新都需要一个前向传递过程和一个后向传递过程。
前向传递主要涉及在给定的模型参数下,神经网络模型输出结果和相应损失函数的计算,而后向传递主要关系到损失函数梯度的计算。
在确定训练神经网络模型每层的计算过程的统一表达形式时,首先确定训练神经网络模型过程中前向传递的表达形式为:
Yi=WiXi、Xi+1=f(Yi)
其中,的每列表示神经网络模型第i层的输入变量,的每列表示神经网络模型第i层的输出变量,的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集。
然后确定训练神经网络模型过程中反向传递的表达形式为:
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么最后确定
Yi=WiXi
为训练神经网络模型每层的计算过程的统一表达形式。
步骤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的计算过程中进行一次全局归约操作。因此,模型并行的通信复杂性可以表示为:
其中,P是进程数,L是神经网络模型的层数,α是网络延迟,β是带宽的倒数。
上式中,第一个求和运算考虑的是每层计算所需all-gather的成本,而第二个求和运算考虑的是后向传递中all-reduce的成本。
由于不需要在第一层做后向传递,因此第二个求和是从i=2开始。以上通信复杂度的分析结果基于一个假定,即使用Bruck算法进行all-gather和利用ring算法实现all-reduce。
由此可知,模型并行的通信复杂性依赖于mini-batch的大小。
还需要说明的是,对于数据并行的情况,每个进程独立地进行梯度的计算。当进程算得各自的局部梯度后,all-reduce操作将会被用来得到梯度和。
参见图3,与模型并行的不同之处在于,数据并行主要是对输入变量Xi和输出变量Yi进行分块存储和分布式管理,而在多个进程上对参数矩阵Wi进行多次复制。此方法的通信成本主要是计算所需all-reduce的通信开销。因此,数据并行方法的通信复杂度为:
其中,|Wi|表示第i层中模型参数的总数。
对于P>>1,带宽开销与P无关。
与模型并行不同,数据并行的通信复杂度不依赖于批量数B的大小。目前关于神经网络模型训练的大部分工作都是使用数据并行策略来实现可扩展训练。
由此可知,对于卷积层,模型并行和数据并行之间通信量比值为:
因此,当B>(2|Wi|/3di)时,数据并行将优于模型并行。然而,数据并行并不总是优于模型并行。对于实际应用中的某些卷积层,模型并行比数据并行有时候会具有更低的通信复杂度。
参见图4,本申请实施例采用结合数据并行和模型并行的方式进行通信时,此种通信方式下的通信复杂度为:
其中,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)
其中,的每列表示神经网络模型第i层的输入变量,的每列表示神经网络模型第i层的输出变量,的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
在一些实施例中,划分模块502具体用于:将输入变量矩阵重复Pr次且使每个进程持有输入变量矩阵的1/Pc块;将输出变量矩阵重复Pr次且使每个进程持有输出变量矩阵的1/Pc块;将权重参数矩阵重复Pc次且使每个进程持有权重参数矩阵的1/Pr块;将损失函数关于输入变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输入变量矩阵的梯度矩阵的1/Pc块;将损失函数关于输出变量矩阵的梯度矩阵重复Pr次且使每个进程持有损失函数关于输出变量矩阵的梯度矩阵的1/Pc块;将损失函数关于权重参数矩阵的梯度矩阵重复Pc次且使每个进程持有重复Pc次且使每个进程持有损失函数关于权重参数矩阵的梯度矩阵的1/Pr块。
在一些实施例中,通过下式确定所述通信复杂度:
其中,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)
其中,的每列表示神经网络模型第i层的输入变量,的每列表示神经网络模型第i层的输出变量,的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi 为神经网络模型的输出变量矩阵,Wi 为神经网络模型的权重参数矩阵,Xi 为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di 为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
其中,所述基于所述统一表达形式、所述变量矩阵的划分结果以及所述参数矩阵的划分结果确定训练神经网络模型时的通信复杂度包括:
通过下式确定所述通信复杂度:
其中,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)
其中,的每列表示神经网络模型第i层的输入变量,的每列表示神经网络模型第i层的输出变量,的每列表示从第i-1层到第i层之间的神经网络模型的权重参数,Yi为神经网络模型的输出变量矩阵,Wi为神经网络模型的权重参数矩阵,Xi为神经网络模型的输入变量矩阵,f为神经网络模型的损失函数,i为神经网络模型的层数,di为神经网络模型的神经元个数,B为集合Batch中元素的个数,Batch为索引指标集;
确定训练神经网络模型过程中反向传递的表达形式为:
由于非线性变换Xi+1=f(Yi)的计算不涉及通信,那么,
其中,通过下式确定所述通信复杂度:
其中,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中任一项所述的方法。
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)
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)
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 | 钟祥博谦信息科技有限公司 | 神经网络优化方法 |
-
2021
- 2021-07-12 CN CN202110782183.7A patent/CN113377546B/zh active Active
Patent Citations (2)
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 |