[发明专利]一种应用于卷积神经网络中硬件加速器的数据传输方法有效
申请号: | 201910866944.X | 申请日: | 2019-09-12 |
公开(公告)号: | CN110569970B | 公开(公告)日: | 2022-03-15 |
发明(设计)人: | 杜高明;陈邦溢;任宇翔;张多利;宋宇鲲;尹勇生 | 申请(专利权)人: | 合肥工业大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04 |
代理公司: | 安徽省合肥新安专利代理有限责任公司 34101 | 代理人: | 陆丽莉;何梅生 |
地址: | 230009 安*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种应用于卷积神经网络中硬件加速器的数据传输方法,是通过动态随机存取存储器DDR3将数据流传输进入UI接口的读FIFO中,当FIFO中的输入数据剩余量到达阈值后,控制器通过片上网络将输入数据传输进入PE的存储中,PE中的计算模块将会根据计算过程读取存储中的数据量来进行计算,计算完成后,数据从计算结果缓存单元向编码模块传递并进行编码压缩,将数据发送进入UI接口中的写FIFO,最后传入动态随机存取存储器DDR3中。本发明能降低数据的存储以及读取功耗、数据的传输时间以及功耗、减少计算量、在降低计算功耗同时提高计算单元利用率并且减少存储空间的消耗。 | ||
搜索关键词: | 一种 应用于 卷积 神经网络 硬件 加速器 数据传输 方法 | ||
【主权项】:
1.一种应用于卷积神经网络中硬件加速器的数据传输方法,所述卷积神经网络是包括I层卷积层和若干层池化层;其特征是,所述硬件加速器是由动态随机存取存储器DDR3、用户接口模块、主控器、片上网络以及卷积计算单元阵列组成;/n所述用户接口模块由配置队列、地址生成器、读写控制单元、输入先入先出队列、输出先入先出队列;所述读写控制单元包含一个第一计数器;所述输入先入先出队是由输入编码先入先出队列rdbfifo、输入有效值先入先出队列rdififo、输入权重先入先出队列rdwfifo、输入地址先入先出队列rdafifo组成;所述输出先入先出队是由输出编码先入先出队列wrbfifo、输出有效值先入先出队列wrififo以及输出地址先入先出队列wrafifo构成;/n所述主控制器由参数配置单元、发送模块以及接收模块组成,所述发送模块由输入控制器、数据读取模块以及两个数据通道组成,所述输入控制器含有一个第二计数器;所述接收模块由输出控制器和片上暂存以及编码单元组成,所述输出控制器包含有一个ReLu激活函数;所述输出控制单元含有一个列计数器以及一个行计数器,所述编码单元中包含一个编码行计数信号以及一个有效值计数器;/n所述卷积计算单元阵列由若干个卷积计算单元组成,每个卷积计算单元中包含n个乘法器、一个乘计数器、一个译码单元以及卷积先入先出队列,所述卷积先入先出队列包含卷积编码先入先出队列、卷积有效值先入先出队列、卷积权重先入先出队列以及卷积部分和先入先出队列;/n所述数据传输方法是按如下步骤进行:/n步骤1、所述用户接口模块中的配置队列接收并存储上位机发送过来的I层卷积计算的配置信息;/n步骤2、初始化i=1;/n步骤3、所述动态随机存取存储器DDR3接收所述上位机发送的开始信号时,同时存储所述上位机发送的第i层的写入数据,并在存储完所述写入数据后向所述用户接口模块的读写控制单元发送一个初始化完成信号;所述第i层的写入数据包括:第i层的N张输入图片的编码数据以及其有效值数据、第i层的权重数据、第i层的地址数据;/n步骤4、所述硬件加速器在进行第i层卷积计算时,所述配置队列取出第i层的配置信息用于对所述读写控制单元、输入先入先出队列以及地址生成器进行参数配置,同时将第i层的配置信息发送给所述参数配置单元;所述第i层的配置信息包括:第i层的卷积核信息、第i层的池化信息、第i层的第i张输入图片的起始读取地址、第i层的输入图片信息和第i层的输出图片信息;/n步骤5、所述参数配置单元对第i层的配置信息进行存储,并将第i层的卷积核信息以及第i层的输入图片信息传输给输入控制器;/n步骤6、所述输入控制器接收并存储所述第i层卷积核信息以及第i层输入图片信息,并将所述第i层卷积核信息通过片上网络发送给相应的卷积计算单元用于存储,从而完成第i层卷积计算的配置;/n步骤7、初始化n=1;/n步骤8、所述读写控制单元根据所接收到的初始化完成信号,产生一个高电平的第i层的第n张读数据信号并分别传递给所述动态随机存取存储器DDR3和输入先入先出队列用于存储;/n步骤9、述动态随机存取存储器DDR3所根据所述第i层的第n张读控制信号先将所述第i层的地址数据发送给所述输入地址先入先出队列rdafifo用于存储;/n步骤10、所述读写控制单元从所述输入地址先入先出队列rdafifo中读取第i层的第n个地址数据作为第i层的第n张输入图片的末地址,并根据所述地址生成器中第i层的第n张输入图片的初始读取地址,获取动态随机存取存储器DDR3中第i层的第n张输入图片的编码数据并传递给所述输入编码先入先出队列rdbfifo用于存储,同时利用所述第一计数器对第i层的第n张输入图片的编码数据进行计数,得到第i层的编码计数值;/n步骤11、所述读写控制单元控制所述地址生成器生成下一个读取地址,从而根据下一个读取地址继续读取所述第i层的第n张输入图片的编码数据,并利用所述第一计数器进行计数,直到所述第i层的编码计数等于第i层的第n张输入图片尺寸时,所述读写控制单元控制从动态随机存储器DDR3中读取第i层的第n张输入图片的有效值数据并存储所述输入有效值先入先出队列rdififo中,同时控制所述地址生成器生成下一个读取地址,直到所述地址生成器产生的当前地址等于第i层的第n张输入图片的末地址时,所述读写控制单元停止加载所述第i层的第n张输入图片的编码数据以及有效值数据,从而完成所述第i层的第n张输入图片的读取;/n步骤12、所述读写控制单元将所述地址生成器生成的当前地址的下一地址作为第i层的第n+1张输入图片的初始读取地址;/n步骤13、所述读写控制单元根据第i层的配置信息中的卷积核信息读取第i层的第n张输入图片对应的权重数据,并存入所述输入权重先入先出队列rdwfifo后,发送一个第i层第n次输入读取完成信号给所述输入控制器;/n步骤14、所述输入控制器接收来所述第i层第n次输入读取完成信号,并根据第i层的输入图片信息以及卷积核信息从所述输入先入先出队列中读取第i层第n张输入图片对应的编码数据以及其有效值数据、权重数据并发送给所述片上网络;/n步骤15、所述片上网络接收所述第i层第n张输入图片对应的编码数据以及其有效值数据、权重数据并发送给相应的卷积计算单元进行计算,得到第i层第n张输入图片所对应的M张部分和输出特征图并通过所述片上网络发送给所述片上暂存,同时产生一个第i层第n张输入图片的计算完成信号;/n步骤16、所述片上暂存接收到所述第i层第n张输入图片所对应的M张特征图后,判断所述片上暂存中是否有数据,若有数据,则将所述片上暂存内的数据与所述第i层第n张输入图片所对应的M张部分和输出特征图相加后再存储,否则,直接存入片上暂存中;/n步骤17、所述读写控制单元通过所述片上网络接收所述计算完成信号,并从所述输入地址先入先出队列rdafifo中读取第i层的第n+1个地址数据作为第i层的第n+1张输入图片的末地址;同时产生一个高电平的第i层的第n+1张读控制信号并分别传递给所述动态随机存取存储器DDR3和输入先入先出队列用于存储;/n步骤18;将n+1赋值给n后,判断n>N是否成立,若成立,则表示得到第i层N张输入图片所对应的M张输出特征图,并执行步骤19;否则,返回步骤10;/n步骤19、所述编码单元将有效值计数器初始化为0,所述输出控制器读取所述片上暂存中的第i层M张输出特征图分别输入所述ReLu激活函数中进行处理,得到第i层的M张激活特征图并存入片上暂存中;/n步骤20、所述输出控制器根据参数配置中第i层的池化信息判断是否进行池化操作,若是,则执行步骤21,若否,执行步骤22;/n步骤21、所述输出控制器将第i层的M张激活特征图按照第i层的池化信息中尺寸大小划分为若干个池化块,并将各个池化块中的最大值组成第i层的M张池化特征图存入片上暂存中;/n步骤22、初始化r=1;/n步骤23、所述编码单元读取片上暂存中的第i层第m张激活特征图或池化特征图的第r行数据,并按照从左到右的顺序一一遍历,判断遍历到的数据是否等于“0”,若等于0,则向输出编码先入先出队列wrbfifo中相应存入一个1bit的数据“0”;否则,向输出编码先入先出队列wrbfifo相应存入一个1bit的数据“1”,并且相应的非0值作为有效值存入输出有效值先入先出队列wrififo中,令所述有效值计数器加1;直到第r行遍历完成,从而将有效值计数器中的最终值存入输出编码先入先出队列wrbfifo中后清零;m=1,2,…M;/n步骤24、将r+1赋值给r后,判断r>M×R是否成立,若成立,则表示第i层M张输出特征图全部编码完成,并得到第i层M张输出特征图的编码数据及其有效值,所述编码单元开始输出写操作,同时输出控制器向读写控制器发送一个第i层输出写信号,否则,返回步骤23;其中,R表示第m张输出特征图的总行数;/n步骤25、初始化g=1;/n步骤26、所述读写控制单元根据所述第i层的输出写信号,向所述动态随机存取存储器DDR3写入第i层第g张输出特征图的编码数据及其有效值,并在完成相应写入操作后,所述地址生成器产生第i层第g张输出特征图的末地址并存入输出地址先入先出队列wrafifo中;/n步骤27、将g+1赋值给g,并判断g>M是否成立,若成立,则表示第i层的M张输出特征图的编码数据及其有效值全部存入所述动态随机存取存储器DDR3中并执行步骤28,否则,返回步骤26;/n步骤28、所述输出地址先入先出队列wrafifo中所有末地址存入所述动态随机存取存储器DDR3中;/n步骤29、将i+1赋值给i,并判断i>I是否成立,若成立,则表示所述硬件加速器内的I层卷积层和若干层池化层计算完成;否则,返回步骤4顺序执行。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910866944.X/,转载请声明来源钻瓜专利网。