用于卷积模型多模式硬件加速器的方法和系统与流程

文档序号:28219854发布日期:2021-12-29 00:31阅读:142来源:国知局
用于卷积模型多模式硬件加速器的方法和系统与流程

1.本文的公开涉及用于包括卷积网络的机器学习模型的处理器技术、装置和系统的领域。


背景技术:

2.机器学习系统提供了用于推进新技术的关键工具,新技术包括自动语音识别、自动车辆、计算机视觉和自然语言理解。已经显示包括卷积神经网络的卷积模型是用于执行图像识别、检测和检索的有效工具。在神经网络可用于这些推理任务之前,必须在计算非常密集的过程中使用数据语料库对其进行训练,其中现有系统通常需要在图形处理单元(gpu)或中央处理单元上花费数周到数月的时间。
3.随着用于训练和机器学习推理网络的数据越来越多,所需的计算处理时间进一步加剧。硬件加速器比现有的基于gpu的方法更节能,并且显著降低了神经网络训练和推理任务所需的能量消耗。
附图说明
4.图1a示出了,在一个示例性实施例中,用于在具有单个输出滤波器支持的卷积模型中实现硬件加速器的卷积模型实例。
5.图1b示出了,在另一示例性实施例中,用于在具有多个输出滤波器支持的卷积模型中实现硬件加速器的卷积模型实例。
6.图2示出了,在一个示例性实施例中,实现卷积模型多模式硬件加速器的包括一个或多个处理器的平台装置的架构。
7.图3示出了实现卷积模型多模式硬件加速器的示例性实施例。
8.图4示出了,在一个示例性实施例中,用于实现卷积模型多模式硬件加速器的操作方法。
具体实施方式
9.除了其他的技术优点和益处之外,本文的解决方案提供利用第一和至少第二硬件加速器处理模式的组合,用于多模式同时处理。部署哪种模式来处理卷积模型层的给定部分的判定可以基于对与卷积模型层的相应部分相关联的输出滤波器和输入特征数据的稀疏性估计。这里使用的术语稀疏性是指构成给定卷积模型层的输出滤波器(或权重)和输入特征数据的一定数量的零。本文的解决方案结合用于处理由数据部分构成的卷积模型层的至少第二模式来部署第一模式,并且取决于稀疏性估计是否低于或高于预定稀疏性阈值水平。本文的解决方案发现,用于机器学习推理和训练工作负载的硬件加速器通常提供比cpu或gpu更高的吞吐量,同时消耗更低的功率。特别是关于卷积模型,可以实现多实例机器学习硬件加速器,以提供与单个实例硬件加速器相比更高的吞吐量,进一步提高关于机器学习工作负载的速度和效率。
10.多实例硬件加速器可以全部用于一个单一的机器学习作业。例如,硬件加速器的所有实例可用于同时对单个图像进行机器学习推理工作,通常用于批量为一的推理。特定模式,即稀疏模式,利用了在卷积模型的输入特征数据和输出滤波器(这里也称为权重)部分中可以有很多零的事实。在给定机器学习作业的计算的乘法部分中不使用具有零分量的输入数据和权重,并且该方面可应用于使用本文的的技术和系统来选择最佳的和互补的处理模式,以用于部署多模式硬件加速器来进一步加速机器学习任务。
11.另一个特定的模式是winograd模式,该模式依赖于将数据从时域变换到频域,并且对于二维阵列将乘法的数量减少2.25倍。这也显著地加快了机器学习作业的速度,达到理论上的2.25倍。
12.除了其它的优点和益处之外,本文的公开提供了一种新的方式,用于根据卷积模型来确定是否将稀疏模式或winograd模式用于机器学习作业,以增加多模式处理并行度的水平并减少总体计算时间。
13.根据第一示例性实施例,提供了实现卷积模型多模式硬件加速器的方法。该方法包括:将输入特征图的流接收到一个或多个处理器中,所述输入特征图利用包括多个卷积层的卷积模型;估计包含所述多个卷积层中的至少一个的数据部分的稀疏特性,所述数据部分包括输出滤波器和输入特征数据中的至少一个;根据所述稀疏特性,使用第一硬件加速器模式和第二硬件加速器模式来处理所述卷积模型的数据部分;以及根据所述处理,生成解释所述输入特征图的多个输出特征。
14.根据第二示例性实施例,公开了包括一个或多个处理器和存储器的处理系统,所述存储器存储在所述一个或多个处理器中可执行以提供卷积模型多模式硬件加速器的指令。所述存储器包括可执行以将输入特征图的流接收到所述一个或多个处理器中的指令,所述输入特征图利用包括多个卷积层的卷积模型,估计包括所述多个卷积层中的至少一个的数据部分的稀疏特性,所述数据部分包括权重和输入数据中的至少一个,根据所述稀疏特性,使用第一硬件加速器模式和第二硬件加速器模式处理所述卷积模型的数据部分,并且根据所述处理,生成解释所述输入特征图的多个输出特征。
15.本文描述的一个或多个实施例提供了由计算装置执行的方法、技术和动作以编程方式执行,或作为计算机实现的方法来执行。如本文所使用的,可编程地意味着通过使用代码或计算机可执行指令。这些指令可以存储在计算装置的一个或多个存储器资源中。
16.此外,本文描述的一个或多个实施例可以通过使用可由一个或多个处理器可执行的逻辑指令来实现。这些指令可以被携带在计算机可读介质上。具体地,本文用实施例示出的机器包括一个或多个处理器、用于存储数据和指令的各种形式的存储器,包括接口和相关联的电路。计算机可读介质和计算机存储介质的示例包括闪存和便携式存储器存储单元。如本文所述的处理器装置利用存储器和存储在计算机可读介质上的逻辑指令。本文描述的实施例可以以计算机处理器可执行逻辑指令结合存储在计算机存储器介质上的程序的形式来实现,并且可以以硬件的变化组合结合处理器可执行指令或代码来实现。系统描述
17.图1a示出了在一个示例性实施例中用于实现具有单个输出滤波器支持的硬件加速器的卷积模型实例。卷积运算典型地体现了输入的两部分:一部分是输入特征图数据,另一部分是滤波器(也称为输出滤波器、或核、或权重)。给定具有w(宽度)
×ꢀ
h(高度)
×
集成
电路(ic)数据立方体和rxsxic滤波器的输入通道数据,直接卷积的输出可以被表示为:其中:x =输入数据/输入特征/输入特征图w =输入或输出数据的宽度h =输入或输出数据的高度r =核大小(宽度)s =核大小(高度)c =输入通道的数量y =输出数据/输出特征/输出特征图w =滤波器/核/权重。
18.图1a示出了7x7xic的输入,其中ic是输入通道的数量。在该示例情况中使用7x7的输入,并且输入分辨率大小可以变化。滤波器可以具有不同的尺寸,典型的尺寸是1x1、3x3、5x5、7x7等。在此示例中,3x3的滤波器包括九个权重(或九个值)。对于每个输入通道,3x3滤波器或权重与3x3数据卷积,并产生一个输出数据。将所有输入通道的相同位置的数据求和并产生1个输出数据通道。5x5输出数据的最终输出示于图1a中。
19.应用输出滤波器来检测来自输入数据流的输入图的特定特征,例如,以检测向外和向右弯曲的线。其它滤波器可以检测输入图的其它特征,例如对于向左弯曲的线或对于直线边缘。滤波器越多,激活图的深度越大,并且关于输入体积的信息越多。
20.这延伸至输出通道 (oc) 定义。每个oc由用于检测输入特征图数据流的一个特定特征或图案的输出滤波器表示。图1a示出了1输出滤波器 (1 oc)。通常在深度学习网络中有许多oc(输出滤波器)在输入特征图的数据流中寻找不同的信息、特征或图案。
21.图1b示出了在另一示例性实施例中用于实现硬件加速器的另一卷积模型实例;具体地,具有多个输出滤波器支持的卷积模型。在图1b的示例中,输入特征数据仍为7x7xic。对于每个输出滤波器,在卷积之后,产生5x5输出数据,如图1a中所示。为 k

1 个输出通道滤波器生成总共 5x5xoc 输出数据。
22.机器学习推理和训练网络通常被建模为包括许多卷积层。通常,一层的输出变为下一层的输入。例如,在图中1b时,如果当前层的ic是128,oc是256,则当前层的输入是7x7x128,输出是7x7x256。下一层的输入是7x7x256。
23.虽然在本文的公开中主要描述了硬件加速器,但是可以设想将技术和系统扩展到机器学习推理和训练工作负载的中央处理器和通用处理单元实现方式。
24.图2示出了在一个示例性实施例中实现卷积模型多模式硬件加速器的包括一个或多个处理器的平台装置或处理系统的架构200。
25.卷积模型多模式硬件加速器逻辑模块205可以包括存储在存储器202中的指令,这些指令可与处理器201结合执行。在实现方式中,可以使用协作部署的多个处理器来执行归属于处理器201的功能。卷积模型多模式硬件加速器逻辑模块205可以包括包含特征输入模块210、稀疏性判定模块211、硬件加速器多模式处理模块212和输出特征生成模块213的部分或子模块。在可替代实现方式中,可以设想至少一些硬连线电路可以用于代替卷积模型
多模式硬件加速器205的软件逻辑指令的全部或某些部分或者与它们结合使用,以实现本文描述的硬件加速器示例。因此,本文描述的示例不限于硬件电路和软件指令的特定固定布置。
26.卷积模型多模式硬件加速器逻辑模块205的特征输入模块210可包括在处理器201中可执行以用于将输入特征图的流接收到一个或多个处理器中指令,所述输入特征图利用包括多个卷积层的卷积模型。
27.卷积模型多模式硬件加速器逻辑模块205的稀疏性判定模块211可包括在处理器201中可执行以用于估计数据部分的稀疏特性的指令,所述数据部分包括所述多个卷积层中的至少一个,所述数据部分包括输出滤波器和输入特征数据中的至少一个。
28.卷积模型多模式硬件加速器逻辑模块205的硬件加速器多模式处理模块212可包括可在处理器201中执行以用于根据稀疏特性使用至少第一硬件加速器模式和第二硬件加速器模式来处理卷积模型的数据部分的指令。在一些实施例中,可以在处理系统中实现多于一个的协同工作的硬件加速器。
29.卷积模型多模式硬件加速器逻辑模块205的输出特征生成模块213可包括可在处理器201中执行以用于根据重新配置的计算顺序来生成解释输入特征图的至少输出特征的指令。方法论
30.图3示出了实现卷积模型多模式硬件加速器300的示例性实施例。输入数据和权重读取器可以从机器学习加速器外部的存储器读取输入数据和权重。输入数据和权重有时被压缩以节省存储器带宽,并且可能需要解压缩。根据来自输入特征数据的稀疏性水平和检测到的权重,对于具有大于或小于预定阈值稀疏性水平的数据部分,处理可以是并行的。在所描绘的示例中,对于大于阈值的稀疏性水平,稀疏性处理可以基于数据部分的乘法,同时,具有小于阈值的稀疏性水平的其他数据部分的处理可以根据winograd算法和乘法进行。
31.微处理器201判定对于给定的网络层,它应该以稀疏模式或winograd模式操作。在稀疏模式中,执行稀疏性处理和乘法。在winograd模式中,执行winograd处理和乘法。在图示的示例实施例中,可以在winograd模式和稀疏模式处理之间共享诸如乘法器的硬件资源。所得输出数据可以被发送到输出数据压缩器和写入器模块。输出数据有时在被写出到机器学习加速器300外部的存储器之前被压缩以节省存储器带宽和/或功率。这里使用微处理器201作为示例,并且设想可以使用其他硬件或软件来代替。
32.在一个示例性实施例中,关于是否使用稀疏模式进行处理的判定可以基于输入数据中的零的数量。当输出数据压缩器和写入器301完成对来自前一层的所有输出数据的压缩和写入时,可以计算和存储输出数据中的零的数量。虽然每个卷积层的权重是根据所应用的输出滤波器预先确定的,但是来自数据压缩器和写入器301的该输出数据及其伴随的稀疏性组成转而成为卷积模型处理中后续层或下一层的输入数据。表查找和/或可编程阈值可用于判定是否使用稀疏模式。一个例子是,如果输入数据的稀疏性等于或大于50%(意味着50%或更多的输入数据为零),则通常仅需要一半的乘法来处理剩余的非零权重和输入数据。无论权重稀疏性如何,这都是正确的。在这种情况下,可以实现至少2倍的加速,因此稀疏模式与winograd模式相比是有利的和优选的,稀疏模式在处理时间上提供接近2.25倍
的最大加速或增强。
33.图4示出了在一个示例性实施例中用于实现卷积模型多模式硬件加速器的操作的方法400。在描述图4的示例时,参考图1a、图1b、图2和图3的示例。用于说明用于执行所描述的步骤或子步骤的适当部件或元件。
34.这里描述的方法步骤的示例涉及使用包括卷积模型多模式硬件加速器逻辑模块205的多模式处理系统200来实现所描述的技术。根据一个实施例,响应于处理器201执行构成卷积模型多模式硬件加速器逻辑模块205的一个或多个指令序列来执行这些技术。在实施例中,卷积模型多模式硬件加速器逻辑模块205可以包括子模块内的一个或多个指令序列,子模块包括特征输入模块210、稀疏性判定模块211、硬件加速器多模式处理模块212和输出特征生成模块213。这种指令可以从机器可读介质读入存储器202,包括存储器存储装置。在执行包含在卷积模型多模式硬件加速器逻辑模块205的特征输入模块210、稀疏性判定模块211、硬件加速器多模式处理模块212和输出特征生成模块213中的指令序列时,处理器201执行这里描述的处理步骤。
35.在可替代实现方式中,可以使用至少一些硬连线电路代替软件逻辑指令或与软件逻辑指令结合来实现本文描述的示例。因此,本文描述的示例不限于硬件电路和软件指令的任何特定组合。另外,还设想在可替代实施例中,本文中的技术或其部分可以分布在协同工作的几个处理器之间。
36.在硬件加速器中有固定数量的乘法器池来进行数据和权重的乘法/卷积。通常,在卷积的输入特征数据和/或权重(在输出滤波器中)部分中有很多零。在非稀疏模式(正常模式)中,乘法器依旧用于计算数据和权重的乘法,即使其中一个或两个为零。在这种情况下,消耗固定的时间量(固定数量的硬件时钟周期)。因此,在单一硬件加速器情况或多个硬件加速器情况下,完成给定卷积模型层的周期数是固定的。
37.一种特定的模式,即稀疏模式,利用了在卷积的输入特征数据和/或权重部分中可以有很多零的事实。在机器学习作业的乘法部分中不使用具有0分量的数据和/或权重,这进一步加速了机器学习作业。
38.在这种特殊的稀疏模式情况下,处理一层的循环次数可以变化,这取决于输入特征数据中的0的数量以及输出滤波器中构成的0的数量。
39.通常,对于具有多个0 (零)的权重的层,需要更少的乘法,因此生成输出数据的时间更短。
40.例如,在具有3x3个权重的滤波器的情况下,在每个输入通道中总共有九个非零权重。与没有零权重 (9个有效权重)的滤波器相比,6个零权重 (3个非零权重)的滤波器采用更少的乘法(因此消耗更少的时间)。
41.稀疏模式中给定层的处理时间由于给定层中零权重和数据的量而变化。在许多零的情况下可以实现显著的加速,并且对于具有更少的零的情况可以实现更少的加速。在几乎所有情况下,对于直接卷积,稀疏模式总是比非稀疏模式快。
42.然而,除了快速卷积模式之外,还有诸如比直接卷积模式快2.25倍之多的winograd算法。对于具有少量零的情况,winograd算法可以比稀疏模式更快。本发明提出了一种稀疏模式与其它快速卷积方法(包括winograd算法)结合使用,用于进一步优化处理时间的减少的情况。
43.在一个实施例中,示出为直接卷积的等式有时可以被简化为x*w,其中*表示直接卷积。winograd算法可用于代替直接卷积。winograd算法将输入数据和权重从时域转换为频域。x*w的时域直接卷积可以表示为频域逐点乘法,并且可以被简化为x*w=f
‑1{f{x}.f{w}},其中f{x}和f{w}将x和w从时域变换为频域,和“.
”ꢀ
表示逐点乘法。在执行逐点乘法之后,f
‑1的逆变换将结果从频域变换为时域。
44.对于直接卷积模式下的 4x4 输入,具有 3x3 权重,需要 4 次 3x3 乘法或 36 次乘法。对于winograd的4x4输入,仅需要十六次乘法。这实际上是使用 winograd 将处理时间减少了 2.25。
45.如果数据和/或权重具有许多零,则直接卷积中的稀疏模式可以比winograd显著地快;否则,如果数据和/或权重具有非常小的零,则稀疏模式可能比winograd慢或花费更多的处理时间。
46.winograd算法在直接卷积的非稀疏模式下处理时间减少是固定的。与非稀疏模式处理时间减少相比,稀疏模式是不同的。本公开提出了一种稀疏模式与winograd模式并行使用并与winograd模式结合使用以进一步优化处理时间减少的情况。
47.对于给定网络层是否使用稀疏模式或winograd模式的判定可以通过以下示例方法(但不限于这些示例方法)来完成。
48.1) 权重或输出滤波器中的零的数量。权重是预先已知的,因此可以使用cpu离线计算权重。表查找和/或可编程阈值可用于判定是否使用稀疏模式处理。一个示例是,如果权重稀疏性等于或大于50%(3x3核中的九个权重中的五个是零),则通常仅需要一半的乘法来处理剩余的非零权重和输入数据。无论输入数据稀疏性如何,这都可以是正确的。在这种情况下,可以实现至少2倍的加速,因此稀疏模式比winograd模式更优选,稀疏模式模式在处理时间上提供接近2.25倍的最大加速或增强。
49.2) 输入数据中的零的数量。当输出数据压缩器和写入器完成对来自前一层的所有输出数据的压缩和写入时,可以计算和存储输出数据中的零的数量。该输出数据转而成为卷积模型处理中的当前层的输入数据。表查找和/或可编程阈值可用于判定是否使用稀疏模式。一个例子是,如果输入数据稀疏性等于或大于50%(50%或更多的输入数据为零),则通常仅需要一半的乘法来处理剩余的非零权重和输入数据。无论权重稀疏性如何,这都可以是正确的。在这种情况下,可以实现至少2倍的加速,因此稀疏模式与winograd模式相比是有利的和优选的,稀疏模式在处理时间上提供接近2.25倍的最大加速或增强。
50.3) 输入数据稀疏性结合权重稀疏性。这结合了上述方法1)和2),并使用输入数据稀疏性和权重稀疏性两者。可以使用表查找和/或可编程阈值。这种情况在权重稀疏性和输入数据稀疏性均小于50%时适用。检查输入数据稀疏性和权重稀疏性以判定是否使用稀疏模式而不是winograd模式。一个例子可以是权重稀疏性为33%(在3x3内核模式中,九个权重中的三个是零),以及输入数据稀疏性为25%(输入数据的25%是零),那么可以实现至少2倍的加速,因此稀疏模式与winograd模式相比是有利的和优选的。
51.这里使用整个网络层的示例来在稀疏模式和winograd模式之间进行切换,但是可以应用更精细的粒度。例如,在稀疏模式和winograd模式之间的切换可以基于每个oc来进行,仍然使用上文列出的三种方法中的一些方法。结果是,对于给定的网络,某些层可以用稀疏模式运行,而某些层以winograd模式运行。也可以层的一部分用稀疏模式运行,而同一
层的另一部分以winograd模式运行。
52.本文所建议的发明可应用于机器学习加速器的单实例和多实例卷积模型。虽然这里使用winograd作为快速卷积算法的示例,但是可以设想也可以应用其他可能的快速卷积算法。
53.在体现本文公开的前述卷积模型示例性实施例的至少一些方面的示例性多模式硬件加速器操作中,在步骤410,处理器201执行特征输入模块210的用于将输入特征图的流接收到一个或多个处理器中指令,所述输入特征图利用包括多个卷积层的卷积模型。
54.在一个方面,输入特征图包括图像,该图像可以包括多个图像特征,例如,向左、向右、向上或向下弯曲的线。
55.在步骤420,硬件加速器的处理器201执行包括在稀疏性判定模块211中的指令用来估计包含多个卷积层中的至少一个的数据部分的稀疏特性。在一个实施例中,数据部分包括输出滤波器和输入特征数据中的至少一个。
56.在一个实施例中,估计稀疏特性包括识别输入特征数据和输出滤波器中的一定数量的零。
57.在另一实施例中,该方法还包括当稀疏特性高于预定稀疏阈值时以第一模式处理数据部分。
58.在又一实施例中,该方法进一步包括当稀疏特性低于预定稀疏阈值时以第二模式处理数据部分。
59.在步骤430,处理器201执行包括在硬件加速器多模式处理模块212中的指令,用于根据稀疏特性使用第一硬件加速器模式和第二硬件加速器模式来处理卷积模型的数据部分。
60.在一些实施例中,该方法可以包括当稀疏特性高于预定稀疏阈值时以第一模式处理数据部分,以及当稀疏特性低于预定稀疏阈值时以第二模式处理数据部分。
61.在一个变体中,当使用第一硬件加速器模式和第二硬件加速器模式处理数据部分时,数据部分包含多个卷积层内的任何一个层。
62.在另一变体中,当使用用于分离层中的相应层的第一硬件加速器模式和第二硬件加速器模式来处理分离层的数据部分时,数据部分包括多个卷积层中的第一和至少第二层。
63.在另一变体中,第一模式包括稀疏模式。在又一变体中,使用第一模式和第二模式进行处理可以进一步包括使用(i)第一模式、(ii)第二模式和(iii)第一模式与第二模式的组合中的至少两者进行处理。
64.在又一变体中,第二模式包括快速卷积模式。可以使用将输入数据和输出滤波器从时域转换为频域的winograd快速卷积算法来实现快速卷积模式。
65.在步骤440,处理器201执行包括在输出特征生成模块213中的指令,以根据重新配置的计算顺序生成解释输入特征图的输出特征。
66.可以设想,卷积模型多模式硬件加速器可以在现场可编辑门阵列(fpga)装置、大规模并行处理器阵列装置、图形处理单元(gpu)装置、中央处理器(cpu)装置和专用集成电路(asic)装置中的一个或多个中实现。
67.设想本文描述的实施例可被扩展并适用于本文描述的各个元件和概念,独立于其
他概念、思想或系统,并且适用于包括元件的组合以及本技术中任何地方所述的步骤的组合的实施例。虽然本文参考附图详细描述了实施例,但是应当理解,本发明不限于那些精确的实施例。因此,对于本领域技术人员来说,许多修改和变化是明显的。因此,旨在本发明的范围由以下权利要求及其等同物限定。此外,可以设想,单独描述的或作为实施例的一部分描述的特定特征可以与单独描述的其他特征或其他实施例的一部分进行组合,即使其他特征和实施例没有提及该特定特征。因此,没有描述的组合并不排除发明人对这种组合主张权利。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1