单平面滤波制造技术

技术编号:21659543 阅读:22 留言:0更新日期:2019-07-20 05:50
本公开涉及单平面滤波。提供了一种用于实施深度神经网络(DNN)的硬件,深度神经网络具有卷积层,硬件包括:输入缓冲器,输入缓冲器被配置为向多个卷积引擎提供数据窗口,每个数据窗口包括单个输入平面;以及多个卷积引擎中的每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,并且多个卷积引擎中的每个卷积引擎包括:乘法逻辑,其能够操作以将滤波的权重与由输入缓冲器提供的数据窗口的相应的数据值组合;累加逻辑,其被配置为将由乘法逻辑执行的多个组合的结果累加,以便形成相应的卷积操作的输出。

Single Plane Filtering

【技术实现步骤摘要】
单平面滤波
本公开涉及单平面滤波。
技术介绍
本专利技术涉及用于实施具有卷积层的深度神经网络的硬件,以及用于以硬件的方式实施具有卷积层的深度神经网络的方法。深度神经网络(DNN)是在输入层和输出层之间具有多层的一种类型的人工神经网络。DNN可以用于机器学习应用。具体而言,深度神经网络可以用于信号处理应用,信号处理应用包括图像处理应用和计算机视觉应用。DNN通常在功率资源不是重要因素的应用中实施。尽管如此,DNN在许多不同的
中都有应用,其中用于实施DNN的硬件的资源使得功耗、处理能力或硅面积受到限制。此外,用于特定应用的DNN的限定可能随着时间而变化——例如,由于DNN的额外训练。DNN通常包括卷积层,在该卷积层处向数据集的窗口应用滤波。具体而言,卷积神经网络(CNN)是包括一个或多个卷积层的一类DNN,并且通常应用于分析图像数据。根据应用,卷积层处的滤波和窗口的数量在不同的DNN之间可能发生巨大变化。需要用于在DNN中以灵活且可伸缩的方式在各种各样的不同DNN架构上高效地执行卷积操作的一种系统。
技术实现思路

技术实现思路
被提供用于介绍对以下具体实施方式中进一步描述的概念的选择。本专利技术不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。提供了一种用于实施深度神经网络(DNN)的硬件,深度神经网络具有卷积层,硬件包括:输入缓冲器,输入缓冲器被配置为向多个卷积引擎提供数据窗口,每个数据窗口包括单个输入平面;以及多个卷积引擎中的每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,并且多个卷积引擎中的每个卷积引擎包括:乘法逻辑,其能够操作以将滤波的权重与由输入缓冲器提供的数据窗口的相应的数据值组合;累加逻辑,其被配置为将由乘法逻辑执行的多个组合的结果累加,以便形成相应的卷积操作的输出。提供了一种用于以硬件的方式实施深度神经网络(DNN)的方法,深度神经网络具有卷积层,硬件包括:输入缓冲器,输入缓冲器被配置为向多个卷积引擎提供数据窗口;以及多个卷积引擎中的每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,方法包括在多个卷积引擎中的每个卷积引擎处:从输入缓冲器接收包括单个输入平面的数据窗口;针对卷积操作接收滤波的权重,权重对应于所接收的数据窗口中的数据值;对于每个权重以及其相应的数据值,将权重乘以相应的数据值;以及累加乘法操作的结果,以便形成相应的卷积操作的输出。提供了一种用于实施深度神经网络DNN的硬件,深度神经网络具有卷积层,硬件包括多个卷积引擎,每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,并且多个卷积引擎中的每个卷积引擎包括:乘法逻辑,其能够操作以将滤波的权重与数据窗口的相应的数据值组合;控制逻辑,其被配置为:如果权重为非零,则使得乘法逻辑将权重与相应的数据值组合,并且在其他情况下,不会使得乘法逻辑将权重与数据值组合;累加逻辑,其被配置为将由乘法逻辑执行的多个组合的结果累加,以便形成相应的卷积操作的输出。控制逻辑可以被配置为:使用提供有权重的稀疏性数据来标识在卷积引擎处所接收的权重中的零权重。控制逻辑还可以被配置为:如果数据值是零,则不使得乘法逻辑将权重与相应的数据值组合。控制逻辑可以被配置为:使用提供有数据值的稀疏性数据来标识在卷积引擎处所接收的数据值中的零数据值。稀疏性数据可以包括二进制串,二进制串的每个位对应于权重/数据值的集合中的相应的权重/数据值,并且指示权重/数据值是否为零。硬件还可以包括输入数据逻辑,输入数据逻辑被配置为:在接收数据窗口的数据值时形成稀疏数据,以便提供给多个卷积引擎中的一个或多个卷积引擎。多个卷积引擎中的每个卷积引擎可以被布置为独立地执行不同的卷积操作,使得卷积引擎共同地向数据窗口的集合中的每个数据窗口应用滤波的集合。每个卷积引擎可以被配置为接收配置信息,配置信息标识要执行的卷积操作的预定序列,并且控制逻辑可以被配置为根据预定序列请求权重和数据值以在乘法逻辑处进行组合。硬件还可以包括一个或多个权重缓冲模块,每个权重缓冲模块被配置为向多个卷积引擎中的任意卷积引擎提供一个或多个滤波的权重。权重缓冲模块能够由卷积引擎通过互连来访问,并且每个卷积引擎的控制逻辑被配置为使用权重所属的滤波的标识符来从权重缓冲模块请求权重。权重缓冲器中的所有权重缓冲器可以由卷积引擎中的所有卷积引擎通过互连来访问。每个权重缓冲器模块可以包括:打包缓冲器,其用于接收压缩数据,压缩数据包括滤波的权重和对应的稀疏性数据的集合;解包缓冲器,其用于保存滤波的权重的未压缩子集及其对应的稀疏性数据,压缩数据根据权重的预定序列被解包到解包缓冲器中;权重控制逻辑,其被配置为:响应于来自卷积引擎的对在解包缓冲器处可获得的权重的请求,将权重与对应的稀疏性数据一起提供给卷积引擎。权重控制逻辑可以被配置为:在从卷积引擎接收到对根据预定序列在解包缓冲器处可获得的第一组权重的请求时,将卷积引擎添加到应用下述滤波的卷积引擎的列表,滤波的权重存储在权重缓冲器模块处;并且对于每个当前权重组,仅在列表上的所有卷积引擎都已经从权重缓冲器模块接收到该当前权重组时,根据预定序列用下一权重组替换解包缓冲器处的当前权重组。控制逻辑可以被配置为:在从卷积引擎接收到对根据预定序列在解包缓冲器处可获得的最后一组权重的请求时,从应用下述滤波的卷积引擎的列表中去除卷积引擎,滤波的权重存储在权重缓冲器模块处。控制逻辑可以被配置为:如果所请求的权重在解包缓冲器处不能获得,则推迟请求,直到权重在解包缓冲器处能获得。解包缓冲器可以被配置为保存多组权重,每组权重与对应的稀疏性数据一起保存。每组权重被存储在解包缓冲器处使得任意零权重处于组中所包括的权重串的一端,组中的其他权重按照顺序,并且组的稀疏性数据指示零权重在组中的位置。乘法逻辑可以包括多个乘法器,多个乘法器被布置为同时将多个权重与多个对应的数据值进行组合。乘法逻辑可以包括单个乘法器。多个卷积引擎被可以被布置为同时执行相应的卷积操作,并且硬件还可以包括卷积输出逻辑,卷积输出逻辑被配置为对来自多个卷积引擎的输出进行组合并且使得输出能够用于根据DNN的后续处理。当卷积引擎的输出为卷积操作的部分累加时,卷积输出逻辑可以被配置为使得卷积累加在卷积操作的能够用于后续延续部分。在卷积引擎处后续延续卷积操作时,部分累加可以作为对其累加逻辑的偏置被提供到卷积引擎。卷积引擎可以包括用于接收滤波的权重的子集的输入寄存器和用于接收数据窗口的数据值的子集的权重寄存器,权重和数据值的子集是响应于来自控制逻辑的一个或多个请求而在相应的寄存器处被接收的。根据第二方面,提供了一种用于以硬件的方式实施深度神经网络DNN的方法,深度神经网络具有卷积层,硬件包括多个卷积引擎,每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,并且每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,方法包括在多个卷积引擎中的每个卷积引擎处:接收用于卷积操作的权重和对应的数据值;标识所接收的权重中的零权重;对于每个本文档来自技高网...

【技术保护点】
1.一种用于实施深度神经网络(DNN)的硬件,所述深度神经网络具有卷积层,所述硬件包括:输入缓冲器,所述输入缓冲器被配置为向多个卷积引擎提供数据窗口,每个数据窗口包括单个输入平面;以及所述多个卷积引擎中的每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,并且所述多个卷积引擎中的每个卷积引擎包括:乘法逻辑,其能够操作以将所述滤波的权重与由所述输入缓冲器提供的所述数据窗口的相应的数据值组合;累加逻辑,其被配置为将由所述乘法逻辑执行的多个组合的结果累加,以便形成相应的卷积操作的输出。

【技术特征摘要】
2017.11.06 GB 1718358.3;2017.11.06 GB 1718359.11.一种用于实施深度神经网络(DNN)的硬件,所述深度神经网络具有卷积层,所述硬件包括:输入缓冲器,所述输入缓冲器被配置为向多个卷积引擎提供数据窗口,每个数据窗口包括单个输入平面;以及所述多个卷积引擎中的每个卷积引擎能够操作以通过向数据窗口应用滤波来执行卷积操作,每个滤波包括用于与数据窗口的相应的数据值组合的权重的集合,并且所述多个卷积引擎中的每个卷积引擎包括:乘法逻辑,其能够操作以将所述滤波的权重与由所述输入缓冲器提供的所述数据窗口的相应的数据值组合;累加逻辑,其被配置为将由所述乘法逻辑执行的多个组合的结果累加,以便形成相应的卷积操作的输出。2.根据权利要求1所述的硬件,其中,所述滤波中的权重的数量与数据窗口中的数据值的数量相同。3.根据权利要求1或2所述的硬件,其中,所述多个卷积引擎中的每个卷积引擎还包括被配置为请求滤波和数据窗口的控制逻辑。4.根据权利要求3所述的硬件,其中,所述控制逻辑是如下被配置的控件:在所述权重和/或数据值为非零的情况下使得所述乘法逻辑将权重与相应的数据值进行组合,并且在其他情况下不会使得所述乘法逻辑将所述权重与所述数据值进行组合。5.根据权利要求4所述的硬件,其中,所述控制逻辑被配置为:使用提供有所述权重的稀疏性数据来标识在所述卷积引擎处所接收的权重中的零权重。6.根据权利要求4所述的硬件,其中,所述控制逻辑被配置为:使用提供有所述数据值的稀疏性数据来标识在所述卷积引擎处所接收的数据值中的零数据值。7.根据权利要求5所述的硬件,其中,所述稀疏性数据包括二进制串,所述二进制串的每个位对应于权重的集合中的相应的权重,并且指示所述权重是否为零。8.根据权利要求6所述的硬件,其中,所述稀疏性数据包括二进制串,所述二进制串的每个位对应于数据值的集合中的相应的数据值,并且指示所述数据值是否为零。9.根据权利要求4所述的硬件,其中,所述硬件还包括输入数据逻辑,所述输入数据逻辑被配置为:在接收数据窗口的数据值时形成所述稀疏数据,以便提供给所述多个卷积引擎中的一个或多个卷积引擎。10.根据权利要求1或2所述的硬件,其中,所述硬件还包括输入模块,所述输入模块包括所述输入缓冲器,所述输入模块被配置为:一旦单个滤波已被应用于数据窗口就丢弃所述数据窗口。11.根据权利要求1或2所述的硬件,其中,每个卷积引擎被配置为接收配置信息,所述配置信息标识要执行的卷积操作的预定序列,并且所述控制逻辑被配置为根据所述预定序列请求权重和数据值以在乘法逻辑处进行组合。12.根据权利要求1或2所述的硬件,其中,所述硬件还包括一个或多个权重缓冲模块...

【专利技术属性】
技术研发人员:克里斯·马丁
申请(专利权)人:畅想科技有限公司
类型:发明
国别省市:英国,GB

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

1