CN109635922A - 一种分布式深度学习参数量化通信优化方法及系统 - Google Patents
一种分布式深度学习参数量化通信优化方法及系统 Download PDFInfo
- Publication number
- CN109635922A CN109635922A CN201811382970.7A CN201811382970A CN109635922A CN 109635922 A CN109635922 A CN 109635922A CN 201811382970 A CN201811382970 A CN 201811382970A CN 109635922 A CN109635922 A CN 109635922A
- Authority
- CN
- China
- Prior art keywords
- dct
- square matrix
- bias
- weight
- num
- 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.)
- Granted
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于离散余弦变换的分布式深度学习参数量化通信优化方法及系统,将分布式深度学习中的梯度值进行离散余弦变换后,再压缩处理,更新权重时反量化操作,形成一种通信高效的分布式深度学习系统。在工作节点发送梯度数据到参数服务器之前,采用梯度划分、GPU并行计算、离散余弦变换与量化及高频滤波压缩方法处理梯度值,然后推送至参数服务器。工作节点通过拉取操作,从参数服务器得到权重之后,采用离散余弦反变换与反量化、误差补偿更新方法更新当前工作节点上的权重。本发明能够有效提升现有的分布式深度学习框架中,工作节点和参数服务器之间的通信效率,提高模型训练速度。
Description
技术领域
本发明属于深度学习技术领域,更具体地,涉及一种基于离散余弦变换的分布式深度学习参数量化通信优化方法及系统。
背景技术
深度神经网络(Deep Neural Network,DNN)是由一个输入层、多个隐藏层及一个输出层组成的一种人工神经网络(Artificial Neural Network,ANN),每一层由多个神经元节点组成,前层和后层的神经元节点间相互连接,每一个连接对应一个权重参数。如图1所示,layer1表示输入层,layer4表示输出层,layer2和layer3表示隐层,神经元之间的连接均对应一个权重参数其中,l表示第l层,j表示l前一层的第j个神经元,k表示l层的第k个神经元。l层的全部神经元的权重参数组成该层的权重矩阵。同时,l层的每个神经元有一个偏置项权重矩阵和偏置矩阵构成l层神经元的参数。在神经网络模型中,产生这类权重矩阵的主要是全连接层(Full-Connected Layer)以及卷积层(ConvolutionLayer),图1中表示的是全连接层。卷积层的神经元连接数较全连接层相对更少。
模型超参数(hyperparameters)是深度学习中必需的框架参数,是模型外部的配置,其值不能从数据估计得到,所以通常由实践者直接指定。常用的超参数有训练迭代次数、学习率、初始化等。这些超参数由实践者在训练开始前设置,实践者可以通过启发式方法来设置。
深度神经网络通常采用误差逆传播(Back Propagation,BP)算法训练模型。正向传播时,输入样本data从输入层进入网络,经隐层逐层传递至输出层。反向传播时,将输出误差按原通路反传计算,为每一层神经元计算权重以及偏置项的梯度值和直至输入层。神经元利用更新公式:
得到新的权重及偏置项,其中,公式中等式右边的W(l)及bias(l)是server上已有的权重及偏置项,lr为学习率。
随着训练数据集的规模增大,以及模型的层数越来越深,单机的训练模式已不能满足深度神经网络的需求,于是分布式深度学习框架应运而生。参数服务器(ParameterServer)模式是分布式深度学习框架中常用的一种。在这种模式中,集群的部分节点作为参数服务器server,其余节点作为工作节点worker。如图2,worker负责执行训练并计算梯度参数,并执行push()操作:将梯度参数推送到server。server接收到梯度参数后,利用更新公式(1)(2)计算最新参数。随后,worker执行pull()操作:将server上的最新参数拉取到worker本地更新。在整个训练过程中,参数被标识成(key,value)的集合,其中,key对应参数的ID名,value是该key对应的参数值。例如在图1中,layer1为全连接层,其层ID为fc1。在push()操作时,worker将权重和偏置项的梯度参数推送到server,其中权重梯度标识成偏置项梯度标识成在pull()操作时,worker从server拉取最新的权重和偏置项,其中权重被标识成(fc1_weight,W(l)),偏置项标识成(fc1_bias,bias(l))。随着网络模型的深度越来越深,worker和server之间需要发送和接收的参数数量急剧增加,这会引起巨大的网络开销,从而容易造成通信延迟,影响训练的速度。故需要对梯度参数或权重参数做量化处理,减少集群节点间传输的数据量,用以加快训练的进行。
由于图形处理器(Graphics Processing Unit,GPU)对矩阵乘法和卷积具有高效的处理能力,现阶段的深度学习大多基于GPU计算。同时离散余弦变换(Discrete CosineTransform,DCT)中各元素的计算独立性很强,使用GPU并行程序计算更高效,编译语言使用CUDA。其中DCT变换的公式为:
其中,n表示方阵的长度和宽度,f(i,j)表示原方阵中第i行j列的数,F(u,v)表示DCT变换后的矩阵中第u行v列的数,c(u)和c(v)均满足:
其中,t=u,v。
DCT反变换的公式为:
其中,n表示方阵的长度和宽度,f(i,j)表示原矩阵中第i行j列的数,F(u,v)表示变换后的矩阵中第u行v列的数,c(u)和c(v)均满足:
其中,t=u,v。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于离散余弦变换的分布式深度学习参数量化通信优化方法及系统,由此解决现有分布式深度学习模型训练速度存在一定局限的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于离散余弦变换的分布式深度学习参数量化通信优化方法,包括:
(1)工作节点将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;
(2)所述工作节点将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;
(3)所述工作节点从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。
优选地,在步骤(1)中,所述将分布式深度学习中的梯度值划分为若干个第一方阵,包括:
根据分布式深度学习中的梯度值包含的浮点数个数Num,将梯度值划分为包括Num/(n*n)个大小为n*n的第一方阵Gk(0≤k<Num/(n*n)),剩余的无法组成一个方阵的Num%(n*n)个浮点数记为G′,其中,/表示相除取整,G下标k表示划分后的方阵的索引,%表示相除取余数。
优选地,在步骤(1)中,所述对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,包括:
根据所述第一方阵的个数Num/(n*n),设置基于图形处理器的并行程序计算中线程的个数thread_num=Num/(n*n),其中,每一个线程负责一个第一方阵的离散余弦变换,且thread_num个第一方阵的离散余弦变换操作并行执行,得到thread_num个已完成离散余弦变换的方阵 其中,下标k表示方阵的索引,上标DCT表示是已完成离散余弦变换方阵。
优选地,步骤(2)包括:
(2.1)若iter%interval≠0且iter≠iteration,则对每一个已完成离散余弦变换的方阵将反对角线上以及反对角线左上角的部分记为Sendk,将所有Sendk以及G′合并后记为Send,将反对角线右下角的部分记为Residualk,所有Residualk合并记为Residual,保留在所述工作节点的本地缓冲器中,将Send向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重得到已量化权重WDCT及已量化偏置项biasDCT,其中,Sendk为Residualk为 iter为当前迭代次数,interval为迭代间隔,iteration为训练的最大迭代次数;
(2.2)若iter%interval=0或者iter=iteration,则对每一个已完成离散余弦变换的方阵将反对角线右下角的部分 与所述本地缓冲器中的Residualk按元素在梯度矩阵中的位置对应相加,并将所述本地缓冲器中的Residual初始化为0,然后将thread_num个方阵Sendk与G′打包成Send后,并将Send向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重得到已量化权重WDCT及已量化偏置项biasDCT。
优选地,步骤(3)包括:
(3.1)所述工作节点从所述参数服务器中拉取已量化权重WDCT及已量化偏置项biasDCT;在步骤(2)中,若执行的步骤(2.1),则执行步骤(3.2),若执行的步骤(2.2),则执行步骤(3.3);
(3.2)将WDCT及biasDCT从CPU内存拷贝到GPU内存中,对于WDCT及biasDCT分别执行如下操作:按先后顺序将WDCT或biasDCT划分为thread_num个n*(n+1)/2的块,并按行逐个填充到n*n大小方阵的反对角线上以及反对角线左上角部分,方阵的反对角线右下角部分填充0,WDCT或biasDCT中其余Num-thread_num*n*(n+1)/2个浮点数记为WDCT′或biasDCT′;
(3.3)将WDCT及biasDCT从CPU内存拷贝到GPU内存中,对于WDCT及biasDCT分别执行如下操作:按先后顺序将WDCT或biasDCT划分为thread_num个n*n的方阵,WDCT或biasDCT中其余Num-thread_num*n*(n+1)/2个浮点数记为WDCT′或biasDCT′;
(3.4)对thread_num个方阵执行线程数为thread_num的离散余弦反变换并行程序计算后,将thread_num个方阵分别和WDcT′及biasDCT′拼接得到权重W及偏置项bias,用W及bias更新所述工作节点的本地权重及本地偏置项。
按照本发明的另一方面,提供了一种基于离散余弦变换的分布式深度学习参数量化通信优化系统,包括:
梯度划分及并行计算模块,用于将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;
低频传送模块,用于将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;
更新计算模块,用于从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:能够将worker和server间传递的参数进行量化压缩,减少worker和server之间的通信数据量,提高模型的训练速度;减少梯度传输和权重传输将近50%的数据传输量;在带宽条件有限时,能够减少带宽对训练速度的影响。
附图说明
图1是本发明实施例提供的一种深度神经网络结构示意图;
图2是本发明实施例提供的一种分布式深度学习的框架示意图;
图3是本发明实施例提供的一种单个方阵的低频推送示意图;
图4是本发明实施例提供的一种单个方阵使用误差积累与补偿方法中误差的操作方法示意图;
图5是本发明实施例提供的一种反量化补零示意图;
图6是本发明实施例提供的一种方法的总体流程示意图;
图7是本发明实施例提供的一种DCT量化和传输方法流程图;
图8是本发明实施例提供的一种DCT反量化和更新方法流程图;
图9是本发明实施例提供的一种误差积累与补偿方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图6所示是本发明实施例提供的一种方法的总体流程示意图,本发明由三个部分组成,分别是梯度的DCT变换和量化传输方法,权重的DCT反变换反量化和更新方法以及误差积累与补偿方法,具体包括:
S1:除了设置常规超参数外,设置矩阵划分的大小为n*n,为行和列长度均为n的方阵,误差补偿更新的间隔interval,训练的最大迭代次数iteration,每隔interval个迭代,执行一次误差补偿更新操作;
其中,n、interval及iteration的值可以根据实际需要确定,步骤S1中,参数设置具体包括:
S1.1:设置传统深度学习的常用超参数,设置一个训练的最大迭代次数iteration,该迭代次数必须大于0,设置矩阵划分的大小为n*n,是行和列长度相等均为n的方阵,设置误差补偿更新的间隔interval,训练将每隔interval个迭代,执行一次误差补偿更新操作;
S1.2:初始化迭代次数的计数参数:iter=0,每进入一次新的迭代,iter=iter+1。
S2:worker执行BP算法中的前向后向计算,产生梯度,并进行梯度划分,将梯度划分成n*n大小的方阵,并对每个方阵分别执行基于GPU的DCT变换并行程序计算并量化,将数据分为将要推送到server的部分,以及留在本地的误差部分,执行push()操作推送已量化梯度到server上;
在本发明实施例中,worker执行BP算法,为了表达方便,如无特殊说明,权重梯度和偏置项梯度,将均被记为Gradient,由于梯度被标识成(key,value)的集合,key在这里指参数的ID,value在这里表示梯度Gradient。本发明实施例中以key为单位对相应的梯度Gradient执行如下操作:
在本发明实施例中,梯度的DCT变换和量化传输方法如图7,其具体实施方式如下:
S2.1:已知的Gradient包含的浮点数个数为Num,当其计算出来时存储在GPU上。根据Gradient包含的浮点数个数为Num,记方阵G1={Gradienti,0<i≤n*n}为划分的第1个方阵,Gradienti表示梯度Gradient中的第i个浮点数。记方阵G2={Gradienti,n*n<i≤2*n*n}为划分的第2个方阵。以此类推,梯度最多可以划分为Num/(n*n)个n*n大小的方阵Gk(0≤k<Num/(n*n)),其中,“/”表示相除取整,G下标k表示划分后的方阵的索引。其余的Num%(n*n)个浮点数,其中“%”表示相除取余数,浮点数个数少于n*n,无法组成一个方阵的数记为G′;
S2.2:根据方阵个数Num/(n*n),设置基于CUDA的并行程序计算中线程的个数thread_num=Num/(n*n),每一个线程负责一个方阵的DCT变换,thread_num个方阵的量化操作并行执行,DCT变换使用公式(3)和(4);
S2.3:得到thread_num个已完成DCT变换的方阵 其中下标k表示已量化的方阵的索引,上标DCT表示是已变换的方阵。根据iter,iteration以及interval,此时,iter%interval≠0并且iter≠iteration,执行步骤S2.4;
S2.4:对每一个方阵,反对角线上以及反对角线左上角的部分,即记为Sendk,所有Sendk,以及步骤S2.1中的G′,合并后记为Send,反对角线右下角的部分,即 记为Residualk,具体操作见图3,将Send用push()操作推送到server,所有Residualk合并记为Residual,保留在本地缓冲器中。
S3:服务器server接收到参数,使用公式(1)和(2)计算权重及偏置项;
S4:server计算出最新权重及偏置项后,worker执行pull()操作,从server拉取最新的已量化权重WDCT及已量化偏置项biasDCT,对WDCT及biasDCT进行划分,并执行DCT反变换得到权重W及偏置项bias;
在本发明实施例中,由于权重和偏置项的计算方法相同,因此后续实施例均以权重为例进行说明,当权重执行操作时,偏置项执行相同的操作。
在本发明实施例中,权重的DCT反变换反量化和更新方法的具体方法步骤如图8,具体步骤如下:
S4.1:当push()操作没有采用误差积累与补偿方法时,worker的pull()操作接收到的是低频权重,即n*n矩阵的反对角线上及反对角线左上角有值,反对角线右下角为空,如图5左1矩阵所示。为了使DCT反变换能够进行,特将反对角线右下角全补零,得到完整的n*n方阵。对于WDCT,将其从CPU内存拷贝到GPU内存中(接收到的数据默认首先在CPU内存中),然后按先后顺序将其划分为thread_num个n*(n+1)/2,并按行逐个填充到n*n大小方阵的非空区域,方阵的反对角线右下角部分填充0,具体操作见图5。WDCT中其余Num-thread_num*n*(n+1)/2个浮点数记为WDCT′;
S4.2:根据方阵个数thread_num,设置基于CUDA的并行程序计算中线程的个数也为thread_num,每一个线程负责一个方阵的DCT反变换,thread_num个方阵的反变换操作并行执行,反变换使用公式(5)和(6)。DCT反变换计算完成后,得到权重W;
S4.3:将权重W从GPU上拷贝到CPU,先更新CPU上的权重参数,再执行Broadcast()函数,将权重复制到每一块GPU上更新。
S5:用W及偏置项bias更新worker本地权重及本地偏置项,先拷贝W及偏置项bias到CPU中,再拷贝到每一块GPU卡上,替换原有的权重及偏置项。
在本发明实施例中,误差积累与补偿方法的具体方法与步骤如图9,具体描述如下:
(a)已知的Gradient包含的浮点数个数为Num,当其计算出来时存储在GPU上。根据Gradient包含的浮点数个数为Num,记方阵G1={Gradienti,0<i≤n*n}为划分的第1个方阵,Gradienti表示梯度Gradient中的第i个浮点数。记方阵G2={Gradienti,n*n<i≤2*n*n}为划分的第2个方阵。以此类推,梯度最多可以划分为Num/(n*n)个n*n大小的方阵Gk(0≤k<Num/(n*n)),其中“/”表示相除取整,G下标k表示划分后的方阵的索引。其余Num%(n*n)个浮点数,其中“%”表示相除取余数,浮点数个数少于n*n,无法组成一个方阵的数记为G′;
(b)根据方阵个数Num/(n*n),设置基于CUDA的并行程序计算中线程的个数thread_num=Num/(n*n),每一个线程负责一个方阵的DCT变换,thread_num个方阵的量化操作并行执行,DCT变换使用公式(3)和(4);
(c)得到thread_num个已完成DCT变换的方阵 其中下标k表示已量化的方阵的索引,上标DCT表示是已变换的方阵。根据iter,iteration以及interval,此时iter%interval=0或者iter=iteration,执行(d);
(d)将已完成DCT变换的与保存在worker缓冲器中的误差Residualk相加,具体相加方法见图4,保持每个数据在方阵中的位置不变,和Residualk相加时位置相对应。相加完毕Residual被初始化为0;
(e)server端接收数据,使用公式(1)(2)计算最新参数;
(f)worker执行pull()操作,从server上拉取最新参数WDCT,当拉取完成时,参数存放在worker的GPU上;
(g)对照步骤(a)中的划分方法,将WDCT划分成thread_num个n*n的方阵,对根据方阵个数thread_num,设置基于CUDA的并行程序计算中线程的个数为thread_num,每一个线程负责一个方阵的DCT反变换,thread_num个方阵的反变换操作并行执行,DCT反变换使用公式(5)和(6),计算完毕后得到权重W;
(h)将权重W从GPU上拷贝到CPU,先更新CPU上的权重参数,再执行Broadcast()函数,将权重复制到每一块GPU上更新;
本发明的整体思路在于,利用DCT量化可以将方阵中的重要信息聚集在方阵的左上角,可以将梯度数据中,对模型收敛贡献更大的值优先推送到server,以此减少通信的数据量,提高训练速度。在此次迭代中未能推送的误差值,将在未来指定的某次迭代中被传送,弥补模型损失的精度。
在本发明的一个实施例中,还公开了一种基于离散余弦变换的分布式深度学习参数量化通信优化系统,该系统包括:
梯度划分模块,用于将梯度值划分成设定的n*n大小的方阵,依据其中浮点数的存储顺序,依次分成n*n的小段,每一小段第0~(n-1)个浮点数作为方阵第一行,第n~(2*n-1)个浮点数作为方阵第二行,以此类推。在梯度数据的尾部,浮点数个数无法凑足n*n个的,不做DCT变换;
GPU并行计算模块,用于DCT变换,核函数设计为具有将n*n大小方阵做DCT变换功能的函数,并行地计算。使用CUDA语言,线程数设置为方阵的个数。此模块可以加速变换过程;
低频传送模块,用于打包worker端的数据包。根据设置的迭代间隔interval,当前迭代处在间隔内时,采用高频舍弃传送法,对于所有变换后的方阵,反对角线上以及反对角线左上角的部分,为低频部分,可以较好的代表方阵的重要信息。此部分作为将要推送到server的数据。反对角线右下角的部分,为高频部分,本次迭代中放弃被推送,与上次迭代中的高频部分相加,保存在worker本地。此模块可以减少近50%的传输数据量;
误差积累与补偿模块,用于处理误差,根据设置的迭代间隔interval,当前迭代达到间隔值时,DCT变换后的矩阵不再做低频部分推送,高频部分本地积累,而是将已完成DCT变换的数据以及积累的高频误差相加,全部推送到server,进行一次误差补偿。当训练进行到最后一次迭代时,无论迭代次数是否积累到interval,也做误差积累与补偿,此模块可以提高模型的精度;
反量化补零模块,用于worker的DCT反变换操作之前,由于接收到的已量化权重,只包含方阵的低频部分。设计将方阵的反对角线右下角补零,得到形状完整的方阵,使方阵符合DCT反变换的条件;
更新模块,用于在计算出权重后,更新CPU以及所有GPU卡的权重,DCT反变换计算在GPU上执行,在产生权重后,先拷贝到CPU上,更新CPU上的权值,然后通过广播的方式,从CPU广播到每一张GPU卡上,此模块可以同步一台物理机上的所有权重数据。
其中,各模块的具体实施方式可以参照方法实施例的描述,本发明实施例将不做复述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于离散余弦变换的分布式深度学习参数量化通信优化方法,其特征在于,包括:
(1)工作节点将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;
(2)所述工作节点将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;
(3)所述工作节点从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。
2.根据权利要求1所述的方法,其特征在于,在步骤(1)中,所述将分布式深度学习中的梯度值划分为若干个第一方阵,包括:
根据分布式深度学习中的梯度值包含的浮点数个数Num,将梯度值划分为包括Num/(n*n)个大小为n*n的第一方阵Gk(0≤k<Num/(n*n)),剩余的无法组成一个方阵的Num%(n*n)个浮点数记为G′,其中,/表示相除取整,G下标k表示划分后的方阵的索引,%表示相除取余数。
3.根据权利要求2所述的方法,其特征在于,在步骤(1)中,所述对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,包括:
根据所述第一方阵的个数Num/(n*n),设置基于图形处理器的并行程序计算中线程的个数thread_num=Num/(n*n),其中,每一个线程负责一个第一方阵的离散余弦变换,且thread_num个第一方阵的离散余弦变换操作并行执行,得到thread_num个已完成离散余弦变换的方阵 其中,下标k表示方阵的索引,上标DCT表示是已完成离散余弦变换方阵。
4.根据权利要求3所述的方法,其特征在于,步骤(2)包括:
(2.1)若iter%interval≠0且iter≠iteration,则对每一个已完成离散余弦变换的方阵将反对角线上以及反对角线左上角的部分记为Sendk,将所有Sendk以及G′合并后记为Send,将反对角线右下角的部分记为Residualk,所有Residualk合并记为Residual,保留在所述工作节点的本地缓冲器中,将Send向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重得到已量化权重WDCT及已量化偏置项biasDCT,其中,Sendk为Residualk为 iter为当前迭代次数,interval为迭代间隔,iteration为训练的最大迭代次数;
(2.2)若iter%interval=0或者iter=iteration,则对每一个已完成离散余弦变换的方阵将反对角线右下角的部分 与所述本地缓冲器中的Residualk按元素在梯度矩阵中的位置对应相加,并将所述本地缓冲器中的Residual初始化为0,然后将thread_num个方阵Sendk与G′打包成Send后,并将Send向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重得到已量化权重WDCT及已量化偏置项biasDCT。
5.根据权利要求4所述的方法,其特征在于,步骤(3)包括:
(3.1)所述工作节点从所述参数服务器中拉取已量化权重WDCT及已量化偏置项biasDCT;在步骤(2)中,若执行的步骤(2.1),则执行步骤(3.2),若执行的步骤(2.2),则执行步骤(3.3);
(3.2)将WDCT及biasDCT从CPU内存拷贝到GPU内存中,对于WDCT及biasDCT分别执行如下操作:按先后顺序将WDCT或biasDCT划分为thread_num个n*(n+1)/2的块,并按行逐个填充到n*n大小方阵的反对角线上以及反对角线左上角部分,方阵的反对角线右下角部分填充0,WDCT或biasDCT中其余Num-thread_ num*n*(n+1)/2个浮点数记为WDCT′或biasDCT′;
(3.3)将WDCT及biasDCT从CPU内存拷贝到GPU内存中,对于WDCT及biasDCT分别执行如下操作:按先后顺序将WDCT或biasDCT划分为thread_num个n*n的方阵,WDCT或biasDCT中其余Num-thread_num*n*(n+1)/2个浮点数记为WDCT′或biasDCT′;
(3.4)对thread_num个方阵执行线程数为thread_num的离散余弦反变换并行程序计算后,将thread_num个方阵分别和WDCT′及biasDCT′拼接得到权重W及偏置项bias,用W及bias更新所述工作节点的本地权重及本地偏置项。
6.一种基于离散余弦变换的分布式深度学习参数量化通信优化系统,其特征在于,包括:
梯度划分及并行计算模块,用于将分布式深度学习中的梯度值划分为若干个第一方阵,对于每个所述第一方阵,分别执行基于图形处理器的离散余弦变换并行计算并量化,得到若干个已量化方阵,其中,所述分布式深度学习中的梯度值包括权重梯度和偏置项梯度;
低频传送模块,用于将量化后的方阵向参数服务器推送,以由所述参数服务器在接收到所述量化后的方阵后,根据所述量化后的方阵更新分布式深度学习中的权重和偏置项;
更新计算模块,用于从所述参数服务器中拉取更新后的权重及偏置项,并将更新后权重划分为若干个第二方阵,将更新后的偏置项划分为若干个第三方阵,对于每个所述第二方阵及每个所述第三方阵,分别执行基于图形处理器的反量化和离散余弦反变换并行计算,得到目标权重及目标偏置项,用所述目标权重及所述目标偏置项分别更新所述工作节点的本地权重及本地偏置项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811382970.7A CN109635922B (zh) | 2018-11-20 | 2018-11-20 | 一种分布式深度学习参数量化通信优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811382970.7A CN109635922B (zh) | 2018-11-20 | 2018-11-20 | 一种分布式深度学习参数量化通信优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635922A true CN109635922A (zh) | 2019-04-16 |
CN109635922B CN109635922B (zh) | 2022-12-02 |
Family
ID=66068381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811382970.7A Active CN109635922B (zh) | 2018-11-20 | 2018-11-20 | 一种分布式深度学习参数量化通信优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635922B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955530A (zh) * | 2020-02-25 | 2020-04-03 | 深圳鲲云信息科技有限公司 | 深度学习引擎并行处理数据方法、装置、设备及储存介质 |
CN111027671A (zh) * | 2019-11-12 | 2020-04-17 | 华中科技大学 | 一种基于模型结构特性的分布式深度学习通信方法和系统 |
CN111429142A (zh) * | 2020-06-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN112561078A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 分布式的模型训练方法、相关装置及计算机程序产品 |
CN113033800A (zh) * | 2019-12-25 | 2021-06-25 | 香港理工大学深圳研究院 | 分布式深度学习方法、装置、参数服务器及主工作节点 |
CN116129249A (zh) * | 2023-04-04 | 2023-05-16 | 上海燧原科技有限公司 | 一种图像处理方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6236749B1 (en) * | 1998-03-23 | 2001-05-22 | Matsushita Electronics Corporation | Image recognition method |
CN104714852A (zh) * | 2015-03-17 | 2015-06-17 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
JP6227813B1 (ja) * | 2017-01-25 | 2017-11-08 | 株式会社Preferred Networks | 分散深層学習装置及び分散深層学習システム |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
-
2018
- 2018-11-20 CN CN201811382970.7A patent/CN109635922B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6236749B1 (en) * | 1998-03-23 | 2001-05-22 | Matsushita Electronics Corporation | Image recognition method |
CN104714852A (zh) * | 2015-03-17 | 2015-06-17 | 华中科技大学 | 一种适用于分布式机器学习的参数同步优化方法及其系统 |
JP6227813B1 (ja) * | 2017-01-25 | 2017-11-08 | 株式会社Preferred Networks | 分散深層学習装置及び分散深層学習システム |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111027671A (zh) * | 2019-11-12 | 2020-04-17 | 华中科技大学 | 一种基于模型结构特性的分布式深度学习通信方法和系统 |
CN113033800A (zh) * | 2019-12-25 | 2021-06-25 | 香港理工大学深圳研究院 | 分布式深度学习方法、装置、参数服务器及主工作节点 |
CN113033800B (zh) * | 2019-12-25 | 2023-11-17 | 香港理工大学深圳研究院 | 分布式深度学习方法、装置、参数服务器及主工作节点 |
CN110955530A (zh) * | 2020-02-25 | 2020-04-03 | 深圳鲲云信息科技有限公司 | 深度学习引擎并行处理数据方法、装置、设备及储存介质 |
CN111429142A (zh) * | 2020-06-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN112561078A (zh) * | 2020-12-18 | 2021-03-26 | 北京百度网讯科技有限公司 | 分布式的模型训练方法、相关装置及计算机程序产品 |
CN112561078B (zh) * | 2020-12-18 | 2021-12-28 | 北京百度网讯科技有限公司 | 分布式的模型训练方法及相关装置 |
CN116129249A (zh) * | 2023-04-04 | 2023-05-16 | 上海燧原科技有限公司 | 一种图像处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109635922B (zh) | 2022-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635922A (zh) | 一种分布式深度学习参数量化通信优化方法及系统 | |
CN110533183B (zh) | 流水线分布式深度学习中异构网络感知的任务放置方法 | |
CN107644254A (zh) | 一种卷积神经网络权重参数量化训练方法及系统 | |
CN111353582B (zh) | 一种基于粒子群算法的分布式深度学习参数更新方法 | |
CN108229681A (zh) | 一种神经网络模型压缩方法、系统、装置及可读存储介质 | |
CN108268638A (zh) | 一种基于Spark框架的生成对抗网络分布式实现方法 | |
CN107330516A (zh) | 模型参数训练方法、装置及系统 | |
CN109902183A (zh) | 一种基于多样图注意力机制的知识图谱嵌入方法 | |
CN110457397A (zh) | 一种数据同步的方法及装置 | |
CN112784968A (zh) | 一种加速分布式深度神经网络训练的混合流水线并行方法 | |
CN113159287B (zh) | 一种基于梯度稀疏的分布式深度学习方法 | |
CN105825269B (zh) | 一种基于并行自动编码机的特征学习方法及系统 | |
CN111882060A (zh) | 用于机器学习的单步延迟随机梯度下降训练方法 | |
CN106796533A (zh) | 自适应地选择执行模式的系统和方法 | |
CN110942138A (zh) | 一种混合内存环境下深度神经网络的训练方法和系统 | |
CN107315843A (zh) | 海量结构化数据的存储方法和系统 | |
CN114897155A (zh) | 一种用于卫星的集成模型无数据压缩方法 | |
CN109241298A (zh) | 语义数据存储调度方法 | |
CN113935489A (zh) | 基于量子神经网络的变分量子模型tfq-vqa及其两级优化方法 | |
CN104050505A (zh) | 一种基于带学习因子蜂群算法的多层感知器训练方法 | |
WO2023019899A1 (zh) | 神经网络实时剪枝方法、系统及神经网络加速器 | |
CN115470889A (zh) | 基于强化学习的片上网络自主最优映射探索系统及方法 | |
CN116167436A (zh) | 一种优化模型划分的神经网络流水线并行训练方法 | |
Lan et al. | Accelerated device placement optimization with contrastive learning | |
US20220207374A1 (en) | Mixed-granularity-based joint sparse method for neural network |
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 |