首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 人工神经网络 / 前馈神经网络 / 深度神经网络 / 卷积神经网络 / 基于多FPGA环状通信的卷积神经网络加速装置及方法

基于多FPGA环状通信的卷积神经网络加速装置及方法

阅读:543发布:2024-02-06

专利汇可以提供基于多FPGA环状通信的卷积神经网络加速装置及方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于多FPGA环状通信的 卷积神经网络 加速 装置及方法。该方案由多个FPGA组成环状数据通信结构及方法构成,其中,各FPGA组成首尾相连的闭环;各FPGA映射一套完整的卷积神经网络;各FPGA之间通过PCI-E 接口 进行通信;用于网络训练的数据按照接入环状结构的FPGA数目平均分配,各FPGA独立处理数据子集。所述数据环状通信方法包括三个步骤:数据 迭代 ,数据交换和计算误差梯度下降平均值。本发明能够有效的减少通信带宽开销,同时使得训练速度得到成倍增加,为卷积神经网络 硬件 加速提供了一个现实可行的方案。,下面是基于多FPGA环状通信的卷积神经网络加速装置及方法专利的具体信息内容。

1.一种基于多FPGA环状通信的卷积神经网络加速装置,其特征在于,所述加速装置包括多个FPGA组成的环状数据通信结构。
2.根据权利要求1所述的加速装置,其特征在于,所述环状数据通信结构是各FPGA组成的首尾相连的闭环。
3.根据权利要求1所述的加速装置,其特征在于,所述各FPGA之间通过PCI-E接口进行通信。
4.根据权利要求1所述的加速装置,其特征在于,所述每个FPGA映射一套完整的卷积神经网络。
5.根据权利要求1所述的加速装置,其特征在于,用于网络训练的数据按照接入环状结构的FPGA数目平均分配,各FPGA独立处理数据子集。
6.另一方面,提出了一种多FPGA环状数据通信方法,其特征在于,所述多FPGA环状数据通信方法包括三个步骤:
假定环状通信时刻各FPGA已经计算出该网络层所有神经元连接的误差梯度下降值。各FPGA中分别有一组数据,该组数据包括多个数据,每个数据块含有一个神经元连接对应的梯度下降值,该组数据涉及该网络层所有神经元连接。
步骤1:数据迭代,指的是各FPGA发送一个误差梯度下降值数据块到下一个FPGA,并接收上一个FPGA发送的一个误差梯度下降值数据块,直到每个FPGA都有一个完整的数据块,该数据块包含一个神经元连接在所有FPGA中对应的梯度下降值。
步骤2:数据交换,指的是各FPGA发送一个完整的误差梯度下降值数据块到下一个FPGA,并接收上一个FPGA发送的一个完整的误差梯度下降值数据块,直到每个FPGA都有一组数据,该组数据由多个数据块构成,每个数据块涉及一个神经元连接,该组数据涉及所有神经元连接。
步骤3:计算误差梯度下降平均值,指的是每个FPGA分别计算来自各FPGA误差梯度下降值的平均值,用于改变该层神经元连接对应的权值。

说明书全文

基于多FPGA环状通信的卷积神经网络加速装置及方法

技术领域

[0001] 发明涉及计算机硬件加速领域,具体地涉及一种基于多FPGA环状通信的卷积神经网络加速装置及方法。

背景技术

[0002] 深度学习人工智能领域的一个重要分支,在图像识别语音识别、视频监控、自然语言处理等方面有着重要应用。从2006年Hinton提出深度学习技术,到2012年AlexNet算法在ImageNet竞赛中取得图像识别领域的突破,再到2016年和2017年AlphaGo战胜人类围棋顶级大师,深度学习技术在短短十年之间取得了惊人的飞速发展,并被广泛应用于各个领域解决以往无法解决的问题。
[0003] 得益于深度学习的进步以及大数据技术的发展,作为其中的核心算法卷积神经网络(CNN)广泛被应用到图片分类、人脸识别、图像语义理解、无人驾驶等诸多应用领域。
[0004] 当CNN的卷积层数不断增加时,伴随着海量的矢量计算和频繁的访存操作,传统的CPU计算平台无法满足CNN在很多应用场合下的实时性需求。因此,GPU、FPGA等新型的计算平台相继被提出。这些平台中,FPGA以其低成本、低延时(实时性)、高能效、高可靠的特点,为CNN的硬件加速提出了一种全新的尝试。
[0005] 如果使用基于FPGA主从式结构的平台对CNN进行训练,即,CPU做为主控器对需要训练的数据进行分发和调度,其余的几FPGA作为从机完成CNN的训练,就会存在多FPGA之间巨大的通信带宽开销的问题。这是因为FPGA从机之间的通信都需要经过主控的CPU。例如,一个有5亿个可训练参数的网络,每个参数占4字节(Byte),也就是约1.9GB的数据量。假设系统上网络硬件能够支持1GB/s的带宽,系统在两块FPGA上并行训练,将会让每次迭代都变慢1.9秒。如果在10个FPGA上并行训练,将会让每次迭代都变慢17.1秒。通过上述的粗略估算,随着FPGA数量的增加,每次迭代的时间都会线性增长。即便每个迭代会花几秒钟,对于大型网络来说,会大大降低训练的效率。

发明内容

[0006] 本发明要解决的技术问题在于:在实现CNN的训练过程中,一主多从的多FPGA结构通信带宽开销太大。有鉴于此,本发明提出了一种基于多FPGA环状通信的CNN加速装置,针对现有技术中的上述问题提出解决方案。
[0007] 一方面,提出了一种基于多FPGA环状通信的CNN加速装置,其特征在于,所述加速装置包括多个FPGA组成的环状数据通信结构。
[0008] 所述的加速装置,其特征在于,所述环状数据通信结构是各FPGA组成的首尾相连的闭环。
[0009] 所述的加速装置,其特征在于,所述各FPGA之间通过PCI-E接口进行通信。
[0010] 所述的加速装置,其特征在于,所述每个FPGA映射一套完整的CNN。
[0011] 所述的加速装置,其特征在于,用于网络训练的数据按照接入环状结构的FPGA数目平均分配,各FPGA独立处理数据子集。
[0012] 另一方面,提出了一种多FPGA环状数据通信方法,其特征在于,所述多FPGA环状数据通信方法包括三个步骤:
[0013] 假定环状通信时刻各FPGA已经计算出该网络层所有神经元连接的误差梯度下降值。各FPGA中分别有一组数据,该组数据包括多个数据块,每个数据块含有一个神经元连接对应的梯度下降值,该组数据涉及该网络层所有神经元连接。
[0014] 步骤1:数据迭代,指的是各FPGA发送一个误差梯度下降值数据块到下一个FPGA,并接收上一个FPGA发送的一个误差梯度下降值数据块,直到每个FPGA都有一个完整的数据块,该数据块包含一个神经元连接在所有FPGA中对应的梯度下降值。
[0015] 步骤2:数据交换,指的是各FPGA发送一个完整的误差梯度下降值数据块到下一个FPGA,并接收上一个FPGA发送的一个完整的误差梯度下降值数据块,直到每个FPGA都有一组数据,该组数据由多个数据块构成,每个数据块涉及一个神经元连接,该组数据涉及所有神经元连接。
[0016] 步骤3:计算误差梯度下降平均值,指的是每个FPGA分别计算来自各FPGA误差梯度下降值的平均值,用于改变该层神经元连接对应的权值。
[0017] 由上述方案可以看出,本发明包含多个FPGA组成的环状数据通信结构及环状数据通信方法,本发明能够有效的减少通信带宽开销,同时使得训练速度得到成倍增加,为CNN硬件加速提供了一个现实可行的方案。附图说明
[0018] 图1是Lenet-5结构示意图;
[0019] 图2是装置总体示意图;
[0020] 图3是多FPGA环状通信结构示意图;
[0021] 图4是神经网络单元示意图;
[0022] 图5是多FPGA的数据环状通信流程;
[0023] 图6是各FPGA初始数据分布图;
[0024] 图7是数据环状通信方法中数据迭代结果;
[0025] 图8是数据环状通信方法中数据交换结果。

具体实施方式

[0026] 以下将参考附图详细说明本发明的各种示例性实施例。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0027] 这里所说明的任何实施例不必解释为优于或好于其它实施例。
[0028] 另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、模块和电路未作详细描述,以便于凸显本发明的主旨。
以下结合附图对本发明的具体实施例CNN模型lenet-5进行详细描述。
[0029] 图1是lenet-5结构示意图,lenet-5包括两个卷积层C1、C3;两个池化层S2、S4;一个全连接层F5。
[0030] 图2是装置总体示意图。所述装置包括4块FPGA组成的环状通信结构。各FPGA映射一套完整的CNN,各FPGA分别处理数据子集,数据子集由总的训练集平均分配。各FPGA之间通过PCI-E进行通信。环状数据通信结构是各FPGA组成的首尾相连的闭环,每块FPGA两侧各有一块FPGA,并且只从一侧的FPGA接受数据,再把数据发送到另一侧的FPGA当中。
[0031] 图3是多FPGA环状通信结构示意图。FPGA1、FPGA2、FPGA3、FPGA4组成了环状数据通信结构,通信环301用于调整卷积C1的权值,通信环302用于调整卷积C3的权值。对于每个FPGA,训练过程包括数据的正向传播和误差的反向传播。数据的正向传播用于计算误差;误差的反向传播,通过计算误差相对权值的梯度下降值,用来调整模型的权值,直至收敛。多FPGA环状数据通信结构,用于数据反向传播。从通信环302开始,通过环内各FPGA之间的数据通信,各FPGA计算不同数据子集的平均误差梯度下降值,用于反向调整卷积层权值。
[0032] 图4是神经网络单元示意图。神经网络单元由一个“神经元”构成,这个“神经元”是一个以x1、x2、x3、x4及截距+1为输入值的运算单元,401表示输出神经元,402表示输出神经元与上一层神经元的连接,设各神经元连接对应的权值为wk1、wk2、wk3、wk4,这里的k表示第k个FPGA(k=1,2,3,4),则用 表示4个神经元连接的误差梯度下降,其中E为误差函数。权值调整公式为
[0033]
[0034] i为对应的神经元连接,这里i∈{1,2,3,4},负号表示梯度下降,常数η∈(0,1)表示比例系数,在训练中反映学习速率。
[0035] 图5是一种多FPGA的数据环状通信方法的三个步骤,具体实现步骤如下:
[0036] 图6是各FPGA初始数据分布图。这里为方便叙述,假定环状通信时刻各FPGA已经计算出4个神经元连接的误差梯度下降值 误差梯度下降值的计算过程不再叙述。
[0037] 步骤1:数据迭代
[0038] 首先,各FPGA会执行3次数据迭代。在每一次迭代中,被发送的数据和接受的数据是不同的。例如,如图6中的数据传输箭头所示,在第一次迭代中,FPGA1,FPGA2,FPGA3,FPGA4将会同时发送和接收以下的数据: (FPGA1); (FPGA2);(FPGA3); (FPGA4)。在第一次发送和接收完成后,每个FPGA会有一
个数据更新为原数据和其他FPGA发送过来的数据,4个FPGA更新后的那个数据为:
(FPGA1); (FPGA2); (FPGA3); (FPGA4)。在
下一次迭代中,重复上述过程。图7是数据环状通信方法中数据迭代结果。第三次迭代后,如图7所示,每个FPGA都有一块数据,该数据包含一个神经元连接在4个FPGA中对应的误差梯度下降值。各FPGA中最完整的那个数据为: (FPGA1);
(FPGA2); (FPGA3);
(FPGA4)。
[0039] 步骤2:数据交换
[0040] 接着,各FPGA会执行3次数据交换。第一次交换数据时,FPGA1接收FPGA4的并发送 到FPGA2。首次交换完成之后,FPGA1将有最终数组中的 和 其余
FPGA都将有最终数组的两块数据。图8是数据环状通信方法中数据交换结果。第三次交换后,如图8所示,每个FPGA都有4块数据,每块数据包含1个FPGA对应的4个神经元的误差梯度下降值,这4块数据涉及所有神经元连接。四块数据分别为
[0041] 步骤3:计算误差梯度下降平均值
[0042] 最后每个FPGA分别计算来自4个FPGA的4个神经元误差梯度下降的平均值,分别用于改变该层四个神经元对应的权值。公式(1)中的 分别对应在误差反向传播过程中,各卷积层每调整一次权值,就要
使用一次该数据环状通信方法来计算平均误差梯度下降,最终调整权值使误差不断减小。
[0043] 多FPGA环状数据通信方法相当于对于同一数据子集,同时使用4个FPGA运行标准随机梯度下降(SGD),从而获得4倍运算速度的提升。该方法并不特定于任何CNN架构,使用所述环状通信方法,其通信成本是固定的,与FPGA的数量无关,有效的减少了通信成本,提升训练处理速度。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈