一种基于国产众核处理器的深度学习算法实现方法与平台与流程

文档序号:11476181阅读:439来源:国知局
一种基于国产众核处理器的深度学习算法实现方法与平台与流程

本发明属于计算机信息处理领域,具体涉及一种基于国产众核处理器的深度学习算法实现方法与平台。



背景技术:

深度学习算法是通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布是表示,并展现强大的从少数样本集中学习数据集本质特征的能力。深度学习的实质,是通过构建具有多隐层的机器学习模型和海量的数据训练,来学习更有用的特征,从而最终提升分类或预测的准确性。

申威国产众核处理器,是完全国产化的用于高性能并行计算的众核处理器,其主核为运算控制核心,其功能与通用的处理器相似,可执行通用处理器的工作;从核为计算核心,主要负责运算,作用类似于协处理器。

mpi(messagepassinginterface)是目前国际上最流行的并行编程环境之一,尤其是分布式存储的可缩放并行计算机和工作站网络以及机群的一种编程范例。其具有可移植性和易用性,有完备的异步通信功能,有正式和详细的精确定义。

鉴于在深度学习领域,算法的深度、复杂程度逐渐增加,以及训练过程中要处理的数据量十分庞大,深度学习的发展与应用需要强大的计算能力做支撑。若仅仅使用普通的处理器进行模型训练,需要耗费非常长的时间,或搭建非常大规模的集群,操作繁琐冗余。

因此,提供一种基于国产众核处理器的深度学习算法实现方法与平台,是十分必要的。



技术实现要素:

本发明的目的在于解决上述现有技术中存在的普通处理器进行模型训练耗时长、搭建复杂等难题,提供一种基于国产众核处理器的深度学习算法实现方法与平台。

本发明是通过以下技术方案实现的:

一种基于国产众核处理器的深度学习算法实现方法,深度学习算法的数据并行方式通过主从模式完成,包括以下步骤

s1:将网络模型复制成n份,训练样本均分成n份;

s2:第i份网络模型利用第i个训练样本子集做迭代训练;

s3:每次迭代完成时,将参数梯度上传至参数服务器;

s4:下次迭代开始前从参数服务器下载参数集作为本次迭代的初始参数;

深度学习模型训练的过程需要大量的数据处理,本方案采取数据并行的方式,将资源池中的所有训练数据分片,将这些数据分别分配给不同的计算进程进行训练。在数据分片训练完成后,需要对权重进行同步规约操作,然后将规约后的权重发送给各进程,以便训练其他数据分片。

作为优选,集群中的其他计算资源负责不同数据分片的训练工作,计算出参数封信的梯度,传送给参数服务器更新模型参数。

作为优选,所述参数服务器由单个核组构成,负责merge操作。

上述的深度学习算法实现方法中,其深度学习算法核组间并行方式是由单个训练进程控制单个核组的计算,核组之间的信息交互通过mpi信息传递接口实现。

针对国产众核平台的硬件架构以及每个核组都有独立的操作系统这一特点,核组之间的并行通过mpi实现。

作为优选,所述mpi主进程控制参数服务器,其他计算核组由mpi从进程控制。

作为优选所述mpi的设计方式为各进程同步执行或不同进程异步执行。

其中,同步执行是指:每个计算进程读取一道数据进行训练,在权重更新阶段,所有的进程都要将各自计算的梯度发送给参数服务器(主进程),参数服务器将各计算进程发来的梯度进行规约更新,然后将更新后的值同时发送给各计算进程,以便各进程处理下一批样本。各进程同步执行时,各进程之间每次训练之前的权重和偏置是相同的。

异步执行是指:每个进程读取一个分片的数据样本进行训练,将其计算的梯度交由参数服务器进行merge更新,然后参数服务器立即将更新后的值发送给此计算进程,此计算进程利用更新后的值训练下一个数据分片样本。异步执行时,每一个数据分片样本训练之前的权重与偏置都是不一样的。

同步执行往往会导致当进程的数量变大时,收敛的速度越来越慢,基于此提出了计算进程之间异步执行的方案以加快收敛速度。

上述的深度学习算法实现方法中,其深度学习算法核组内数据并行是通过国产众核处理器中众核的核心数目并行加速热点函数的数据并行来实现的。

根据深度学习算法分析情况可知,深度算法中矩阵乘法、向量计算及激活函数的计算均是热点且满足数据并行的条件,适合应用共享的多线程编程模式实现并行。而国产众核处理器的每个核组中都有1个主核和64个从核,可以利用国产处理器中众核的核心数目并行加速热点函数的数据并行从而实现从核间的并行,本方案可以采用国产众核平台上的加速线程库(athread库)也可以采用openacc并行编程的方式完成从核上的多线程的计算。对于矩阵向量计算,可直接调用blas库完成加速。

一种基于上述深度学习算法的实现平台,包括硬件集群平台,所述硬件集群平台的各节点内配置相同,计算节点内采用核心数量及主频相同的国产众核处理器。

作为优选,所述国产众核处理器主存中存放的从核常用变量传输至从核局存中。

主核上定义的变量存放在主存中,无论是主核还是从核调用这些变量数据都需要直接访问主存。而从核访问主存的延迟比较高。若从核程序频繁地访问主存会导致很大的性能损耗。而国产众核平台上每个从核配有64k的局存,局存为每个从核所私有,访存速度快。因此,将主存中存放的从核常用变量首先传入从核局存中供从核私有,从而提高从核的访存速度。

作为优选,其中计算节点的互联、数据的传输采用万兆以太或infiniband高度互联网络。由于平台缓存的大小为64k,远小于intel平台上的缓存,当计算的数组过大时,会带来很大的访存压力,因此需要根据平台上的缓存的大小将数组分段处理以减小cache过小造成的访存脱靶问题。

在硬件集群平台中,每个众核节点配置内存保持一致,采用同样类型、大小的ddr内存,避免内存读写速度差别造成的处理能力差距悬殊,导致整个节点处理能力低下。同时,计算节点内采用的国产众核处理器芯片相同,保证每个处理器芯片内的核心数量以及主频相同。此外,进程间的通信对节点间互联网络的要求较高,因此,计算节点的互联采用万兆以太或infiniband高速互联网络,为避免由于带宽不一致信息阻塞,网络交换机采用全交换的方式。

与现有技术相比,本发明的有益效果是:

本发明的目的在于加速深度学习领域模型训练的速度,充分利用国产众核平台硬件资源,提高计算性能、降低能耗,从而减少模型训练的成本。本发明涉及了硬件架构的搭建以及并行算法的设计与实现,其中利用mpi实现了核组之间任务的分配及消息传递,利用国产众核处理器的计算核心实现深度学习算法模型训练的并行加速。此方案,充分利用硬件资源,大大缩短了对称正定线性方程组的求解时间,降低计算能耗,从而减少了机房构建、管理及运维成本。

此外,本发明方法原理可靠,步骤简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

图1是本发明提供的一种基于国产众核处理器的深度学习算法实现方法中深度学习数据并行示意图。

图2是本发明提供的一种基于国产众核处理器的深度学习算法实现方法中深度学习数据并行主从模式示意图。

图3是本发明提供的一种基于国产众核处理器的深度学习算法实现方法中核组间数据并行方式示意图。

图4是本发明提供的一种基于国产众核处理器的深度学习算法实现方法中核组内数据并行方式示意图。

具体实施方式

下面结合附图对本发明作进一步详细描述:

如图1至2所示,本发明提供的一种基于国产众核处理器的深度学习算法实现方法,其深度学习算法的数据并行方式通过主从模式完成,包括以下步骤

s1:将网络模型复制成n份,训练样本均分成n份;

s2:第i份网络模型利用第i个训练样本子集做迭代训练;

s3:每次迭代完成时,将参数梯度上传至参数服务器;

s4:下次迭代开始前从参数服务器下载参数集作为本次迭代的初始参数;

深度学习模型训练的过程需要大量的数据处理,本方案采取数据并行的方式,将资源池中的所有训练数据分片,将这些数据分别分配给不同的计算进程进行训练。在数据分片训练完成后,需要对权重进行同步规约操作,然后将规约后的权重发送给各进程,以便训练其他数据分片。在训练的过程中,多个训练过程相互独立训练的结果,即模型的变化量δw需要汇报给参数服务器,由参数服务器负责更新为最新的模型w’=w–ηδw,然后再将最新的模型w’分发给训练程序,以便从新的起点开始训练。

在本实施例中,集群中的其他计算资源负责不同数据分片的训练工作,计算出参数封信的梯度,传送给参数服务器更新模型参数。

在本实施例中,所述参数服务器由单个核组构成,负责merge操作。

如图3所示,上述的深度学习算法实现方法中,其深度学习算法核组间并行方式是由单个训练进程控制单个核组的计算,核组之间的信息交互通过mpi信息传递接口实现。

针对国产众核平台的硬件架构以及每个核组都有独立的操作系统这一特点,核组之间的并行通过mpi实现。

在本实施例中,所述mpi主进程控制参数服务器,其他计算核组由mpi从进程控制。

在本实施例中,所述mpi的设计方式为不同进程异步执行,在本发明的其他实施例中也可采用各进程同步执行的方式。

异步执行是指:每个进程读取一个分片的数据样本进行训练,将其计算的梯度交由参数服务器进行merge更新,然后参数服务器立即将更新后的值发送给此计算进程,此计算进程利用更新后的值训练下一个数据分片样本。异步执行时,每一个数据分片样本训练之前的权重与偏置都是不一样的。

同步执行是指:每个计算进程读取一道数据进行训练,在权重更新阶段,所有的进程都要将各自计算的梯度发送给参数服务器(主进程),参数服务器将各计算进程发来的梯度进行规约更新,然后将更新后的值同时发送给各计算进程,以便各进程处理下一批样本。各进程同步执行时,各进程之间每次训练之前的权重和偏置是相同的。

同步执行往往会导致当进程的数量变大时,收敛的速度越来越慢,基于此提出了计算进程之间异步执行的方案以加快收敛速度。

如图4所示,上述的深度学习算法实现方法中,其深度学习算法核组内数据并行是通过国产众核处理器中众核的核心数目并行加速热点函数的数据并行来实现的。

根据深度学习算法分析情况可知,深度算法中矩阵乘法、向量计算及激活函数的计算均是热点且满足数据并行的条件,适合应用共享的多线程编程模式实现并行。而国产众核处理器的每个核组中都有1个主核和64个从核,可以利用国产处理器中众核的核心数目并行加速热点函数的数据并行从而实现从核间的并行,本方案可以采用国产众核平台上的加速线程库(athread库)也可以采用openacc并行编程的方式完成从核上的多线程的计算。对于矩阵向量计算,可直接调用blas库完成加速。

一种基于上述深度学习算法的实现平台,包括硬件集群平台,所述硬件集群平台的各节点内配置相同,计算节点内采用核心数量及主频相同的国产众核处理器。

作为优选,所述国产众核处理器主存中存放的从核常用变量传输至从核局存中。

主核上定义的变量存放在主存中,无论是主核还是从核调用这些变量数据都需要直接访问主存。而从核访问主存的延迟比较高。若从核程序频繁地访问主存会导致很大的性能损耗。而国产众核平台上每个从核配有64k的局存,局存为每个从核所私有,访存速度快。因此,将主存中存放的从核常用变量首先传入从核局存中供从核私有,从而提高从核的访存速度。

作为优选,其中计算节点的互联、数据的传输采用万兆以太或infiniband高度互联网络。由于平台缓存的大小为64k,远小于intel平台上的缓存,当计算的数组过大时,会带来很大的访存压力,因此需要根据平台上的缓存的大小将数组分段处理以减小cache过小造成的访存脱靶问题。

在硬件集群平台中,每个众核节点配置内存保持一致,采用同样类型、大小的ddr内存,避免内存读写速度差别造成的处理能力差距悬殊,导致整个节点处理能力低下。同时,计算节点内采用的国产众核处理器芯片相同,保证每个处理器芯片内的核心数量以及主频相同。此外,进程间的通信对节点间互联网络的要求较高,因此,计算节点的互联采用万兆以太或infiniband高速互联网络,为避免由于带宽不一致信息阻塞,网络交换机采用全交换的方式。

本发明涉及了硬件架构的搭建以及并行算法的设计与实现,其中利用mpi实现了核组之间任务的分配及消息传递,利用国产众核处理器的计算核心实现深度学习算法模型训练的并行加速。此方案,充分利用硬件资源,大大缩短了对称正定线性方程组的求解时间,降低计算能耗,从而减少了机房构建、管理及运维成本。

上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1