CN109919312A - 卷积神经网络的运算方法、装置及dpu - Google Patents

卷积神经网络的运算方法、装置及dpu Download PDF

Info

Publication number
CN109919312A
CN109919312A CN201910249144.3A CN201910249144A CN109919312A CN 109919312 A CN109919312 A CN 109919312A CN 201910249144 A CN201910249144 A CN 201910249144A CN 109919312 A CN109919312 A CN 109919312A
Authority
CN
China
Prior art keywords
parameter
buffer area
arithmetic element
data
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910249144.3A
Other languages
English (en)
Other versions
CN109919312B (zh
Inventor
崔文朋
乔磊
池颖英
周文博
史善哲
房超
郑哲
刘亮
龙希田
王亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongguancun Xinhai Preferred Technology Co ltd
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Hebei Electric Power Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
State Grid Hebei Electric Power Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, State Grid Hebei Electric Power Co Ltd, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201910249144.3A priority Critical patent/CN109919312B/zh
Publication of CN109919312A publication Critical patent/CN109919312A/zh
Application granted granted Critical
Publication of CN109919312B publication Critical patent/CN109919312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

卷积神经网络的运算方法、装置及DPU
技术领域
本发明是关于卷积神经网络,特别是关于一种卷积神经网络的运算方法、装置及DPU。
背景技术
目前,卷积神经网络(英文全称:Convolutional Neural Networks,缩写:CNN)广泛运用在图像类应用中。卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。通常CNN模型是由输入层、卷积层、池化层、全连接层和分类层组合而构成的,在CNN中卷积层和不同的卷积核进行局部连接,从而产生输入数据的多个特征输出,将输出经过池化层降维后通过全连接层和分类层获取与输出目标的误差,再利用反向传播算法反复地更新CNN中相邻层神经元之间的连接权值,缩小与输出目标的误差,最终完成整个模型参数的训练。
现有技术中,通常使用深度学习处理器(Deep learning Processing Uint,DPU)来进行CNN的运算。典型的DPU体系结构中处理器外部利用一个中央处理器(英文全称:Central Processing Unit,缩写: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层的参数包括:池化参数;所述第二运算单元包括:第二池化运算单元,分别与所述第二缓存区以及所述第二激活运算单元相连接,所述第二池化运算单元用于获取第二缓存区中存储的池化参数;接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,根据池化运算的结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。
为实现上述目的,本发明还提供了一种深度学习处理器DPU,包括上述第一缓存区、第一运算单元、第二缓存区以及第二运算单元。
与现有技术相比,根据本发明的卷积神经网络的运算方法、装置及DPU,通过集成双缓存区以及双运算单元,在第一运算单元进行计算的同时,第二缓存区获取神经网络模型下一层的参数并存储,第一运算单元完成计算后将计算结果作为第二数据,第二缓存区存储所述第二数据,第二运算单元直接根据第二缓存区中存储的第二数据以及神经网络模型下一层的参数进行计算,降低了运算单元等待神经网络模型参数的搬移时间,提高内存访问效率,进而提高了神经网络的运行效率。
附图说明
图1是根据本发明一优选实施方式的卷积神经网络的运算方法的流程图。
图2是根据本发明下一实施方式的卷积神经网络的运算装置的结构示意图。
图3是根据本发明另一实施方式的第一运算单元的结构示意图。
图4是根据本发明又一实施方式的第二运算单元的结构示意图。
主要附图标记说明:
1-第一缓存区,2-第一运算单元,21-第一卷积运算单元,22-第一求和运算单元,23-第一激活运算单元,24-第一池化运算单元,3-第二缓存区,4-第二运算单元,41-第二卷积运算单元,42-第二求和运算单元,43-第二激活运算单元,44-第二池化运算单元。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
实施例1
如图1所示,其为根据本发明一优选实施方式的卷积神经网络的运算方法的流程图,本实施例提供的卷积神经网络的运算装置是基于DPU实现的,外部配置有中央处理器(英文全称:Central Processing Unit,缩写:CPU)存储卷积神经网络模型以及神经网络的参数。
本实施例的卷积神经网络的运算方法包括:步骤S1-S5。
步骤S1,第一缓存区获取内存中存储的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及第一数据存储在所述第一缓存区,n为奇数。
步骤S2,第一运算单元获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对所述第一数据进行计算,将计算结果作为第二数据。
具体的,第一运算单元根据预设的神经网络模型对所述第一数据进行计算。
步骤S3,在根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,第二缓存区从内存中获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区。
步骤S4,在所述第一运算单元计算完成后,第二缓存区存储所述第二数据。
步骤S5,第二运算单元获取第二缓存区中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对所述第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。
其中n从1开始,进行上述步骤,直到预设的神经网络模型的最大层数的计算完毕为止。直到预设的神经网络模型的最大层数的计算完毕为止,可以理解为,当第一运算单元或第二运算单元获取了神经网络模型的最大层数并进行计算时,若计算完毕,则上述流程结束。
其中,在第二运算单元4开始运算时,获取神经网络模型第n+1层的参数之后,对n进行更新,将n的值更新为n+2。本实施例中也可以通过对n的值进行判断来控制是否结束上述流程。具体的,在第二运算单元4开始运算时,判断n是否为神经网络模型的最大层数-1,若是则在第二运算单元4运算结束时,输出运算结果,终止流程;若不是,则将n的值更新为n+2。
相应的,第一缓存区1在所述第二运算单元4根据所述神经网络模型第n+1层的参数对所述第二数据进行计算的同时,获取神经网络模型更新后的第n层的参数并存储在所述第一缓存区1;在所述第二运算单元4计算完成后,第一缓存区1存储第一数据,直至完成神经网络模型的所有层的参数获取,也就是n+1层为神经网络模型的最大层,输出最终的计算结果。
本实施例中,当进行第一层参数的获取时,第一数据可以为图像分解后的多维矩阵数据。当进行非第一层参数的获取时,第一数据为上一层第二运算单元的计算结果。本实施例中的计算,为神经元计算。
需要说明的是,本实施例中,输出最终的计算结果为与输入矩阵对应的多维矩阵,多位矩阵经过分类器Softmax函数进行输出,得到输入数据的监测结果。
本实施例提供的卷积神经网络的运算装置,通过集成双缓存区以及双运算单元,在第一运算单元进行计算的同时,第二缓存区获取神经网络模型下一层的参数并存储,第一运算单元完成计算后将计算结果作为第二数据,第二缓存区存储所述第二数据,第二运算单元直接根据第二缓存区中存储的第二数据以及神经网络模型下一层的参数进行计算,降低了运算单元等待神经网络模型参数的搬移时间,提高内存访问效率,进而提高了神经网络的运行效率。
实施例2
如图2所示,其为根据本发明下一优选实施方式的卷积神经网络的运算装置10的结构示意图,该运算装置包括:第一缓存区1、第一运算单元2、第二缓存区3、第二运算单元4。
本实施例提供的卷积神经网络的运算装置是基于DPU实现的,外部配置有外部存储即内存用于存储卷积神经网络模型以及神经网络的参数。本实施例提供的仅仅是根据预存的神经网络模型进行预测,并不对神经网络模型或具体参数的选取方法进行限定。
在CNN的模型结构中,其每一层内的卷积运算都只与当前层的特征运算核相关,与其他层是独立且不相关的,因此,本实施例针对CNN的特有结构进行加速设计的改进。在初始化时,对卷积神经网络的运算装置进行配置,第一运算单元以及第二运算单元获取内存中存储的神经网络模型。
第一缓存区1与内存相连接,获取存储在内存中的神经网络模型第n层的参数以及第一数据,并将所述神经网络模型第n层的参数以及所述第一数据存储在所述第一缓存区,n为奇数,且n≥1。
其中,当进行第一层参数的获取时,第一数据可以为图像分解后的多维矩阵数据。当进行非第一层参数的获取时,第一数据为上一层第二运算单元的计算结果。
第一运算单元2与所述第一缓存区1以及第二缓存区3相连接,获取第一缓存区中存储的神经网络模型第n层的参数以及第一数据,根据所述神经网络第n层的参数对第一数据进行计算,将计算结果作为第二数据,并将第二数据传输至第二缓存区3。
第二缓存区3分别与第二运算单元4以及内存相连接。第二缓存区3在所述第一运算单元2根据所述神经网络模型第n层的参数对所述第一数据进行计算的同时,获取神经网络模型第n+1层的参数,并将所述神经网络模型第n+1层的参数存储在所述第二缓存区3;在所述第一运算单元2计算完成后,所述第二缓存区3接收并存储所述第二数据;
第二运算单元4与第一缓存区3相连接,获取第二缓存区3中存储的神经网络模型第n+1层的参数以及所述第二数据,根据所述神经网络模型第n+1层的参数对第二数据进行计算,根据计算结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区1中。
相应的,在第二运算单元4开始运算时,对n进行更新,将n的值更新为n+2。第一缓存区1在所述第二运算单元4根据所述神经网络模型第n+1层的参数对所述第二数据进行计算的同时,获取神经网络模型更新后的第n层的参数并存储在所述第一缓存区1;在所述第二运算单元4计算完成后,第一缓存区1存储第一数据,直至完成神经网络模型的所有层的参数获取,也就是n+1层为神经网络模型的最大层,输出最终的计算结果。本实施例中的计算,为神经元计算。
需要说明的是,本实施例中,输出最终的计算结果为与输入矩阵对应的多维矩阵,多位矩阵经过分类器Softmax函数进行输出,得到输入数据的监测结果。
本实施例提供的卷积神经网络的运算装置,通过集成双缓存区以及双运算单元,在第一运算单元进行计算的同时,第二缓存区获取神经网络模型下一层的参数并存储,第一运算单元完成计算后将计算结果作为第二数据,第二缓存区存储所述第二数据,第二运算单元直接根据第二缓存区中存储的第二数据以及神经网络模型下一层的参数进行计算,降低了运算单元等待神经网络模型参数的搬移时间,提高内存访问效率,进而提高了神经网络的运行效率。
实施例3
本实施例中,在实施例二的基础上对第一运算单元2进行进一步限定。如图3所示,其为根据本发明另一优选实施方式的第一运算单元的结构示意图,本实施例中,神经网络模型第n层的参数可以包括:偏置参数以及卷积参数;第一运算单元2可以包括第一卷积运算单元21以及第一求和运算单元22。
第一卷积运算单元21用于获取第一缓存区1中存储的第一数据以及卷积参数,对所述第一数据以及所述卷积参数进行卷积运算,将卷积运算的结果输出至第一求和运算单元22。
第一求和运算单元22用于获取第一缓存区1中存储的所述偏置参数;并接收所述第一卷积运算单元21卷积运算的结果,将所述偏置参数与所述卷积运算的结果进行求和运算,将求和运算的结果进行输出。
此外,第一卷积运算单元21之前可以设置缓存区,用于存储卷积参数和第一数据。第一求和运算单元22之前也可以设置缓存区,用于存储偏置参数和卷积运算的结果。
在一种实施方式中,神经网络模型第n层的参数还可以包括:激活参数,相应的第一运算单元2还包括:第一激活运算单元23。
第一激活运算单元23分别与所述第一缓存区1以及所述第一求和运算单元22相连接,所述第一激活运算单元23用于获取所述第一缓存区1中存储的激活参数;并接收所述求和运算的结果,将所述激活参数与所述求和运算的结果进行激活运算,将激活运算的结果进行输出。
此外,在第一激活运算单元23之前也可以设置缓存区,用于存储求和运算的结果。
在一种实施方式中,所述神经网络模型第n层的参数还可以包括:池化参数,相应的,所述第一运算单元2包括:第一池化运算单元24。
第一池化运算单元24分别与所述第一缓存区1以及所述第一激活运算单元23相连接,用于获取第一缓存区1中存储的池化参数;并接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,作为第二数据,并将所述第二数据传输至所述第二缓存区3。
相应的,第二缓存区3根据接收到第二数据进行存储。
此外,在第一池化运算单元24之前也可以设置缓存区,用于存储激活运算的结果。
由此,本实施例提供的卷积神经网络的运算装置,通过设置第一运算单元2包括第一卷积运算单元21、第一求和运算单元22、第一激活运算单元23以及第一池化运算单元24,在第一卷积运算单元21、第一求和运算单元22、第一激活运算单元23以及第一池化运算单元24进行计算的同时,第二缓存区获取神经网络模型下一层的参数并存储,第一池化运算单元24完成计算后将计算结果作为第二数据,第二缓存区存储所述第二数据,第二运算单元直接根据第二缓存区中存储的第二数据以及神经网络模型下一层的参数进行计算,降低了运算单元等待神经网络模型参数的搬移时间,提高内存访问效率,进而提高了神经网络的运行效率。
实施例4
本实施例在实施例3的基础上,对第二运算单元4进行进一步限定。如图4所示,其为根据本发明又一优选实施方式的第二运算单元的结构示意图,本实施例中,神经网络模型第n+1层的参数可以包括:偏置参数以及卷积参数,所述第二运算单元4可以包括:第二卷积运算单元41以及第二求和运算单元42。
第二卷积运算单元41与所述第二缓存区3相连接,所述第二卷积运算单元41用于获取第二缓存区3中存储的第二数据以及卷积参数,对所述第二数据以及所述卷积参数进行卷积运算,将卷积运算的结果输出至第二求和运算单元42。
第二求和运算单元42分别与所述第二缓存区3以及所述第二卷积运算单元41相连接,所述第二求和运算单元42获取第二缓存区3中存储的所述偏置参数;接收所述卷积运算的结果,将所述偏置参数与所述卷积运算的结果进行求和运算,将求和运算的结果进行输出。
此外,第二卷积运算单元41之前可以设置缓存区,用于存储卷积参数和第二数据。第二求和运算单元42之前也可以设置缓存区,用于存储偏置参数和卷积运算的结果。
在一种实施方式中,所述神经网络模型第n+1层的参数还可以包括:激活参数,所述第二运算单元4可以包括第二激活运算单元43。
第二激活运算单元43分别与所述第二缓存区3以及所述第二求和运算单元42相连接,所述第二激活运算单元43用于获取所述第二缓存区3中存储的激活参数;并接收所述求和运算的结果,将所述激活参数与所述求和运算的结果进行激活运算,将激活运算的结果进行输出。
此外,在第二激活运算单元43之前也可以设置缓存区,用于存储求和运算的结果。
在一种实施方式中,所述神经网络模型第n+1层的参数还可以包括池化参数,所述第二运算单元4还可以包括第二池化运算单元44。
第二池化运算单元44分别与所述第二缓存区3以及所述第二激活运算单元43相连接,所述第二池化运算单元44用于获取第二缓存区3中存储的池化参数;并接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,根据池化运算的结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。
此外,在第二池化运算单元44之前也可以设置缓存区,用于存储激活运算的结果。
相应的,第二运算单元4开始运算时,对n进行更新,将n的值更新为n+2。第一缓存区1在所述第二运算单元4根据所述神经网络模型第n+1层的参数对所述第二数据进行计算的同时,获取神经网络模型更新后的第n层的参数并存储在所述第一缓存区1;在所述池化运算单元44计算完成后,第一缓存区1存储第一数据,直至完成神经网络模型的所有层的参数获取,也就是n+1层为神经网络模型的最大层,输出最终的计算结果。
由此,本实施例提供的卷积神经网络的运算装置,通过设置第二运算单元4包括卷积运算单元41、求和运算单元42、激活运算单元43以及池化运算单元44,在第二运算单元4包括卷积运算单元41、求和运算单元42、激活运算单元43以及池化运算单元44进行运算的同时,第一缓存区获取神经网络模型下一层的参数并存储,池化运算单元44完成计算后,第一缓存区存储更新后的第一数据,第一运算单元直接根据第一缓存区中存储的第一数据以及参数进行计算,降低了等待神经网络模型参数的搬移时间,提高内存访问效率,进而提高了神经网络的运行效率。
实施例5
本实施例提供一种深度学习处理器DPU,包括上述实施例中的第一缓存区、第一运算单元、第二缓存区以及第二运算单元。其中,第一缓存区、第一运算单元、第二缓存区以及第二运算单元的功能可以与上述实施例中相同,本实施例中不再赘述。
本实施例提供的DPU,降低了运算单元等待神经网络模型参数的搬移时间,提高内存访问效率,进而提高了神经网络的运行效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

Claims (10)

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层的参数包括:偏置参数以及卷积参数;
所述第一运算单元包括:
第一卷积运算单元,与所述第一缓存区相连接,所述第一卷积运算单元用于获取第一缓存区中存储的第一数据以及卷积参数,对所述第一数据以及所述卷积参数进行卷积运算,将卷积运算的结果进行输出;
第一求和运算单元,分别与所述第一缓存区以及所述第一卷积运算单元相连接,所述第一求和运算单元用于获取第一缓存区中存储的所述偏置参数;接收所述卷积运算的结果,将所述偏置参数与所述卷积运算的结果进行求和运算,将求和运算的结果进行输出。
5.如权利要求4所述的运算装置,其特征在于,所述神经网络模型第n层的参数包括:激活参数;
所述第一运算单元包括:
第一激活运算单元,分别与所述第一缓存区以及所述第一求和运算单元相连接,所述第一激活运算单元用于获取所述第一缓存区中存储的激活参数;
接收所述求和运算的结果,将所述激活参数与所述求和运算的结果进行激活运算,将激活运算的结果进行输出。
6.如权利要求5所述的运算装置,其特征在于,所述神经网络模型第n层的参数包括池化参数;
所述第一运算单元包括:
第一池化运算单元,分别与所述第一缓存区以及所述第一激活运算单元相连接,所述第一池化运算单元用于获取第一缓存区中存储的池化参数;
并接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,将池化运算的结果作为第二数据,并将所述第二数据传输至所述第二缓存区。
7.如权利要求3所述的运算装置,其特征在于,所述神经网络模型第n+1层的参数包括:偏置参数以及卷积参数;
所述第二运算单元包括:
第二卷积运算单元,与所述第二缓存区相连接,所述第二卷积运算单元用于获取第二缓存区中存储的第二数据以及卷积参数,对所述第二数据以及所述卷积参数进行卷积运算,将卷积运算的结果进行输出;
第二求和运算单元,分别与所述第二缓存区以及所述第二卷积运算单元相连接,所述第二求和运算单元用于获取第二缓存区中存储的所述偏置参数;接收所述卷积运算的结果,将所述偏置参数与所述卷积运算的结果进行求和运算,将求和运算的结果进行输出。
8.如权利要求7所述的运算装置,其特征在于,所述神经网络模型第n+1层的参数包括:激活参数;
所述第二运算单元包括:
第二激活运算单元,分别与所述第二缓存区以及所述第二求和运算单元相连接,所述第二激活运算单元用于获取所述第二缓存区中存储的激活参数;
接收所述求和运算的结果,将所述激活参数与所述求和运算的结果进行激活运算,将激活运算的结果进行输出。
9.如权利要求8所述的运算装置,其特征在于,所述神经网络模型第n+1层的参数包括:池化参数;
所述第二运算单元包括:
第二池化运算单元,分别与所述第二缓存区以及所述第二激活运算单元相连接,所述第二池化运算单元用于获取第二缓存区中存储的池化参数;接收所述激活运算的结果,将所述池化参数与所述激活运算的结果进行池化运算,根据池化运算的结果对所述第一数据进行更新,将更新后的第一数据存储至所述第一缓存区中。
10.一种深度学习处理器DPU,其特征在于,包括如权利要求3-9任一项所述的第一缓存区、第一运算单元、第二缓存区以及第二运算单元。
CN201910249144.3A 2019-03-29 2019-03-29 卷积神经网络的运算方法、装置及dpu Active CN109919312B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910249144.3A CN109919312B (zh) 2019-03-29 2019-03-29 卷积神经网络的运算方法、装置及dpu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910249144.3A CN109919312B (zh) 2019-03-29 2019-03-29 卷积神经网络的运算方法、装置及dpu

Publications (2)

Publication Number Publication Date
CN109919312A true CN109919312A (zh) 2019-06-21
CN109919312B CN109919312B (zh) 2021-04-23

Family

ID=66967623

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910249144.3A Active CN109919312B (zh) 2019-03-29 2019-03-29 卷积神经网络的运算方法、装置及dpu

Country Status (1)

Country Link
CN (1) CN109919312B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095471A (zh) * 2020-01-09 2021-07-09 北京君正集成电路股份有限公司 一种提高检测模型效率的方法
WO2023087227A1 (zh) * 2021-11-18 2023-05-25 华为技术有限公司 数据处理装置及方法
TWI806056B (zh) * 2020-07-03 2023-06-21 聯發科技股份有限公司 一種用於執行程序的裝置及方法
US11726544B2 (en) 2020-07-03 2023-08-15 Mediatek Inc. Dynamic agent for multiple operators optimization

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260773A (zh) * 2015-09-18 2016-01-20 华为技术有限公司 一种图像处理装置以及图像处理方法
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息系统(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
CN107832804A (zh) * 2017-10-30 2018-03-23 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
CN108133270A (zh) * 2018-01-12 2018-06-08 清华大学 卷积神经网络加速方法及装置
CN108416422A (zh) * 2017-12-29 2018-08-17 国民技术股份有限公司 一种基于fpga的卷积神经网络实现方法及装置
US20180285723A1 (en) * 2017-04-03 2018-10-04 Gyrfalcon Technology Inc. Memory subsystem in cnn based digital ic for artificial intelligence
CN109117946A (zh) * 2018-07-09 2019-01-01 中国科学院自动化研究所 神经网络计算处理模型
CN109492761A (zh) * 2018-10-30 2019-03-19 深圳灵图慧视科技有限公司 实现神经网络的fpga加速装置、方法和系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260773A (zh) * 2015-09-18 2016-01-20 华为技术有限公司 一种图像处理装置以及图像处理方法
CN107066239A (zh) * 2017-03-01 2017-08-18 智擎信息系统(上海)有限公司 一种实现卷积神经网络前向计算的硬件结构
US20180285723A1 (en) * 2017-04-03 2018-10-04 Gyrfalcon Technology Inc. Memory subsystem in cnn based digital ic for artificial intelligence
CN107832804A (zh) * 2017-10-30 2018-03-23 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品
CN109523020A (zh) * 2017-10-30 2019-03-26 上海寒武纪信息科技有限公司 一种运算装置和方法
CN108416422A (zh) * 2017-12-29 2018-08-17 国民技术股份有限公司 一种基于fpga的卷积神经网络实现方法及装置
CN108133270A (zh) * 2018-01-12 2018-06-08 清华大学 卷积神经网络加速方法及装置
CN109117946A (zh) * 2018-07-09 2019-01-01 中国科学院自动化研究所 神经网络计算处理模型
CN109492761A (zh) * 2018-10-30 2019-03-19 深圳灵图慧视科技有限公司 实现神经网络的fpga加速装置、方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095471A (zh) * 2020-01-09 2021-07-09 北京君正集成电路股份有限公司 一种提高检测模型效率的方法
CN113095471B (zh) * 2020-01-09 2024-05-07 北京君正集成电路股份有限公司 一种提高检测模型效率的方法
TWI806056B (zh) * 2020-07-03 2023-06-21 聯發科技股份有限公司 一種用於執行程序的裝置及方法
US11726544B2 (en) 2020-07-03 2023-08-15 Mediatek Inc. Dynamic agent for multiple operators optimization
WO2023087227A1 (zh) * 2021-11-18 2023-05-25 华为技术有限公司 数据处理装置及方法

Also Published As

Publication number Publication date
CN109919312B (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
CN109919312A (zh) 卷积神经网络的运算方法、装置及dpu
CN106126481B (zh) 一种计算系统和电子设备
CN110956272B (zh) 实现数据处理的方法和系统
KR102592721B1 (ko) 이진 파라미터를 갖는 컨볼루션 신경망 시스템 및 그것의 동작 방법
CN110378381A (zh) 物体检测方法、装置和计算机存储介质
CN112116001B (zh) 图像识别方法、装置及计算机可读存储介质
CN108021983A (zh) 神经架构搜索
CN109902706A (zh) 推荐方法及装置
CN109902832A (zh) 机器学习模型的训练方法、异常预测方法及相关装置
CN109934332A (zh) 基于评论家和双经验池的深度确定性策略梯度学习方法
CN110020667A (zh) 神经网络结构的搜索方法、系统、存储介质以及设备
WO2019018375A1 (en) NEURONAL ARCHITECTURE RESEARCH FOR CONVOLUTION NEURAL NETWORKS
CN109785928A (zh) 诊疗方案推荐方法、装置及存储介质
CN110390561B (zh) 基于动量加速随机梯度下降的用户-金融产品选用倾向高速预测方法和装置
CN113762486B (zh) 换流阀故障诊断模型的构建方法、装置和计算机设备
US20190279092A1 (en) Convolutional Neural Network Compression
CN108629411A (zh) 一种卷积运算硬件实现装置及方法
CN107247973A (zh) 一种基于spark的支持向量机参数优选并行粒子群寻优方法
CN108009193A (zh) 数据分析方法及装置、存储介质、电子设备
CN109255438A (zh) 调整张量数据的方法和装置
CN114417739A (zh) 一种异常工况的工艺参数推荐方法及装置
CN104346445B (zh) 一种快速从大规模数据中筛选离群数据的方法
CN110874635A (zh) 一种深度神经网络模型压缩方法及装置
CN106156845A (zh) 一种用于构建神经网络的方法和设备
CN108470208A (zh) 一种基于原始生成对抗网络模型的分组卷积方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211012

Address after: 100192 building 3, A District, Dongsheng science and Technology Park, Zhongguancun, 66 Haidian District West Road, Beijing.

Patentee after: BEIJING SMARTCHIP MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Patentee after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Patentee after: STATE GRID CORPORATION OF CHINA

Patentee after: STATE GRID HEBEI ELECTRIC POWER Co.,Ltd.

Patentee after: Zhongguancun Xinhai preferred Technology Co.,Ltd.

Address before: 100192 building 3, A District, Dongsheng science and Technology Park, Zhongguancun, 66 Haidian District West Road, Beijing.

Patentee before: BEIJING SMARTCHIP MICROELECTRONICS TECHNOLOGY Co.,Ltd.

Patentee before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Patentee before: STATE GRID CORPORATION OF CHINA

Patentee before: STATE GRID HEBEI ELECTRIC POWER Co.,Ltd.

TR01 Transfer of patent right