卷积神经网络的运算方法、装置及DPU制造方法及图纸

技术编号:21433625 阅读:33 留言:0更新日期:2019-06-22 12:21
本发明专利技术公开了一种卷积神经网络的运算方法、装置及DPU,方法包括:第一缓存区获取神经网络模型第n层的参数以及第一数据;第一运算单元根据神经网络第n层的参数对第一数据进行计算,将计算结果作为第二数据;第二缓存区在第一运算单元计算的同时,获取神经网络模型第n+1层的参数;在第一运算单元计算完成后,第二缓存区接收并存储第二数据;第二运算单元根据第二缓存区存储的神经网络模型第n+1层的参数对第二数据进行计算,将计算结果对第一数据进行更新,将更新后的第一数据存储在第一缓存区,重复上述步骤直到预设的神经网络模型的最大层数的计算完毕为止。本发明专利技术提供的卷积神经网络的运算方法、装置及DPU,提高了神经网络的运行效率。

【技术实现步骤摘要】
卷积神经网络的运算方法、装置及DPU
本专利技术是关于卷积神经网络,特别是关于一种卷积神经网络的运算方法、装置及DPU。
技术介绍
目前,卷积神经网络(英文全称:ConvolutionalNeuralNetworks,缩写:CNN)广泛运用在图像类应用中。卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。通常CNN模型是由输入层、卷积层、池化层、全连接层和分类层组合而构成的,在CNN中卷积层和不同的卷积核进行局部连接,从而产生输入数据的多个特征输出,将输出经过池化层降维后通过全连接层和分类层获取与输出目标的误差,再利用反向传播算法反复地更新CNN中相邻层神经元之间的连接权值,缩小与输出目标的误差,最终完成整个模型参数的训练。现有技术中,通常使用深度学习处理器(DeeplearningProcessingUint,DPU)来进行CNN的运算。典型的DPU体系结构中处理器外部利用一个中央处理器(英文全称:CentralProcessingUnit,缩写:CPU)作为系统整体调度,将待处理数据以及神经元参数存储在外部存储即内存中。标准的DPU单元,每次只能计算一层的神经元,运算单元获取内存中的待处理数据以及神经元参数,并进行计算,该层神经元计算完成之后,将结果作为下一层的待计算数据,运算单元再通过内存获取下一层的神经元参数,完成下一层的神经网络运算。基于此,本申请的专利技术人发现,现有的计算模式运算单元直接从内存中获取神经元的参数,需要一定的时延,而此时运算单元处于空闲状态,造成运行速率低,影响了系统的运行效率。公开于该背景技术部分的信息仅仅旨在增加对本专利技术的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现思路
本专利技术的目的在于提供一种卷积神经网络的运算方法、装置及DPU,其能够提高运行效率。为实现上述目的,本专利技术提供了一种卷积神经网络的运算方法,包括:第一缓存区获取内存中存储的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及第一数据存储在所述第一缓存区,n为奇数;第一运算单元用于获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对所述第一数据进行计算,将计算结果作为第二数据;在根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,第二缓存区从内存中获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区;在所述第一运算单元计算完成后,第二缓存区存储所述第二数据;第二运算单元获取第二缓存区中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对所述第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。在一优选的实施方式中,n从1开始,进行上述步骤,直到预设的神经网络模型的最大层数的计算完毕为止。为实现上述目的,本专利技术还提供了一种卷积神经网络的运算装置,外部配置有内存用于存储卷积神经网络模型的参数,该运算装置包括:第一缓存区,与所述内存相连接,所述第一缓存区用于获取所述内存中存储的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及所述第一数据存储在所述第一缓存区,n为奇数,且n≥1;第一运算单元,与所述第一缓存区相连接,所述第一运算单元用于获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对所述第一数据进行计算,将计算结果作为第二数据;第二缓存区,分别与所述内存以及所述第一运算单元相连接,在所述第一运算单元根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,所述第二缓存区从所述内存中获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区;在所述第一运算单元计算完成后,所述第二缓存区接收并存储所述第二数据;第二运算单元,分别与所述第二缓存区以及第一缓存区相连接,所述第二运算单元用于获取第二缓存区中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对所述第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。在一优选的实施方式中,所述神经网络模型第n层的参数包括:偏置参数以及卷积参数;所述第一运算单元包括:第一卷积运算单元,与所述第一缓存区相连接,所述第一卷积运算单元用于获取第一缓存区中存储的第一数据以及卷积参数,对所述第一数据以及所述卷积参数进行卷积运算,将卷积运算的结果进行输出;第一求和运算单元,分别与所述第一缓存区以及所述第一卷积运算单元相连接,所述第一求和运算单元用于获取第一缓存区中存储的所述偏置参数;接收所述卷积运算的结果,将所述偏置参数与所述卷积运算的结果进行求和运算,将求和运算的结果进行输出。在一优选的实施方式中,所述神经网络模型第n层的参数包括:激活参数;所述第一运算单元包括:第一激活运算单元,分别与所述第一缓存区以及所述第一求和运算单元相连接,所述第一激活运算单元用于获取所述第一缓存区中存储的激活参数;接收所述求和运算的结果,将所述激活参数与所述求和运算的结果进行激活运算,将激活运算的结果进行输出。在一优选的实施方式中,所述神经网络模型第n层的参数包括池化参数;所述第一运算单元包括:第一池化运算单元,分别与所述第一缓存区以及所述第一激活运算单元相连接,所述第一池化运算单元用于获取第一缓存区中存储的池化参数;并接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,将池化运算的结果作为第二数据,并将所述第二数据传输至所述第二缓存区。在一优选的实施方式中,所述神经网络模型第n+1层的参数包括:偏置参数以及卷积参数;所述第二运算单元包括:第二卷积运算单元,与所述第二缓存区相连接,所述第二卷积运算单元用于获取第二缓存区中存储的第二数据以及卷积参数,对所述第二数据以及所述卷积参数进行卷积运算,将卷积运算的结果进行输出;第二求和运算单元,分别与所述第二缓存区以及所述第二卷积运算单元相连接,所述第二求和运算单元用于获取第二缓存区中存储的所述偏置参数;接收所述卷积运算的结果,将所述偏置参数与所述卷积运算的结果进行求和运算,将求和运算的结果进行输出。在一优选的实施方式中,所述神经网络模型第n+1层的参数包括:激活参数;所述第二运算单元包括:第二激活运算单元,分别与所述第二缓存区以及所述第二求和运算单元相连接,所述第二激活运算单元用于获取所述第二缓存区中存储的激活参数;接收所述求和运算的结果,将所述激活参数与所述求和运算的结果进行激活运算,将激活运算的结果进行输出。在一优选的实施方式中,所述神经网络模型第n+1层的参数包括:池化参数;所述第二运算单元包括:第二池化运算单元,分别与所述第二缓存区以及所述第二激活运算单元相连接,所述第二池化运算单元用于获取第二缓存区中存储的池化参数;接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,根据池化运算的结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。为实现本文档来自技高网
...

【技术保护点】
1.一种卷积神经网络的运算方法,其特征在于,包括:第一缓存区获取内存中存储的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及第一数据存储在所述第一缓存区,n为奇数;第一运算单元获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对所述第一数据进行计算,将计算结果作为第二数据;在根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,第二缓存区从内存中获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区;在所述第一运算单元计算完成后,第二缓存区存储所述第二数据;第二运算单元获取第二缓存区中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对所述第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。

【技术特征摘要】
1.一种卷积神经网络的运算方法,其特征在于,包括:第一缓存区获取内存中存储的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及第一数据存储在所述第一缓存区,n为奇数;第一运算单元获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对所述第一数据进行计算,将计算结果作为第二数据;在根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,第二缓存区从内存中获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区;在所述第一运算单元计算完成后,第二缓存区存储所述第二数据;第二运算单元获取第二缓存区中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对所述第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。2.如权利要求1所述的运算方法,其特征在于,其中,n从1开始,执行如权利要求1所述的步骤,直到预设的神经网络模型的最大层数的计算完毕为止。3.一种卷积神经网络的运算装置,外部配置有内存用于存储卷积神经网络模型的参数,其特征在于,该运算装置包括:第一缓存区,与所述内存相连接,所述第一缓存区用于获取所述内存中存储的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及所述第一数据存储在所述第一缓存区,n为奇数,且n≥1;第一运算单元,与所述第一缓存区相连接,所述第一运算单元用于获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对所述第一数据进行计算,将计算结果作为第二数据;第二缓存区,分别与所述内存以及所述第一运算单元相连接,在所述第一运算单元根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,所述第二缓存区从所述内存中获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区;在所述第一运算单元计算完成后,所述第二缓存区接收并存储所述第二数据;第二运算单元,分别与所述第二缓存区以及第一缓存区相连接,所述第二运算单元用于获取第二缓存区中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对所述第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。4.如权利要求3所述的运算装置,其特征在于,所述神经网络模型第n层的参数包括:偏置参数以及卷积参数;所述第一运算单元包括:第一卷积运算单元,与所述第一缓存区相连接,所述第一卷积运算单元用于获取第一缓存区中存储的第一数据以及卷积参数,对所述第一数据以及所述卷积参数进行卷积运算,将卷积运算的结果进行输出;第一求和...

【专利技术属性】
技术研发人员:崔文朋乔磊池颖英周文博史善哲房超郑哲刘亮龙希田王亮
申请(专利权)人:北京智芯微电子科技有限公司国网信息通信产业集团有限公司国家电网有限公司国网河北省电力有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1