用于神经网络加速器的可配置池化处理单元制造技术

技术编号:38128736 阅读:24 留言:0更新日期:2023-07-08 09:35
用于神经网络加速器的可配置池化处理单元。本发明专利技术公开了一种可配置池化处理单元的硬件实现方式。所述硬件实现被配置为:接收包括至少一个通道的输入张量,所述至少一个通道中的每个通道包括多个张素;接收标识要对所述输入张量执行的多个可选运算中的一个运算的控制信息,所述多个可选运算包括深度方向卷积运算和一个或多个池化运算;通过对所述输入张量的至少一个通道中的每个通道的张素块执行一个或多个运算来对所述输入张量执行所标识的运算以生成输出张量;并且输出所述输出张量。并且输出所述输出张量。并且输出所述输出张量。

【技术实现步骤摘要】
用于神经网络加速器的可配置池化处理单元


[0001]本申请涉及在神经网络加速器中使用的可配置池化处理单元。

技术介绍

[0002]深度神经网络(DNN)是人工神经网络的一种形式,包括可用于机器学习应用程序的多个互连层。特别地,DNN可用于信号处理应用程序,包含但不限于图像处理和计算机视觉应用程序。图1示出了包括多个层102、104、106的示例DNN 100。每一层102、104、106接收输入数据,并且根据层来处理输入数据以产生输出数据。输出数据要么作为输入数据提供给另一层,要么作为DNN的最终输出数据输出。例如,在图1的DNN 100中,第一层102接收到DNN 100的原始输入数据108,并且根据第一层102处理输入数据以产生输出数据110。第一层102的输出数据110成为第二层104的输入数据,并且第二层104根据第二层104处理输入数据110以产生输出数据112。第二层104的输出数据112成为第三层106的输入数据,并且第三层106根据第三层106处理输入数据112以产生输出数据114。然后,第三层106的输出数据114作为DNN的最终输出数据输出。在DNN用于分类的情况下,输出数据114是长度矢量A,其中A是类别的数量并且矢量中的每个值表示某个类别的概率。
[0003]输入到DNN层和从该层输出的数据可以被描述为张量。如本领域技术人员所知,张量是向量和矩阵的统称,并且可以被描述为n维阵列。向量是一维张量,并且矩阵是二维张量。DNN中的张量通常是三维的,但不一定是三维的。参考图2,其示出了示例性三维(3D)张量200。3D张量200可被描述为C个数据平面,其中每个平面具有维度HxW。每个平面可以被称为张量的通道。类似于图片的元素被称为像素,张量的元素可被称为张素(tensel)。
[0004]对层的输入数据执行的处理取决于层的类型。例如,DNN的每一层可以是多种不同类型中的一种类型。示例DNN层类型包含但不限于卷积层、激活层、归一化层、池化层,以及全连接层。对于本领域技术人员将显而易见的是,这些是示例DNN层类型,并且这不是详尽的列表,并且可存在其他DNN层类型。
[0005]对于卷积层,将输入数据与与所述层相关联的权重进行卷积。具体地,每个卷积层与多个权重k0…
k
g
相关联,所述多个权重还可以被称为滤波器权重或系数。权重被分组以形成或定义一个或多个滤波器或内核,并且每个滤波器可与偏移量偏差bias相关联。每个滤波器的尺寸可为M
×
N
×
C(即,每个滤波器可包括一组M
×
N
×
C个权重k),并且可根据在W方向和H方向上跨步s
W
和步s
H
的卷积运算被应用于输入数据,如图2所示。步长s
W
和s
H
可以被称为卷积的步幅。滤波器的数量和/或每个滤波器的权重的数量可在卷积层与卷积层之间变化。卷积神经网络(CNN)是一种有效的图像识别和分类方法,它是DNN的一种特殊类型,一般包括多个卷积层。
[0006]通常但不一定在卷积层之后的激活层将一个或多个激活函数应用于到层的输入数据。激活函数接收输入张量,并对输入张量中的每个值或元素执行特定的非线性数学运算。换句话说,激活函数分别对输入张量中的每个值或元素进行运算。在一些示例中,激活层可通过实现ReLU函数(即,f(x)=max(0,x))充当整流线性单元(ReLU),或者可通过实现
PreLU函数充当参数化整流线性单元(PReLU)。
[0007]归一化层被配置为对输入数据执行归一化函数,诸如局部响应归一化(LRN)函数。通常但不一定插入连续卷积层之间的池化层执行池化函数,例如max函数、min函数或average函数,以汇总输入数据的子集。因此,池化层的目的是减小表示的空间大小,以减少网络中参数和计算的数量,并且因此还控制过度拟合。
[0008]通常但不一定在多个卷积层和池化层之后的全连接层取一组三维输入数据值,并且输出长度矢量A。在DNN用于分类的情况下,A是类别的数量,并且矢量中的每个值表示某个类别的概率。长度矢量A通过一组权重的矩阵相乘而生成,可选地后面是偏差偏移量。因此,全连接层接收一组权重和偏差。
[0009]因此,DNN的每一层接收输入数据值(例如,输入张量)并生成输出数据值(例如,输出张量);并且一些层(诸如但不限于卷积层和全连接层)也接收权重和/或偏差。
[0010]DNN通常实施起来是在计算上复杂的。因此,已经开发了神经网络加速器,其允许以有效的方式(例如,以需要更少硅面积或更少处理能力的方式)实施包括DNN在内的神经网络。
[0011]下文所描述的实施方案仅作为示例被提供,并且并不限制解决已知神经网络加速器和/或其部件的缺点中的任一个或全部缺点的实施方式。

技术实现思路

[0012]提供本
技术实现思路
是为了介绍在以下详细描述中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0013]本文描述的是可配置池化处理单元。可配置池化处理单元被配置为:接收包括至少一个通道的输入张量,至少一个通道中的每个通道包括多个张素;接收标识要对输入张量执行的多个可选运算中的一个运算的控制信息,多个可选运算包括深度方向卷积运算和一个或多个池化运算;通过对输入张量的至少一个通道中的每个通道的张素块执行一个或多个运算来对输入张量执行所标识的运算以生成输出张量;并且输出输出张量。
[0014]第一方面提供了一种可配置池化处理单元的硬件实现方式,该可配置池化处理单元被配置为:接收包括至少一个通道的输入张量,至少一个通道中的每个通道包括多个张素;接收标识要对输入张量执行的多个可选运算中的一个运算的控制信息,多个可选运算包括深度方向卷积运算和一个或多个池化运算;通过对输入张量的至少一个通道中的每个通道的张素块执行一个或多个运算来对输入张量执行所标识的运算以生成输出张量;并且输出输出张量。
[0015]可配置池化处理单元可包括一个或多个池引擎,每个池引擎可配置为接收输入张量的通道的张素并生成多种不同类型的通道输出中的一个通道输出,多种不同类型的通道输出包括深度方向卷积通道输出以及一个或多个可选池化运算通道输出中的一个可选池化运算通道输出。
[0016]一个或多个池化运算可包括平均池化运算。
[0017]一个或多个池引擎中的每个池引擎可包括:归约引擎,该归约引擎可配置为对于输入张量的通道的张素块生成多种类型的块输出中的一个块输出,多种类型的块输出包括
块中张素的总和以及块中张素的加权和;以及除法引擎,该除法引擎可配置为对由归约引擎生成的块输出选择性地执行除法运算;其中当控制信息标识要对输入张量执行平均池化运算时,归约引擎被配置为生成块中的张素的总和,并且除法引擎被启用以将由归约引擎生成的块输出除以块中张素的数量;并且其中当控制信息标识要对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现可配置池化处理单元(500)的硬件加速器,所述硬件加速器被配置为:接收包括至少一个通道的输入张量,所述至少一个通道的每个通道包括多个张量;接收标识要对所述输入张量执行的多个可选运算中的一个运算的控制信息,所述多个可选运算包括深度方向卷积运算和一个或多个池化运算;通过对所述输入张量的所述至少一个通道中的每个通道的张素块执行一个或多个运算,使用所述硬件加速器的相同的一组硬件部件而不管所标识的运算,对所述输入张量执行所标识的运算以生成输出张量;并且输出所述输出张量。2.如权利要求1所述的硬件加速器,包括一个或多个池引擎(502),每个池引擎(502)可配置为接收所述输入张量的通道的张素并生成多种不同类型的通道输出中的一个通道输出,所述多种不同类型的通道输出包括深度方向卷积通道输出以及一个或多个可选池化运算通道输出中的一个可选池化运算通道输出。3.如权利要求2所述的硬件加速器,其中所述一个或多个池化运算包括平均池化运算。4.如权利要求3所述的硬件加速器,其中所述一个或多个池引擎(502)中的每一者包括:归约引擎(504),所述归约引擎可配置为对于所述输入张量的通道的张素块生成多种类型的块输出中的一个块输出,所述多种类型的块输出包括所述块中张素的总和以及所述块中张素的加权和;以及除法引擎(506),所述除法引擎可配置为对由所述归约引擎(504)生成的所述块输出选择性地执行除法运算;其中当所述控制信息标识要对所述输入张量执行平均池化运算时,所述归约引擎(504)被配置为生成所述块中的张素的总和,并且所述除法引擎(506)被启用以将由所述归约引擎(504)生成的所述块输出除以所述块中张素的数量;并且其中当所述控制信息标识要对所述输入张量执行深度方向卷积运算时,所述归约引擎(504)被配置为生成所述块的加权和,并且所述除法引擎(506)被禁用。5.如权利要求4所述的硬件加速器,其中每个张素块包括一行或多行张素和一列或多列张素,并且所述归约引擎(504)被配置为通过生成列输出并从一个或多个列输出生成块输出来生成所述块输出。6.如权利要求5所述的硬件加速器,其中:当所述控制信息标识要对所述输入张量执行平均池化运算时,所述归约引擎(504)被配置为生成每列张素块的总和,并且通过对适当的列总和求和来生成所述张素块的所述总和,并且当所述控制信息标识要对所述输入张量执行深度方向卷积运算时,所述归约引擎(504)被配置为生成每列张素块的加权和,并且通过对适当的列加权和求和来生成所述块的所述加权和。7.如权利要求4至6中任一项所述的硬件加速器,其中所述归约引擎(504)包括:竖直池引擎(602),所述竖直池引擎可配置为接收张素的列,并且生成所述列的多种类型的列输出中的一种列输出;收集器存储单元(604),所述收集器存储单元被配置为临时存储由所述竖直池引擎
(602)生成的所述列输出;以及水平池引擎(606),所述水平池引擎被配置为从存储在所述收集器存储单元(604)中的适当的列输出生成块输出。8.如权利要求7所述的硬件加速器,其中:当所述控制信息标识要对所述输入张量执行平均池化运算时,所述竖直池引擎(602)被配置为接收块中的张素的列并且生成所接收的张素的总和;并且当所述控制信息标识要对所述输入张量执行深度方向卷积运算时,所述竖直池引擎(602)被配置为接收块中的张素的列,并且生成所接收的张素的多个加权和,每个加权和基于不同的一组权重...

【专利技术属性】
技术研发人员:J
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

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

1