当前位置: 首页 > 专利查询>英特尔公司专利>正文

矩阵处理架构中的最大池化制造技术

技术编号:18427037 阅读:39 留言:0更新日期:2018-07-12 02:10
本申请涉及矩阵处理架构中的最大池化。在一个实施例中,一种装置包括多维存储器以及用以实施矩阵运算的多个处理单元,其中所述矩阵运算包括在一个或多个矩阵运算对象上进行的最大池化运算。所述多个处理单元包括一个或多个矩阵处理器,并且所述多个处理单元被配置成:从多维存储器接收矩阵数据,其中所述矩阵数据与所述一个或多个矩阵运算对象相关联;从矩阵数据中提取出所述一个或多个矩阵运算对象;使用所述一个或多个矩阵运算对象实施最大池化运算;以及获得最大池化运算的结果。

【技术实现步骤摘要】
矩阵处理架构中的最大池化
本公开内容总体上涉及计算机处理的领域,并且更具体来说(尽管并非排他性地)涉及矩阵处理。
技术介绍
例如矩阵乘法和卷积之类的矩阵运算可能是高度处理器密集并且存储器密集的运算,这是因为矩阵运算常常涉及较大的多维矩阵运算对象(operand)上的复杂运算。因此,复杂矩阵运算的性能可能受到处理和/或存储器等待时间的限制。随着在多种应用中越来越多地利用矩阵运算并且随着数据集合的不断增长(从图形和图像处理到机器学习和人工智能),针对矩阵运算的高性能并且灵活的处理的需求也不断增加。附图说明从后面的详细描述(当与附图一起阅读时)最好地理解本公开内容。应当强调的是,根据行业内的标准实践,各种特征未必是按比例绘制的,并且仅仅是被用于说明的目的。在明确地或者隐含地示出比例的情况下,仅仅是提供一个说明性实例。在其他实施例中,为了讨论清楚起见可以任意增大或减小各种特征的规格。图1示出了对应于根据特定实施例的示例性计算系统的示意图。图2A-C示出了对应于矩阵处理架构的一个示例性实施例的方块图。图3和4示出了对应于计算机处理器的示例性实施例的方块图。图5示出了矩阵处理引擎的一个示例性实施例。图6A-D示出了使用矩阵处理引擎的最大池化的实例。图7示出了对应于使用矩阵处理引擎的最大池化的一个示例性实施例的流程图。具体实施方式后面的公开内容提供了用于实施本公开内容的不同特征的许多不同的实施例或实例。后面描述了组件和安排的具体实例以便简化本公开内容。当然这些具体实例仅仅是作为举例而不意图作出限制。此外,本公开内容可以在各个实例中重复附图标记和/或字母。这一重复是出于简单和清楚的目的,并且其本身并不表明所讨论的各个实施例和/或配置之间的关系。不同的实施例可以具有不同的优点,并且对于任何实施例不必要求特定的优点。矩阵处理运算(例如涉及矩阵和/或矢量运算对象的线性代数运算)在计算系统中具有广泛的应用,从图形处理到机器学习和人工智能以及其他实例。举例来说,复杂矩阵运算可以被用来实施提供人工智能和机器学习能力的人工神经网络,其中包括计算机视觉、自主导航、语音和音频识别、自然语言处理以及其他实例。这些复杂矩阵运算(例如矩阵乘法和卷积)可以被用来实施神经网络的基本运算,比如前向传播、后向传播以及权重更新。但是这些矩阵运算可能是高度处理器和存储器密集的,这是因为其常常涉及大的多维矩阵运算对象上的复杂运算。因此,这些矩阵运算的性能可能受到处理和/或存储器等待时间的限制。随着在具有不断增长的数据集合的多种应用(比如人工智能和机器学习)中越来越多地利用矩阵运算,针对矩阵运算的高性能处理的需求也不断增加。现有的矩阵处理方法受困于许多缺陷,特别当被用来在人工神经网络中实施人工智能和机器学习时。举例来说,虽然中央处理单元(CPU)可以被用来实施矩阵运算,但是许多CPU架构被设计成用于低算术强度运算(也就是算术运算相对于存储器操作的低比例),因此并未被设计成用于矩阵运算的高效执行。此外,许多CPU架构利用复杂的本地或高速缓冲存储器管理例程,从而对于涉及大矩阵运算对象的运算可能会增加处理开销和执行复杂度。图形处理单元(GPU)也可以被用来实施矩阵运算。但是GPU常常被设计成用于高精度计算并且可能提供对于特定矩阵运算而言并非必要的精度水平,从而减少了可以实施的矩阵运算的数量。因此,现有的矩阵处理方法对于特定矩阵运算(比如人工神经网络中的涉及卷积的运算)是低效的。遍及本公开内容所描述的矩阵处理功能提供一种用于在人工神经网络中实施最大池化的高效的基于硬件的方法。人工神经网络例如包括一系列连接层。此外,在某些情况下,神经网络可以包括一个或多个最大池化层。最大池化例如是减小输入特征映射图的空间尺寸的下采样运算,以便减少神经网络中的参数和计算的数量。最大池化层例如常常被插入在卷积神经网络的相继卷积层之间。通过以下步骤来实施最大池化:遍及输入特征映射图滑动“最大过滤器”,识别输入特征映射图上的每一个过滤器位置内的最大数值,以及把对应的最大数值存储在输出特征矩阵中。经过神经网络的最大池化层的前向传播可以被称作前向池化,而经过神经网络的最大池化层的后向传播可以被称作后向池化。后向池化被用来例如使用来自前向池化运算的最大数值和索引部分地重建原始输入特征映射图。可以顺序地处理每一个最大数值-索引对以便重建原始输入特征映射图的部分复制(partialfacsimile)。当然,重建的特征映射图将仅仅保留来自各个原始过滤器位置的对应的最大数值,而所有其他元素都将被用零填充。在后向池化期间,如果每一个最大数值-索引对都被孤立地完全处理并且写入到存储器,由于对应的过滤器位置处的重叠元素,这在重建原始特征映射图时将需要多次重复的读取和写入操作。因此,为了高效地重建原始特征映射图,关键是确定何时已处理了可能影响重建特征映射图的特定元素的所有数值-索引对,从而可以在适当的时间把该特定元素写入到存储器以便最小化总的存储器存取的次数。举例来说,假设过滤器移动是向右并且随后向下,则过滤器的左上角处的元素总是将不具有进一步更新的最近的元素。因此,该元素可以被安全地写入到存储器。本公开内容描述了用于通过这种方式高效地实施后向池化的各个实施例。现在将更加具体地参照附图来描述可以被用来实施本公开内容的矩阵处理功能的示例性实施例。图1示出了对应于根据特定实施例的示例性计算系统100的示意图。在一些实施例中,遍及本公开内容所描述的矩阵处理功能可以被实施在系统100中。矩阵处理功能可以被使用在用于涉及矩阵运算的广泛应用和/或使用情况的系统100中,从图形处理到机器学习和人工智能以及其他实例。举例来说,在一些实施例中,矩阵处理功能可以被用来在人工神经网络中实施人工智能和机器学习。此外,可以通过系统100的任何组件来实施矩阵处理功能。举例来说,在所示出的实施例中,系统100包括边缘设备110、云端服务120、矩阵处理节点130以及网络150。矩阵处理节点130可以包括具有矩阵处理功能的任何组件或设备,包括系统100的任何组件。举例来说,矩阵处理节点130可以包括被实施成具有矩阵处理功能的云端服务120和/或服务器(例如数据中心中的应用服务器),被实施成具有矩阵处理功能的边缘设备110(例如末端用户设备112、物联网设备114、网关116)等等。后面将进一步讨论系统100的这些各种组件。边缘设备110可以包括靠近通信系统100的“边缘”被部署或连接的任何装备和/或设备。边缘设备110可以彼此通信以及/或者通过一个或多个网络(比如网络150)和/或通信协议与其他远程网络和服务(例如云端服务120)进行通信。在一些实施例中,特定的边缘设备110可以包括遍及本公开内容所描述的矩阵处理功能,并且从而可以被用作矩阵处理节点130。在所示出的实施例中,边缘设备110包括末端用户设备112(例如台式计算机、膝上型计算机、移动设备)、物联网(IoT)设备114、网关和/或路由器116以及其他实例。末端用户设备112可以包括允许或促进与计算系统100的用户交互的任何设备,其中例如包括台式计算机、膝上型计算机、平板设备、移动电话和其他移动设备、可佩戴设备(例如智能手表、智能眼镜、头戴式耳麦)以及其他实例。I本文档来自技高网...

【技术保护点】
1.一种装置,包括:多维存储器;用以实施矩阵运算的多个处理单元,其中所述矩阵运算包括在一个或多个矩阵运算对象上进行的最大池化运算,并且其中所述多个处理单元包括一个或多个矩阵处理器;其中,所述多个处理单元被配置成:从多维存储器接收矩阵数据,其中所述矩阵数据与所述一个或多个矩阵运算对象相关联;从矩阵数据中提取出所述一个或多个矩阵运算对象;使用所述一个或多个矩阵运算对象实施最大池化运算;以及获得最大池化运算的结果。

【技术特征摘要】
2016.12.30 US 15/3957861.一种装置,包括:多维存储器;用以实施矩阵运算的多个处理单元,其中所述矩阵运算包括在一个或多个矩阵运算对象上进行的最大池化运算,并且其中所述多个处理单元包括一个或多个矩阵处理器;其中,所述多个处理单元被配置成:从多维存储器接收矩阵数据,其中所述矩阵数据与所述一个或多个矩阵运算对象相关联;从矩阵数据中提取出所述一个或多个矩阵运算对象;使用所述一个或多个矩阵运算对象实施最大池化运算;以及获得最大池化运算的结果。2.根据权利要求1所述的装置,其中,所述最大池化运算包括用以减小矩阵运算对象的尺寸的运算。3.根据权利要求1所述的装置,其中,所述最大池化运算包括前向池化运算。4.根据权利要求1所述的装置,其中,所述最大池化运算包括后向池化运算。5.根据权利要求4所述的装置,其中,所述后向池化运算包括用以通过使用最大数值矩阵部分地重建原始矩阵而产生重建矩阵的运算。6.根据权利要求5所述的装置,其中,所述多个处理单元还被配置成:从最大数值矩阵中识别出最大数值条目;基于所述最大数值条目产生部分矩阵,其中所述部分矩阵包括重建矩阵的一部分;确定部分矩阵的一个或多个元素将不会被修改;以及把部分矩阵的所述一个或多个元素写入到存储器。7.根据权利要求6所述的装置,其中,所述最大数值条目包括最大值数值和索引。8.根据权利要求5所述的装置,还包括用以存储重建矩阵的一个或多个元素的FIFO存储器。9.根据权利要求8所述的装置,其中,所述FIFO存储器包括用以跟踪该FIFO存储器中的一个或多个条目是否被修改过的一个或多个状态比特。10.根据权利要求5所述的装置,其中,所述最大数值矩阵是前向池化运算的输出。11.根据权利要求5所述的装置,其中,所述最大数值矩阵包括一个或多个数值-索引对,其中所述一个或多个数值-索引对均包括最大值数值和索引。12.根据权利要求1所述的装置,其中,所述最大池化运算与神经网络中的前向传播运算相关联。13.根据权利要求1所述的装置,其中,所述最大池化运算与神经网络中的后向传播运算相关联。14.一种方法,包括:实施矩阵运算,其中所述矩阵运算包括在一个或多个矩阵运算对象上进行的最大池化运算,其中实施矩阵运算包括:从多维存储器接收矩阵数据,其中所述矩阵数据与所述一个或多个矩阵运算对象相关联;从矩阵数据中提取出所述一个或多个矩阵运算对象;使用所述一个或多个矩阵运算对象实施最大池化运算;以及获得最大池化运算的结果。15.根据权利要求14所述的方法,其中:所述最大池化运算包括后向池化运算;并且所述后向池化运算包括用以通过使用最大数值矩阵部分地...

【专利技术属性】
技术研发人员:T维尔纳H刘
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1