[发明专利]基于多FPGA环状通信的卷积神经网络加速装置及方法有效
申请号: | 201810168597.9 | 申请日: | 2018-02-28 |
公开(公告)号: | CN108334939B | 公开(公告)日: | 2023-08-18 |
发明(设计)人: | 余乐;王瑶;燕鹤;彭鑫磊 | 申请(专利权)人: | 北京工商大学 |
主分类号: | G06N3/0464 | 分类号: | G06N3/0464;G06N3/063;G06N3/08 |
代理公司: | 北京盛询知识产权代理有限公司 11901 | 代理人: | 张海青 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 环状 通信 卷积 神经网络 加速 装置 方法 | ||
1.一种基于多FPGA环状通信的卷积神经网络加速装置,其特征在于,所述加速装置包括多个FPGA组成的环状数据通信结构;所述环状数据通信结构是各FPGA组成的首尾相连的闭环;
所述各FPGA之间通过PCI-E接口进行通信;
每个所述FPGA映射一套完整的卷积神经网络;
用于网络训练的数据按照接入环状结构的FPGA数目平均分配,各FPGA独立处理数据子集;
CNN模型采用lenet-5,包括两个卷积层(C1)、(C3);两个池化层(S2)、(S4);一个全连接层F5;所述装置包括4块FPGA组成的环状通信结构;各FPGA映射一套完整的CNN,各FPGA分别处理数据子集,数据子集由总的训练集平均分配;各FPGA之间通过PCI-E进行通信;环状数据通信结构是各FPGA组成的首尾相连的闭环,每块FPGA两侧各有一块FPGA,并且只从一侧的FPGA接受数据,再把数据发送到另一侧的FPGA当中;FPGA1、FPGA2、FPGA3、FPGA4组成了环状数据通信结构,第一通信环(301)用于调整第一卷积层(C1)的权值,第二通信环(302)用于调整第二卷积层(C3)的权值;对于每个FPGA,训练过程包括数据的正向传播和误差的反向传播;数据的正向传播用于计算误差;误差的反向传播,通过计算误差相对权值的梯度下降值,用来调整模型的权值,直至收敛;多FPGA环状数据通信结构,用于数据反向传播;第二通信环(302)开始,通过环内各FPGA之间的数据通信,各FPGA计算不同数据子集的平均误差梯度下降值,用于反向调整卷积层权值;神经网络单元由一个神经元构成,这个神经元是一个以x1、x2、x3、x4及截距+1为输入值的运算单元,设各神经元连接对应的权值为Wk1、Wk2、Wk3、Wk4,这里的k表示第k个FPGA,k=1,2,3,4,则用表示4个神经元连接的误差梯度下降,其中E为误差函数;权值调整公式为i为对应的神经元连接,这里i∈{1,2,3,4},负号表示梯度下降,常数η∈(0,1)表示比例系数,在训练中反映学习速率。
2.一种多FPGA环状数据通信方法,应用于权利要求1所述的基于多FPGA环状通信的卷积神经网络加速装置,其特征在于,所述多FPGA环状数据通信方法包括三个步骤:
假定环状通信时刻各FPGA已经计算出网络层所有神经元连接的误差梯度下降值;各FPGA中分别有一组数据,该组数据包括多个数据块,每个数据块含有一个神经元连接对应的梯度下降值,该组数据涉及网络层所有神经元连接;
步骤1:数据迭代,指的是各FPGA发送一个误差梯度下降值数据块到下一个FPGA,并接收上一个FPGA发送的一个误差梯度下降值数据块,直到每个FPGA都有一个完整的数据块,该数据块包含一个神经元连接在所有FPGA中对应的梯度下降值;
步骤2:数据交换,指的是各FPGA发送一个完整的误差梯度下降值数据块到下一个FPGA,并接收上一个FPGA发送的一个完整的误差梯度下降值数据块,直到每个FPGA都有一组数据,该组数据由多个数据块构成,每个数据块涉及一个神经元连接,该组数据涉及所有神经元连接;
步骤3:计算误差梯度下降平均值,指的是每个FPGA分别计算来自各FPGA误差梯度下降值的平均值,用于改变层神经元连接对应的权值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工商大学,未经北京工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810168597.9/1.html,转载请声明来源钻瓜专利网。