深度学习处理装置、方法、设备和存储介质制造方法及图纸

技术编号:29587244 阅读:19 留言:0更新日期:2021-08-06 19:46
本公开的实施例提出了深度学习处理装置、方法、设备和存储介质,涉及人工智能领域。一种深度学习处理装置包括至少一个矩阵乘加模块,被配置为执行卷积神经网络中的卷积层的卷积核参数值矩阵与第一误差梯度值矩阵的矩阵乘加运算,得到多个中间矩阵;存储装置,用于存储多个中间矩阵而无需对多个中间矩阵中的元素进行重新整形;以及多个矩阵累加模块,被配置为从存储装置读取多个中间矩阵并且以并行方式按卷积层的卷积方案执行基于多个中间矩阵的矩阵累加运算,得到针对卷积层的第二误差梯度值矩阵。这样的深度学习处理装置可以显著提高卷积反向操作的计算效率,在计算速度和耗能方面均能得到改进。

【技术实现步骤摘要】
深度学习处理装置、方法、设备和存储介质
本公开的实施例概括地涉及数据处理领域,并且更具体地,涉及人工智能领域。
技术介绍
深度学习是人工神经网络的一个研究方向。近年来随着人工智能领域硬件和软件的不断提升,深度学习技术得到了飞速发展。深度学习技术可以运用在各个领域,比如计算机视觉、自然语言处理、音频分析等。卷积神经网络(CNN)是深度学习技术中具有影响力的网络模型,特别适合于涉及图像、文本数据的应用。卷积神经网络所涉及的计算主要包括卷积(convolution)计算、全连接(FC)计算、池化(pooling)计算、向量计算、激活计算等,其中最主要的计算是卷积操作。在CNN的训练过程中,为实现模型优化,在利用训练数据执行前向计算外,还会利用后向传播方式实现模型的参数优化。在CNN的训练过程中均涉及卷积层的大量卷积操作和卷积反向操作。在一些CNN架构中,卷积操作和卷积反向操作可能占据整个架构运算的大多数计算资源和时间。深度学习处理器可以被用于实现深度学习计算,可以支持深度学习网络的训练。期望深度学习处理器能够更快速、高效地处理卷积操作和/或卷积反向操作,这将有助于加速整个深度学习网络、特别是CNN的训练。
技术实现思路
根据本公开的示例实施例,提供了一种用于执行深度学习处理的方案。在本公开的第一方面,提供了一种深度学习处理装置。该深度学习处理装置包括至少一个矩阵乘加模块,被配置为执行卷积神经网络中的卷积层的卷积核参数值矩阵与第一误差梯度值矩阵的矩阵乘加运算,得到多个中间矩阵;存储装置,用于存储多个中间矩阵而无需对多个中间矩阵中的元素进行重新整形;以及多个矩阵累加模块,被配置为从存储装置读取多个中间矩阵并且以并行方式按卷积层的卷积方案执行基于多个中间矩阵的矩阵累加运算,得到针对卷积层的第二误差梯度值矩阵。在本公开的第二方面,提供了一种执行深度学习处理的方法。该方法包括使得深度学习处理装置的至少一个矩阵乘加模块执行卷积神经网络中的卷积层的卷积核参数值矩阵与第一误差梯度值矩阵的矩阵乘加运算,得到多个中间矩阵;将多个中间矩阵存储到存储装置而无需对多个中间矩阵中的元素进行重新整形;从存储装置读取多个中间矩阵;以及使得深度学习处理装置的多个矩阵累加模块以并行方式按卷积层的卷积方案执行基于多个中间矩阵的矩阵累加运算,得到针对所述卷积层的第二误差梯度值矩阵。在本公开的第三方面,提供了一种电子设备。该电子设备包括处理设备,包括至少一个根据第一方面的深度学习处理装置;以及至少一个通用处理装置,与至少一个深度学习处理装置耦合并且被配置为向至少一个深度学习处理装置提供用于执行卷积神经网络CNN的训练的指令。在本公开的第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现根据本公开的第二方面的方法。应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其他特征将通过以下的描述变得容易理解。附图说明结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示意性示出了示例卷积神经网络(CNN)的结构的框图;图2示意性示出了根据一些实施例的示例处理架构的框图;图3A示意性根据本公开的一些示例实施例的深度学习处理装置的示例结构的框图;图3B示意性根据本公开的另一些示例实施例的深度学习处理装置的示例结构的框图;图3C示意性根据本公开的又一些示例实施例的深度学习处理装置的示例结构的框图;图4A示出了CNN的卷积层的卷积操作的示意图;图4B示出了CNN的卷积层的卷积反向操作的示意图;图5示意性根据本公开的一些示例实施例的矩阵累加过程的示意图;图6示意性根据本公开的另一些示例实施例的矩阵计算模块的示例结构的框图;图7示意性根据本公开的另一些示例实施例的矩阵累加模块的示例结构的框图;图8示意性示出了根据本公开的示例实施例的用于执行处理任务的方法的流程图;以及图9示出了能够实施本公开的多个实施例的计算设备的框图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例作用,并非用于限制本公开的保护范围。在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。如以上提及的,在卷积神经网络(CNN)的训练和推理过程中需要处理非常复杂的操作,特别是卷积层的卷积操作以及反向的卷积操作。如果利用通用处理器来执行CNN的训练或推理,处理效率很低。当前一些方案是通过图形处理单元(GPU)来实现CNN的处理,特别是CNN的训练。GPU利用单指令多线程(SIMT)技术,通过大量线程来调度和实现运算,可以提高计算速度。然而,GPU需要大量的寄存器堆、复杂的线程调度机制以及高速缓存管理,导致功耗较高,在计算时效能差。因此,期望能够提供具有更高效的处理装置用于深度学习处理,特别是CNN的相关处理。在介绍用于CNN的相关处理的处理装置之前,首先简单介绍CNN。CNN是一种深度学习模型。深度学习模型中用于处理的参数集的值通过训练过程来确定。机器学习模型利用训练的参数集,将接收到的输入映射到对应的输出。因此,机器学习模型的训练过程可以被认为是从训练数据中学习输入到输出之间的映射或关联关系。CNN通常可以包括输入层、卷积层、池化层、激活层、全连层和输出层。取决于具体处理任务要求和配置,CNN中的卷积层、池化层、激活层和全连层的数目、连接关系等都可以变化。图1示出了CNN100的结构的一个示例,其示出了输入层110、卷积层120、激活层130、池化层140、……以及全连层150和输出层160。要由模型处理的输入作为输入层110被提供到CNN100中进行处理。在前向101的处理中,输入的数据经过中间多个层的处理,最后得到输出层160的输出结果。在CNN100的训练过程中,训练数据需要经过前向101的处理,同时还需要在反向102的处理。在反向102的处理中,通常会计算在CNN100的参数集的当前值的条件下处理输入的训练数据所得到的输出与理想输出之间的误差,然后将该误差沿着从相反的方向(即从输出层160到输入层110的方向)传播。在反向传播过程中,可以依赖梯度下降算法,调整CNN100中各个层的参数的当前提。根据多轮训练,CNN100的输出与理想输出之本文档来自技高网
...

【技术保护点】
1.一种深度学习处理装置,包括:/n至少一个矩阵乘加模块,被配置为执行卷积神经网络中的卷积层的卷积核参数值矩阵与第一误差梯度值矩阵的矩阵乘加运算,得到多个中间矩阵;/n存储装置,用于存储所述多个中间矩阵而无需对所述多个中间矩阵中的元素进行重新整形;以及/n多个矩阵累加模块,被配置为从所述存储装置读取所述多个中间矩阵并且以并行方式按所述卷积层的卷积方案执行基于所述多个中间矩阵的矩阵累加运算,得到针对所述卷积层的第二误差梯度值矩阵。/n

【技术特征摘要】
1.一种深度学习处理装置,包括:
至少一个矩阵乘加模块,被配置为执行卷积神经网络中的卷积层的卷积核参数值矩阵与第一误差梯度值矩阵的矩阵乘加运算,得到多个中间矩阵;
存储装置,用于存储所述多个中间矩阵而无需对所述多个中间矩阵中的元素进行重新整形;以及
多个矩阵累加模块,被配置为从所述存储装置读取所述多个中间矩阵并且以并行方式按所述卷积层的卷积方案执行基于所述多个中间矩阵的矩阵累加运算,得到针对所述卷积层的第二误差梯度值矩阵。


2.根据权利要求1所述的深度学习处理装置,其中所述多个中间矩阵与所述卷积层的输入的多个通道相关联,所述第二误差梯度值矩阵包括针对所述多个通道的多个通道矩阵,
所述多个矩阵累加模块中的每个矩阵累加模块被配置为:
在与所述多个通道对应的多个并行路径中的一个并行路径上,将所述多个中间矩阵中与所述多个通道中的一个通道相关联的中间矩阵进行累加,得到针对该通道的所述通道矩阵;或者
在每次累加时将所述多个中间矩阵中的一个中间矩阵累加到针对所述多个通道矩阵中的一个通道矩阵的中间结果。


3.根据权利要求1所述的深度学习处理装置,其中所述存储装置被配置为在目标存储位置存储所述第二误差梯度值矩阵,所述第二误差梯度值矩阵在所述矩阵累加运算之前具有全零值;并且
其中所述多个矩阵累加模块被配置为以并行方式将所述多个中间矩阵与所述目标存储位置处存储的具有所述初始值的所述第二误差梯度值矩阵累加。


4.根据权利要求1所述的深度学习处理装置,其中所述多个矩阵累加模块中的至少一个矩阵累加模块包括:
加法运算单元,被配置为接收要累加的矩阵中的第一元素和第二元素并且将所述第一元素和所述第二元素累加,得到累加元素;
数据写单元,被配置为将所述累加元素写入所述存储装置;
第一缓存区,被配置为缓存所述累加元素,所述第一缓存区的写入速度比所述存储装置的写入速度更快,所述累加元素在所述第一缓存区中被缓存多个时钟周期;以及
旁路模块,被配置为根据确定在所述加法运算单元要执行第三元素与所述累加元素的累加时所述累加元素无法从所述存储装置被读出,使得所述第一缓存区中缓存的所述累加元素被提供给所述加法运算单元。


5.根据权利要求1所述的深度学习处理装置,其中所述存储装置包括片上的随机访问存储器。


6.根据权利要求1所述的深度学习处理装置,还包括:
第二缓存区,被配置为缓存所述至少一个矩阵乘加模块在所述矩阵乘加运算过程中产生的第一中间运算结果和缓存所述多个矩阵累加模块在所述矩阵累加运算过程中产生的第二中间运算结果。


7.根据权利要求6所述的深度学习处理装置,还包括:
向量计算模块,被配置为执行以下至少一项:
在向量级别上将所述第二缓存区中用于存储所述第一中间运算结果和所述第二中间运算结果的存储区域置零;以及
在向量级别上将所述矩阵累加运算的最后运算结果有选择地写入所述深度学习处理装置的存储装置,作为所述第二误差梯度值矩阵的至少一部分。


8.根据权利要求1至7中任一项所述的深度学习处理装置,还包括:
指令处理模块,被配置为从通用处理装置获取用于所述CNN的所述卷积层的卷积方向操作的指令集并且解析所述指令集;以及
控制信号生成模块,被配置为基于解析后的所述指令集来生成针对所述至少一个矩阵乘加模块和所述多个矩阵累加模块的控制信号。


9.根据权利要求1至7中任一项所述的深度学习处理装置,其中所述至少一个矩阵乘加模块包括多个矩阵乘加模块,被配置为以并行方式执行所述矩阵乘加运算。


10.一种执行深度学习处理的方法,包括:

【专利技术属性】
技术研发人员:龚小章欧阳剑王京漆维
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1