CN113892092A - 卷积模型硬件加速器的方法和系统 - Google Patents
卷积模型硬件加速器的方法和系统 Download PDFInfo
- Publication number
- CN113892092A CN113892092A CN202080025824.8A CN202080025824A CN113892092A CN 113892092 A CN113892092 A CN 113892092A CN 202080025824 A CN202080025824 A CN 202080025824A CN 113892092 A CN113892092 A CN 113892092A
- Authority
- CN
- China
- Prior art keywords
- hardware accelerator
- sub
- blocks
- input feature
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 238000012549 training Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
一种用于卷积模型硬件加速器的方法和系统。该方法包括将输入特征图的流输入到一个或多个处理器中,所述输入特征图利用包括多个卷积层的卷积模型,对于多个卷积层内的给定卷积层,通过重新混洗多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序,并且根据重新配置的计算顺序,生成解释输入特征图的输出特征。
Description
技术领域
本文的公开涉及用于包括卷积网络的机器学习模型的处理器技术、装置和系统的领域。
背景技术
机器学习系统提供了用于推进新技术的关键工具,新技术包括自动语音识别、自动车辆、计算机视觉和自然语言理解。已经显示包括卷积神经网络的卷积模型是用于执行图像识别、检测和检索的有效工具。在神经网络可用于这些推理任务之前,必须在计算非常密集的过程中使用数据语料库对其进行训练,其中现有系统通常需要在图形处理单元(GPU)或中央处理单元上花费数周到数月的时间。
随着用于训练和机器学习推理网络的数据越来越多,所需的计算处理时间进一步加剧。硬件加速器比现有的基于GPU的方法更节能,并且显著降低了神经网络训练和推理任务所需的能量消耗。
附图说明
图1A-1B示出了用于实现硬件加速器的示例实施例卷积模型实例。
图2示出了,在一个示例性实施例中,实现卷积模型硬件加速器的包括一个或多个处理器的平台装置的架构。
图3示出了在一个示例实施例中用于实现卷积模型硬件加速器的操作方法。
发明内容
除了其它技术优点和益处之外,本文中的解决方案在稀疏模式的卷积模型中为机器学习推理和训练加速器提供了重新混洗(re-shuffling)或重新分配输出滤波器(本文中也称为滤波器、权重或核)的初始顺序。本文的解决方案发现,用于机器学习推理和训练工作负载的硬件加速器通常提供比CPU或GPU更高的吞吐量,同时消耗更低的功率。特别是关于卷积模型,可以实现多实例机器学习硬件加速器,以提供与单个实例硬件加速器相比更高的吞吐量,进一步提高关于机器学习工作负载的速度和效率。
多实例硬件加速器可以全部用于一个单一的机器学习作业。例如,硬件加速器的所有实例可用于同时对单个图像进行机器学习推理工作,通常用于批量为一的推理。特定模式,稀疏性模式,利用了在卷积模型的输入特征数据和输出滤波器(或权重)部分中可以有很多零的事实。在给定机器学习作业的计算的乘法部分中不使用具有零成分的数据和权重,并且可以使用本文的技术和系统将该方面应用到硬件加速器以进一步加速机器学习任务。本文的公开描述了一种重新平衡多实例卷积模型机器学习推理和训练硬件加速器之间的计算负载的新颖方式,特别是以稀疏性模式进行,以增加并行性水平并减少总体计算时间。
根据第一示例实施例,提供了实现卷积模型硬件加速器的方法。该方法包括利用包括多个卷积层的卷积模型将输入特征图的流接收到一个或多个处理器中,对于多个卷积层内的给定卷积层,通过重新混洗多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序,并且根据重新配置的计算数据流程,生成解释输入特征图的输出特征。
根据第二示例性实施例,公开了包括一个或多个处理器和存储器的处理系统,所述存储器存储在所述一个或多个处理器中可执行以提供卷积模型硬件加速器的指令。存储器包括可执行以利用包括多个卷积层的卷积模型将输入特征图的流接收到一个或多个处理器中的指令,对于多个卷积层内的给定卷积层,通过重新混洗多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序,并且根据所述重新配置的计算顺序,生成解释输入特征图的输出特征。
根据第三示例实施例,提供了包括在一个或多个处理器中可执行的指令的非瞬态存储器。所述指令在所述一个或多个处理器中可执行以通过利用包括多个卷积层的卷积模型将输入特征图的流接收到所述一个或多个处理器中来实现卷积模型硬件加速器,对于所述多个卷积层中的给定卷积层,通过重新混洗所述多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序,并且根据所述重新配置的计算顺序,生成解释所述输入特征图的输出特征。
本文描述的一个或多个实施例提供了由计算装置执行的方法、技术和动作以编程方式执行,或作为计算机实现的方法来执行。如本文所使用的,可编程意味着通过使用代码或计算机可执行指令。这些指令可以存储在计算装置的一个或多个存储器资源中。
此外,本文描述的一个或多个实施例可以通过使用可由一个或多个处理器执行的逻辑指令来实现。这些指令可以被携带在计算机可读介质上。具体地,本文用实施例示出的机器包括一个或多个处理器、用于存储数据和指令的各种形式的存储器,包括接口和相关联的电路。计算机可读介质和计算机存储介质的示例包括闪存和便携式存储器存储单元。如本文所述的处理器装置利用存储器和存储在计算机可读介质上的逻辑指令。本文描述的实施例可以以计算机处理器可执行逻辑指令结合存储在计算机存储器介质上的程序的形式来实现,并且可以以硬件的变化组合结合处理器可执行指令或代码来实现。
具体实施方式
图1A示出了在一个示例性实施例中用于实现具有单个输出滤波器支持的硬件加速器的卷积模型实例。卷积运算典型地体现了输入的两部分:一部分是输入特征图数据,另一部分是滤波器(也称为输出滤波器、或内核、或权重)。给定具有W(宽度)×H(高度)×集成电路(IC)数据立方体和RxSxIC滤波器的输入通道数据,直接卷积的输出可以被表示为:
其中:
X=输入数据/输入特征/输入特征图
W=输入或输出数据的宽度
H=输入或输出数据的高度
R=核大小(宽度)
S=核大小(高度)
c=输入通道的数量
Y=输出数据/输出特征/输出特征图
W=滤波器/核/权重
图1A示出了7x7xIC的输入,其中IC是输入通道的数量。在该示例情况中使用7x7的输入,并且输入分辨率大小可以变化。滤波器可以具有不同的尺寸,典型的尺寸是1x1、3x3、5x5、7x7等。在此示例中,3x3的滤波器包括九个权重(或九个值)。对于每个输入通道,3x3滤波器或权重与3x3数据卷积,产生一个输出数据。将所有输入通道的相同位置的数据求和并产生1个输出数据通道。5x5输出数据的最终输出示于图1A中。
应用输出滤波器来检测来自输入数据流的输入图的特定特征,例如,以检测向外和向右弯曲的线。其它滤波器可以检测输入图的其它特征,例如对于向左弯曲的线或对于直线边缘。滤波器越多,激活图的深度越大,并且关于输入体积的信息越多。
这延伸至输出通道(OC)定义。每个OC由用于检测输入特征图数据流的一个特定特征或图案的输出滤波器表示。图1A示出了1输出滤波器(1OC)。通常在深度学习网络中有许多OC(输出滤波器)在输入特征图的数据流中寻找不同的信息、特征或图案。
图1B示出了在另一示例性实施例中用于实现硬件加速器的另一卷积模型实例;具体地,具有多个输出滤波器支持的卷积模型。在图1B的示例中,输入特征数据仍为7x7xIC。对于每个输出滤波器,在卷积之后,产生5x5输出数据,如图1A中所示。为K-1个输出通道滤波器生成总共5x5xOC输出数据。
机器学习推理和训练网络通常被建模为包括许多卷积层。通常,一层的输出变为下一层的输入。例如,在图中1B时,如果当前层的IC是128,OC是256,则当前层的输入是7x7x128,输出是7x7x256。下一层的输入是7x7x256。
虽然在本文的公开中主要描述了硬件加速器,但是可以设想将技术和系统扩展到机器学习推理和训练工作负载的中央处理单元和通用处理单元实现方式。
图2示出了在一个示例性实施例中实现卷积模型硬件加速器的包括一个或多个处理器的平台装置或处理系统的架构200。
卷积模型硬件加速器逻辑模块205可以包括存储在存储器202中的指令,这些指令可与处理器201结合执行。在实现方式中,可以使用协作部署的多个处理器来执行归属于处理器201的功能。卷积模型硬件加速器逻辑模块205可以包括包含特征输入模块210、输出滤波器重新混洗模块211和输出特征生成模块212的部分或子模块。在可替代实现方式中,可以设想至少一些硬连线电路可以用于代替卷积模型硬件加速器205的软件逻辑指令的全部或某些部分或者与它们结合使用,以实现本文描述的硬件加速器示例。因此,本文描述的示例不限于硬件电路和软件指令的特定固定布置。
卷积模型硬件加速器逻辑模块205的特征输入模块210可包括在处理器201中可执行以用于利用包括多个卷积层的卷积模型将输入特征图的流接收到一个或多个处理器中指令。
卷积模型硬件加速器逻辑模块205的输出滤波器重新混洗模块211可包括在处理器201中可执行的用以对于多个卷积层中的给定卷积层、通过重新混洗多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序的指令。在一些实施例中,可以在处理系统中实现协同工作的一个以上硬件加速器。
卷积模型硬件加速器逻辑模块205的输出特征生成模块212可包括可在处理器201中执行以用于根据重新配置的计算顺序来生成至少包括解释输入特征图的输出特征的指令。
方法论
图3示出了,在一个示例实施例中,用于实现卷积模型硬件加速器的操作的方法300。在描述图3的示例时,为了说明用于执行所描述的步骤或子步骤的适当部件或元件的目的,参考图1至图2的示例。
此处描述的方法步骤的示例涉及使用包括卷积模型硬件加速器逻辑模块205的处理系统200来实现所描述的技术。根据一个实施例,响应于处理器201执行构成卷积模型硬件加速器逻辑模块205的一个或多个软件逻辑指令序列来执行这些技术。在一些实施例中,卷积模型硬件加速器逻辑模块205可以包括子模块内的一个或多个指令序列,子模块包括特征输入模块210、输出滤波器重新混洗模块211和输出特征生成模块212。这种指令可以从诸如存储器存储装置的机器可读介质被读入存储器202。在执行包含在卷积模型硬件加速器逻辑模块205的特征输入模块210、输出滤波器重新混洗模块211和输出特征生成模块212中的指令序列时,处理器201执行此处描述的处理步骤。
在可替代实现方式中,可以使用至少一些硬连线电路代替软件逻辑指令或与软件逻辑指令结合来实现本文描述的示例。因此,本文描述的示例不限于硬件电路和软件指令的任何特定组合。另外,还设想在可替代实施例中,本文中的技术或其部分可以分布在协同工作的几个处理器之间。
硬件加速器的单个实例通常用于同时处理几个输出滤波器。简单的例子如下:总共128个输出滤波器(128OC),硬件加速器同时处理8个OC。这将需要16次迭代来处理所有128个OC。
多实例硬件加速器可以全部用于一个单个机器学习作业。例如,硬件加速器的所有实例可用于同时进行单个图像的机器学习推理工作。
在多实例硬件加速器的情况下,简单的例子是每个硬件加速器处理输出滤波器的总数除以N,其中N是硬件加速器的数量。
下面的网络和系统用于说明示例实施例:1)具有128个输出权重滤波器(128个OC)的网络层,2)具有8个子块的硬件加速器和每个一次处理一个OC,因此同时总共8个OC;3)4个并行硬件加速器。在这个示例中,需要四次迭代来处理全部128个OC。
在硬件加速器中有固定数量的乘法器池来进行数据和权重的乘法/卷积。通常,在卷积的输入特征数据和/或权重(在输出滤波器中)部分中有很多零。在非稀疏模式(正常模式)中,乘法器用于进行数据和权重的乘法,即使一个或两个为零。在这种情况下,消耗固定的时间量(固定数量的硬件时钟周期)。因此,在单硬件加速器情况或多硬件加速器情况下,完成输出信道的循环次数是相同的,因为硬件加速器内的每个子块大约需要相同的时间量来处理一个OC。
一种特定的模式,即稀疏模式,利用了在卷积的输入特征数据和/或权重部分中可以有很多零的事实。在机器学习作业的乘法部分中不使用具有0分量的数据和/或权重,并且这进一步加速了机器学习作业。
在这种特殊的稀疏模式情况下,处理每个OC的循环次数可以变化,这取决于输入特征数据中的0的数量以及输出滤波器中构成的0的数量。
例如(总共128个OC,硬件加速器同时处理8个OC,4个硬件加速器),则跨越4个硬件加速器同时处理32个OC。由于在滤波器的相应权重中的0的数量不同,这些32个OC可以在不同时间(以不同数量的硬件时钟周期)完成。
本发明描述了一种在多实例机器学习推理或训练硬件加速器之间平衡负载的新方式,特别是在以稀疏性模式下进行的方式。
在上述示例中,一个硬件加速器处理所有OC需要十六次迭代,而四个硬件加速器处理所有OC需要四次迭代。
在单个硬件加速器示例的情况下,它在第一次迭代中处理OC0到OC7,在第二次迭代中处理OC8到OC15,在第15次迭代中处理OC120到OC127。在硬件加速器中有八个子块。每个子块处理1个OC使得单个硬件加速器可以同时处理8个OC。第一子块处理OCO、OC8、OC16、OC24,……OC120和第二子块处理OC1、OC9、OC17、OC25、……OC121和第七子块处理OC7、OC15、OC23、……OC127。第一子块的总处理时间是处理C0O、OC8、OC16、OC14、……的总时间。
在4个硬件加速器的情况下,第一硬件加速器在第1次迭代中处理OC0至OC7,在第2次迭代中处理OC8至OC15,在第3次迭代中处理OC16至OC23,在第4次迭代中处理OC24至OC31。第二硬件加速器在第一次迭代中处理OC32至OC39,在第二次迭代中处理OC40至OC47,依此类推。第四硬件加速器在第四次迭代中处理OC96至OC127。第一硬件加速器的第一子块的总处理时间是处理OC0、OC8、OC16和OC24的总时间。
可替代地,在4个硬件加速器的情况下,第一硬件加速器在第1次迭代中处理OC0至OC7,在第2次迭代中处理OC32至OC39,在第3次迭代中处理OC64至OC71,依此类推。第二次硬件加速器在第一次迭代中处理OC8至OC15,在第二次迭代中处理OC40至OC47,依此类推。第一硬件加速器的第一子块的总处理时间是处理OC0、OC32、OC64和OC96的总时间。
在上述所有情况下,无论一个硬件加速器还是四个硬件加速器,分配给后期迭代的OC都是固定模式,并且不考虑稀疏度模式中的早期迭代所消耗的时间或硬件时钟周期。
在本发明中,后期迭代的OC分配考虑了早期OC所消耗的估计时间或实际时间。
通常,对于具有多个零的权重的OC,需要更少的乘法,因此产生该OC的输出数据的时间更短。
注意对于3x3卷积,OC的滤波器具有3x3xIC的大小,其中IC是输入通道的数量。3x3xIC中的0的数量确定所需乘法的数量。此外,当同时考虑数据稀疏性和权重稀疏性时,数据中的0的数量与OC的3x3xIC中的0的数量一起确定该OC所需的乘法数量。
例如,在具有3x3个权重的滤波器的情况下,在每个输入通道中总共有九个非零权重。与没有零权重(9个有效权重)的滤波器相比,6个零权重(3个非零权重)的滤波器采用更少的乘法(因此消耗更少的时间)。
在上述单个硬件加速器的例子中,以子块0为例,可能所有的OC0、OC8、OC16,OC14、……OC120都有许多权重为0的滤波器,而子块1OC9、OC17、……OC121具有较少权重为0的滤波器。在这种情况下,子块1可能比子块0花费更长的时间。这是非最佳情况,因为只有当所有OC都完成处理时,网络的当前层才能完成并移至下一层。
对于硬件加速器的相同子块,本发明在多次迭代中动态地或静态地将在滤波器中具有较少0权重的OC与在滤波器中具有更多0权重的OC组合。这种优化增加了对于网络的给定层硬件加速器的所有子块或所有硬件加速器的所有子块尽可能接近同时完成的机会。
例如,在前面的例子中,OC0、OC8、OC16、OC24、…OC120都具有其中多个权重为零的滤波器并且它们都被分配给子块0,而OC1、OC9、OC17、OC25、…OC121都具有权重较少为0的滤波器并且它们都被分配给子块1。一种简单的再混洗得到的子块具有OC0、OC9、OC16、OC25……、OC121,而子块1具有OC1、OC8、OC17、OC24……OC120。这确保了两个子块的输入数据与具有相似的0密度的滤波器相乘。此处的示例还可以扩展到单个硬件加速器的所有子块或所有硬件加速器。以上仅是重新混洗/重新分配的示例。
在重新混洗期间如何将哪个OC分配给哪个子块的判决可以由固件(由嵌入式处理器控制)静态地完成或由硬件动态地完成。用于将不同OC分配给单个硬件加速器或多个硬件加速器的不同子块的判决标准的示例:单个输出滤波器中非零权重的数量,2)跨越多个输出滤波器的非零权重的数量,3)数据稀疏性与滤波器/权重稀疏相结合——这只能动态地而不是静态地完成。4)先前迭代的实际处理时间。
如上所述,机器学习推理和/或训练网络通常具有多个卷积层。通常,一层的输出变为下一层的输入。例如,在图2中,如果当前层的IC是128并且OC是256,则当前层的输入是7x7x128并且输出是7x7x256。下一层的输入是7x7x256。在本发明中,跨一个或多个硬件加速器的不同子块重新分配OC。因此,由于子块的重新混洗或重新分配,当前层的7x7x256的256个输出信道(或下一层的7x7x256的256个输入通道)受到重新分配的子块的乘法运算的重新排序。这不会给最终求和和输出带来问题,因为所有输入通道在卷积运算之后被求和或加到一起,而不考虑特定顺序。
在体现本文公开的前述示例性实施例的至少一些方面的示例性硬件加速器操作中,在步骤310,处理器201执行特征输入模块210的用于利用包括多个卷积层的卷积模型将输入特征图的流接收到一个或多个处理器中指令。
在一个方面,输入特征图包括图像,该图像可以包括多个图像特征,例如,向左、向右、向上或向下弯曲的线。
在步骤320,硬件加速器的处理器201执行包括在输出滤波器重新混洗模块211中的指令,用于对于多个卷积层中的给定卷积层,通过重新混洗多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序。
在一个实施例中,重新配置所述计算数据流程包括,基于识别与所述多个硬件加速器子块的至少一组相关联的所述输入特征数据中的一定数量的零或所述多个输出滤波器中的一定数量的零或两者均识别。
在一个变体中,重新分配或重新混洗输出滤波器的顺序包括在硬件实现中在硬件加速器子块之间动态地重新分配输出滤波器。
在另一个变体中,重新混洗包括在由嵌入式中央处理单元(CPU)控制的固件实现中在硬件加速器子块之间静态地重新分配输出滤波器。
在一些实施例中,作为输出滤波器的重新混洗的结果,对于应用硬件加速器技术和系统的给定卷积层,减少了处理时间。
在步骤330,处理器201执行包括在输出滤波器重新混洗模块211中的指令用以根据重新配置的计算顺序生成解释输入特征图的输出特征。
可以设想,卷积模型硬件加速器可以在现场可编辑门阵列(FPGA)装置、大规模并行处理器阵列装置、图形处理单元(GPU)装置、中央处理单元(CPU)装置和专用集成电路(ASIC)装置中的一个或多个中实现。
设想本文描述的实施例可被扩展并适用于本文描述的各个元件和概念,独立于其他概念、思想或系统,并且适用于包括元件的组合以及本申请中任何地方所述的步骤的组合的实施例。虽然本文参考附图详细描述了实施例,但是应当理解,本发明不限于那些精确的实施例。因此,对于本领域技术人员来说,许多修改和变化是明显的。因此,旨在本发明的范围由以下权利要求及其等同物限定。此外,可以设想,单独描述的或作为实施例的一部分描述的特定特征可以与单独描述的其他特征或其他实施例的一部分进行组合,即使其他特征和实施例没有提及该特定特征。因此,没有描述的组合并不排除发明人对这种组合主张权利。
Claims (16)
1.一种用于在一个或多个处理器中实现卷积模型硬件加速器的方法,所述方法包括:
将输入特征图的流接收到所述一个或多个处理器中,所述输入特征图利用包括多个卷积层的卷积模型;
对于所述多个卷积层中的给定卷积层,通过重新混洗所述多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序;以及
根据重新配置的计算顺序,生成解释输入特征图的多个输出特征。
2.根据权利要求1所述的方法,其中,重新配置所述计算顺序还包括:识别与所述多个硬件加速器子块的至少一组相关联的所述输入特征数据中一定数量的零或所述输出滤波器中的一定数量的零中的至少一个。
3.根据权利要求2所述的方法,进一步包括:在硬件实现中在所述硬件加速器子块之间动态地重新分配所述多个输出滤波器中的相应输出滤波器。
4.根据权利要求2所述的方法,进一步包括:在由嵌入式中央处理单元控制的固件实现中,在所述硬件加速器子块之间静态地重新分配所述多个输出滤波器中的相应输出滤波器。
5.根据权利要求2所述的方法,其中重新配置所述计算顺序使所述给定卷积层的所述处理时间最小化。
6.根据权利要求1所述的方法,其中所述卷积模型硬件加速器能够在现场可编程门阵列装置(FPGA)、大规模并行处理器阵列装置、图形处理单元(GPU)装置、中央处理单元(CPU)装置和专用集成电路(ASIC)装置中的一个或多个中实现。
7.根据权利要求1所述的方法,其中所述输入特征图包括图像。
8.一种处理系统,包括:
一个或多个处理器;
非瞬态存储器,其存储在所述一个或多个处理器中可执行的指令以通过以下步骤实现卷积模型硬件加速器:
将输入特征图的流接收到所述一个或多个处理器中,所述输入特征图利用包括多个卷积层的卷积模型;
对于所述多个卷积层中的给定卷积层,通过重新混洗所述多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序;以及
根据重新配置的计算顺序,生成解释输入特征图的多个输出特征。
9.根据权利要求8所述的处理系统,其中,重新配置所述计算顺序还包括:识别与所述多个硬件加速器子块的至少一组相关联的所述输入特征数据中一定数量的零或所述输出滤波器中一定数量的零中的至少一个。
10.根据权利要求9所述的处理系统,进一步包括:在硬件实现中在所述硬件加速器子块之间动态地重新分配所述多个输出滤波器中的相应输出滤波器。
11.根据权利要求9所述的处理系统,进一步包括:在由嵌入式中央处理单元控制的固件实现中,在所述硬件加速器子块之间静态地重新分配所述多个输出滤波器中的相应输出滤波器。
12.根据权利要求8所述的处理系统,其中重新配置所述计算顺序使所述给定卷积层的处理时间最小化。
13.如权利要求8所述的处理系统,其中所述卷积模型硬件加速器能够在现场可编程门阵列装置(FPGA)、大规模并行处理器阵列装置、图形处理单元(GPU)装置、中央处理单元(CPU)装置和专用集成电路(ASIC)装置中的一个或多个中实现。
14.根据权利要求8所述的处理系统,其中,所述输入特征图包括图像。
15.根据权利要求8所述的处理系统,其中所述硬件加速器是第一硬件加速器,并且进一步包括至少第二硬件加速器。
16.一种非瞬态处理器可读存储器,包括可在一个或多个处理器中可执行的指令以:
将输入特征图的流接收到所述一个或多个处理器中,所述输入特征图利用包括多个卷积层的卷积模型;
对于所述多个卷积层中的给定卷积层,通过重新混洗所述多个子块中的多个输出滤波器来重新配置用于多个硬件加速器子块的计算顺序;以及
根据重新配置的计算顺序,生成解释输入特征图的多个输出特征。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962802063P | 2019-02-06 | 2019-02-06 | |
US62/802,063 | 2019-02-06 | ||
PCT/CA2020/050136 WO2020160653A1 (en) | 2019-02-06 | 2020-02-04 | Method and system for convolution model hardware accelerator |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113892092A true CN113892092A (zh) | 2022-01-04 |
Family
ID=71946956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080025824.8A Pending CN113892092A (zh) | 2019-02-06 | 2020-02-04 | 卷积模型硬件加速器的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220129725A1 (zh) |
CN (1) | CN113892092A (zh) |
WO (1) | WO2020160653A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210406654A1 (en) * | 2020-06-29 | 2021-12-30 | Alibaba Group Holding Limited | Artificial neural network with sparse weights |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991472A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 一种融合ReLU激活函数与最大值池化的向量化实现方法 |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
US20170339056A1 (en) * | 2014-12-10 | 2017-11-23 | Toyota Jidosha Kabushiki Kaisha | Remote vehicle data collection system |
CN107430704A (zh) * | 2015-03-18 | 2017-12-01 | 国际商业机器公司 | 基于与神经网络算法关联的元数据在神经突触基底上实现神经网络算法 |
GB201718358D0 (en) * | 2017-11-06 | 2017-12-20 | Imagination Tech Ltd | Exploiting sparsity in a neural network |
GB201718359D0 (en) * | 2017-11-06 | 2017-12-20 | Imagination Tech Ltd | Nueral Network Hardware |
CN107563495A (zh) * | 2017-08-04 | 2018-01-09 | 深圳互连科技有限公司 | 面向嵌入式低功耗卷积神经网络方法 |
CN107729996A (zh) * | 2016-08-11 | 2018-02-23 | 图芯芯片技术有限公司 | 零系数跳过卷积神经网络引擎 |
US20180096226A1 (en) * | 2016-10-04 | 2018-04-05 | Magic Leap, Inc. | Efficient data layouts for convolutional neural networks |
WO2018073975A1 (en) * | 2016-10-21 | 2018-04-26 | Nec Corporation | Improved sparse convolution neural network |
CN108256628A (zh) * | 2018-01-15 | 2018-07-06 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
CN108268943A (zh) * | 2017-01-04 | 2018-07-10 | 意法半导体股份有限公司 | 硬件加速器引擎 |
US20190028752A1 (en) * | 2017-07-24 | 2019-01-24 | Advanced Micro Devices, Inc. | Integrated video codec and inference engine |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016092323A1 (en) * | 2014-12-11 | 2016-06-16 | University Of Surrey | Estimating data symbols from a filter bank multicarrier (fbmc) signal |
-
2020
- 2020-02-04 WO PCT/CA2020/050136 patent/WO2020160653A1/en active Application Filing
- 2020-02-04 US US17/310,419 patent/US20220129725A1/en active Pending
- 2020-02-04 CN CN202080025824.8A patent/CN113892092A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170339056A1 (en) * | 2014-12-10 | 2017-11-23 | Toyota Jidosha Kabushiki Kaisha | Remote vehicle data collection system |
CN107430704A (zh) * | 2015-03-18 | 2017-12-01 | 国际商业机器公司 | 基于与神经网络算法关联的元数据在神经突触基底上实现神经网络算法 |
US20170316312A1 (en) * | 2016-05-02 | 2017-11-02 | Cavium, Inc. | Systems and methods for deep learning processor |
CN107729996A (zh) * | 2016-08-11 | 2018-02-23 | 图芯芯片技术有限公司 | 零系数跳过卷积神经网络引擎 |
US20180096226A1 (en) * | 2016-10-04 | 2018-04-05 | Magic Leap, Inc. | Efficient data layouts for convolutional neural networks |
WO2018073975A1 (en) * | 2016-10-21 | 2018-04-26 | Nec Corporation | Improved sparse convolution neural network |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN108268943A (zh) * | 2017-01-04 | 2018-07-10 | 意法半导体股份有限公司 | 硬件加速器引擎 |
CN106991472A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 一种融合ReLU激活函数与最大值池化的向量化实现方法 |
US20190028752A1 (en) * | 2017-07-24 | 2019-01-24 | Advanced Micro Devices, Inc. | Integrated video codec and inference engine |
CN107563495A (zh) * | 2017-08-04 | 2018-01-09 | 深圳互连科技有限公司 | 面向嵌入式低功耗卷积神经网络方法 |
GB201718358D0 (en) * | 2017-11-06 | 2017-12-20 | Imagination Tech Ltd | Exploiting sparsity in a neural network |
GB201718359D0 (en) * | 2017-11-06 | 2017-12-20 | Imagination Tech Ltd | Nueral Network Hardware |
CN108256628A (zh) * | 2018-01-15 | 2018-07-06 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
Non-Patent Citations (1)
Title |
---|
张军阳;郭阳;: "二维矩阵卷积在向量处理器中的设计与实现", 国防科技大学学报, no. 03, pages 72 - 78 * |
Also Published As
Publication number | Publication date |
---|---|
US20220129725A1 (en) | 2022-04-28 |
WO2020160653A1 (en) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108205701B (zh) | 一种执行卷积计算的系统及方法 | |
CN108615072B (zh) | 在硬件中执行平均池化 | |
EP3179415B1 (en) | Systems and methods for a multi-core optimized recurrent neural network | |
CN107239829B (zh) | 一种优化人工神经网络的方法 | |
EP3557485B1 (en) | Method for accelerating operations and accelerator apparatus | |
US10740674B2 (en) | Layer-based operations scheduling to optimise memory for CNN applications | |
Zhang et al. | BoostGCN: A framework for optimizing GCN inference on FPGA | |
WO2017116924A1 (en) | Neural network training performance optimization framework | |
CN112348177B (zh) | 神经网络模型验证方法、装置、计算机设备和存储介质 | |
EP4024290A1 (en) | Implementing fully-connected neural-network layers in hardware | |
EP3770749A1 (en) | Hardware unit for performing matrix multiplication with clock gating | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
EP4033379A1 (en) | Implementing dilated convolution in hardware | |
Vo et al. | A deep learning accelerator based on a streaming architecture for binary neural networks | |
US20200074304A1 (en) | Neural networks for embedded devices | |
CN113892092A (zh) | 卷积模型硬件加速器的方法和系统 | |
CN113469354B (zh) | 受存储器限制的神经网络训练 | |
CN114004335A (zh) | 一种数据处理的方法、装置、电子设备及存储介质 | |
JP6955598B2 (ja) | 複数の畳み込みウィンドウ内の画像データの並行抽出方法、装置、機器及びコンピュータ可読記憶媒体 | |
CN113496248A (zh) | 训练计算机实施的模型的方法和设备 | |
US11573765B2 (en) | Fused convolution and batch normalization for neural networks | |
KR101989793B1 (ko) | 컨볼루션 신경망을 위한 가속기 인식 가지 치기 방법 및 기록 매체 | |
US20210312279A1 (en) | Information processing apparatus and information processing method | |
US20220129739A1 (en) | Method and system for convolution model multi-mode hardware accelerator | |
CN112884138A (zh) | 神经网络的硬件实现方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221110 Address after: Room 07 and 08, 4/F, Building 1, No. 200 Jichuang Road and No. 491 Yindong Road, Pudong New Area Free Trade Pilot Zone, Shanghai Applicant after: Hanbo semiconductor (Shanghai) Co.,Ltd. Address before: P.O. Box 2075, 46 Point Road, kanar, Grand Cayman, Cayman Islands Applicant before: Hanbo holding Co. |
|
TA01 | Transfer of patent application right |