【技术实现步骤摘要】
用于神经网络加速器的可配置池化处理单元
[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,其示出了示例性三 ...
【技术保护点】
【技术特征摘要】
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)被配置为接收块中的张素的列,并且生成所接收的张素的多个加权和,每个加权和基于不同的一组权重...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。