CN116151334A - 一种基于多通道脉动阵列的神经网络加速器 - Google Patents
一种基于多通道脉动阵列的神经网络加速器 Download PDFInfo
- Publication number
- CN116151334A CN116151334A CN202211531904.8A CN202211531904A CN116151334A CN 116151334 A CN116151334 A CN 116151334A CN 202211531904 A CN202211531904 A CN 202211531904A CN 116151334 A CN116151334 A CN 116151334A
- Authority
- CN
- China
- Prior art keywords
- data
- channel
- data flow
- neural network
- array
- 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
Images
Classifications
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
一种基于多通道脉动阵列的神经网络加速器,包含由可配置数量的基本运算单元组成的新型脉动阵列,该脉动阵列包含可配置数量及方向的权重数据流通道、特征数据流通道。所述多通道脉动阵列可根据神经网络规模对数据流通道及基本运算单元做仲裁分配,最高可实现对四种神经网络的并行四线程加速;所述多通道脉动阵列在每个计算周期送入一行特征数据,采用由整行数据构成的数据流改进由离散数据构成的数据流,大幅减少加速处理时间。本发明基于多通道脉动阵列实现神经网络加速运算,所述多通道脉动阵列相比传统脉动阵列可以显著优化加速处理时间及硬件资源利用率;能够在节省硬件开销的同时实现更高效的加速运算。
Description
技术领域
本发明属于计算机人工智能技术领域,尤其涉及一种基于多通道脉动阵列的神经网络加速器装置。
背景技术
随着人工智能的飞速发展与应用,神经网络经历了从感知机、多层感知机到目前广泛运用的卷积神经网络的架构迭代,用于对神经网络加速的装置也经历了通用计算平台CPU、GPU到专用神经网络加速器平台的迭代,目前的专用神经网络加速器通常以脉动阵列实现矩阵运算,以实现神经网络结构中的卷积运算和全连接层运算。神经网络种类逐渐增多,神经网络的深度和广度也逐渐增加,数据量和计算复杂度的增加对神经网络加速器中的脉动阵列的吞吐率、利用率等提出了更高的要求。
传统的脉动阵列一般仅有两个数据流通道,分别是特征数据流通道及权重数据流通道,两数据流通道的方向相互垂直。在计算的过程中,每个时钟周期两个数据流通道分别依次送入一组特征数据及一组权重数据。在Clock0计算周期,特征数据流通道送入对应特征矩阵F(0,0)的单个特征数据到PE(0,0),权重数据流通道送入对应权重矩阵W(0,0)的单个权重数据到PE(0,0),PE(0,0)计算单元完成特征数据和权重数据的相乘后将特征数据和权重数据按数据流方向送给后续相邻PE单元;在Clock1计算周期,特征数据流通道送入对应特征矩阵F(1,0),F(0,1)的两个特征数据分别到PE(0,0),PE(0,1),权重数据流通道送入对应权重矩阵W(0,1),W(1,0)的两个权重数据分别到PE(0,0),PE(1,0),对应PE单元对新送入的数据作乘法运算并和之前的结果累加。依次类推,在每个新的计算周期都将依次将特征数据和权重数据脉动送入脉动阵列中,最终完成对数据流的送入和计算。
传统的脉动阵列尽管在每个计算周期内可以实现多个PE计算单元的并行处理,但是传统的脉动阵列在面对多种类、复杂化的神经网络存在一定的缺陷:在面对不同规模、不同种类神经网络时,传统的脉动阵列只能以固定的PE计算单元规模、固定的数据流规模单线程的执行矩阵乘法运算,通常在一次加速运算中仅能针对一种类型的神经网络实现加速,在使得计算效率低下的同时也会浪费PE计算单元资源并不具备复用拓展性。传统的脉动阵列在加速处理的过程中存在数据处理时间以及结果载出时间过长的问题,从而在PE计算单元处理能力相同的情况下,需要更多的处理时长,导致吞吐率和计算速度的降低。
发明内容
本发明目的在于提供一种基于多通道脉动阵列的神经网络加速器装置,以解决基于传统脉动阵列的神经网络加速器处理时间过长、PE基本单元利用率偏低、不具备复用性及拓展性等问题。
为解决上述技术问题,本发明的具体技术方案如下:
一种基于多通道脉动阵列的神经网络加速器装置,包括由可配置数量的(n×n)个PE基本计算单元排布组成的多通道脉动阵列,所述多通道脉动阵列包括两方向四通道的多个特征数据流通道及两方向四通道的多个权重数据流通道。特征数据流通道用于将特征数据送入脉动阵列中;权重数据流通道用于将权重数据送入脉动阵列中。所述特征数据流通道及权重数据流通道在具体应用中的方向和个数可根据需求进行动态配置,若矩阵运算规模较大时可将数据流通道规模缩减,以支持大规模矩阵运算;若矩阵运算规模较小时可将数据流通道规模拓展,以支持多个小规模矩阵运算,可同时实现最多4个矩阵的并行运算。所述数据流通道通过增加数据流流向及数据流规模实现并行运算,可以在一个计算周期针对多个神经网络加速,避免了在小规模运算时PE基本单元的资源浪费,实现对PE基本单元的高效利用和复用,节省硬件开销。
进一步,所述多通道脉动阵列对特征数据流通道和权重数据流通道的数据流送入模式作了新的改进,传统脉动阵列的数据流通道每个计算周期以两个方向逐步送入单个或多个分离数据,多通道脉动阵列的数据流将在每个计算周期以多个方向送入整行的权重数据以代替分离数据。脉动阵列在计算的过程中,必须等待所有特征数据和权重数据都完全流过每个PE基本单元才能完成运算,传统的脉动阵列由于每个计算周期送入单个数据,故需要等待数据流过每个PE基本单元的时间会相对更长。假设特征矩阵规模为(m×p),权重矩阵规模为(m×n),在PE基本单元运算速度一致的情况下做对比。对于传统脉动阵列,当所有特征数据和权重数据都流过PE基本运算单元时,视为完成了一次处理,定义TP为所需处理时长,对于传统脉动阵列,有TP=m+p+n-2;由于传统脉动阵列以离散形式送入数据,所以在处理时间之外还需要一段时间使所有的运算结果载出,该载出时间等于脉动阵列中所用到的PE基本单元从左上角到右下角的步长,定义TL为载出时间,对于传统脉动阵列,有TL=p+n-1;由于前期送入的数据会在后期送入的数据处理的过程中率先载出,故对于整体脉动阵列处理时间和载出时间存在重叠,在减去重叠部分后可得传统脉动阵列的运算时间T=2p+m+n-2;所述多通道脉动阵列针对传统脉动阵列过高的运算时间做了改进,在每个计算周期将整体一行特征数据送入脉动阵列的一行PE基本单元中,与此同时其余特征数据保持静止,权重数据以离散的方式逐个送入该行PE基本单元中,处理时间等于在脉动阵列上移动特征数据长度所需的时间步数,因此对于多通道脉动阵列,有TP=p+n-1;所述多通道脉动阵列在计算得到第一个结果时就可以开始结果载出流程,从而使得载出时间和处理时间重叠比例大幅增加,所述多通道脉动阵列总的运算时间T=p+n+logm-1;所述多通道脉动阵列在理想情况下可以并行处理四种不同的网络矩阵,从而相比单线程传统脉动阵列可以实现最高三周期整体运算时间及单周期的优化时间,在处理并行四种神经网络加速的情况下最高可实现ΔT=(7p+4m+3n-logm-7)的运算时间缩减,从而大幅提升运算效率。
进一步,所述多通道脉动阵列基于可配置规模的(n×n)个PE基本运算单元阵列。所述PE基本单元接口包括上行PE特征数据输入输出接口、下行PE特征数据输入输出接口、左列PE权重输入输出接口、右列PE权重输入输出接口、运算结果输出接口;所述PE基本单元内部组件包括四个数据选择器、四个数据暂存寄存器、多通道结果寄存器组、通道选择器、乘法器及加法器。所述PE基本单元包括两个方向的权重输入接口及特征输入接口以满足多通道脉动阵列多方向多通道数据流的特性,PE基本单元能够同时接收来自四个输入输出接口的数据,通过控制器仲裁以实现对通道的选择以及数据的寄存。所述PE基本单元在每个计算周期将通过仲裁优先选择一个方向的PE特征输入接口及一个方向的PE权重输入接口用于接收当前计算周期所需处理的数据;对于其余输入接口的数据,若数据无需做运算处理,则通过数据选择器将其直接送入次级PE单元;若数据需做运算处理,则通过数据选择器将其暂存在数据暂存寄存器中待下一计算周期处理。对于需要处理的数据,则由通道选择器根据仲裁结果选择合适的通道,将待处理数据依次送入乘法器和加法器中完成矩阵乘法运算,将结果暂存在多通道结果寄存器组。所述多通道寄存器组根据不同的数据流输入方向组合,分别存储不同数据流方向输入数据的临时运算结果,并在下次该数据流组合的数据到来时,将临时数据送入加法器中做结果的累加。所述PE基本单元可以实现对四种数据流组合的仲裁运算,实现PE基本单元在多种数据流方向、多种神经网络情况下的复用,大幅节省了设计开销,并提高了PE基本单元的利用率。
本发明还提供了所配合的一系列组件,以实现基于多通道脉动阵列的神经网络加速器的功能。所述组件包括控制器单元、接口单元、存储器单元、池化激活单元。
所述控制器单元用于执行算法以适配不同类型的神经网络,并根据运算要求和算法配置仲裁控制数据流的通道数及流向,协调内部各硬件的工作;
所述接口单元包含四条并行的原始数据输入接口及结果输出接口、用于调试的外部接口、用于配置信息传输的配置信息接口,所述四条并行的输入输出接口基于AXI协议总线实现,用于接受未经处理的原始数据及输出最终处理完成的结果,并通过仲裁以实现对四种不同神经网络的并行加速运算;所述调试接口基于APB协议实现,用于在不影响数据流输入输出的情况下查看并调试内部各硬件单元的处理结果。
所述存储器单元用于对原始数据做初始化处理,将原始的数据及流程中数据根据运算需求及算法配置转换为合适的特征矩阵数据,并对脉动阵列中间结果数据做缓存,根据配置将缓存数据处理后送入脉动计算阵列;
所述池化激活单元用于对中间结果数据做激活操作和池化操作,所述激活操作使用LeakyRelu激活函数;所述池化操作使用最大值池化;
一种基于多通道脉动阵列的神经网络加速器装置,其工作流程如下:
S1,通过配置接口及原始输入接口取得配置信息,包括各神经网络的类型、网络的层数、卷积核的尺寸、步长等信息,根据所获得信息进行仲裁,根据多通道脉动阵列规模判断能并行处理的网络数量。
S2,根据控制器单元的仲裁结果,从接口单元取得待处理神经网络的权重数据等基本信息;接受多个输入接口的并行神经网络原始数据,并将其余接口的数据做暂存处理。
S3,启动神经网络运算,存储器单元对原始数据做数据整理,形成待处理的特征数据矩阵及权重数据矩阵。
S4,根据多个网络的特征数据矩阵及权重数据矩阵规模进行仲裁,将多个并行处理的网络数据分配到合适的数据流方向及数据流接口。
S5,根据仲裁结果,在对应的计算周期将特征数据和权重数据通过数据流送入多通道脉动阵列,在脉动阵列的PE基本计算单元中完成矩阵的乘加运算,并在脉动结束后将寄存器组中的数据整合为完整的结果数据;
S6,将经过多通道脉动阵列运算结束的数据送入激活与池化单元进行进一步的处理运算;
S7,控制器单元根据算法定义的神经网络的类型对经过处理后的数据作仲裁处理,经过存储器单元的进一步数据整合进行下层网络的运算或进行结果的输出;
本发明的优势和有益效果有以下方面:
本发明的一种基于多通道脉动阵列的神经网络加速器装置,对基于传统脉动阵列的神经网络加速器的脉动阵列部分做了提升运算效率和利用率的改进,由于改进后的多通道脉动阵列具有更多的数据流通道及数据流方向,所以能够同时使用多条数据流通道利用空闲的PE基本单元资源并行处理数据,提升了脉动阵列的利用率;由于改进后的多通道脉动阵列在数据流传输中采用整行特征数据的传输方式替代离散特征数据的传输方式,所以能够大幅减少处理时间中的结果载出延迟,提升了脉动阵列的运算效率;配合改进后的PE基本单元,所述装置能够在更小的硬件规格下实现对多种神经网络的并行加速处理,同时具有更高的运算处理速度及更高的脉动阵列利用率。
附图说明
图1为本发明中多通道脉动阵列结构及数据结构示意图;
图2为本发明中PE基本运算单元的结构示意图;
图3为本发明与基于传统脉动阵列神经网络做加速运算的对比示意图;
图4为本发明做加速运算时的工作流程示意图;
图5为本发明做加速运算时的实时数据流示意图;
图中标记说明:1、特征数据矩阵A每计算周期以整行形式送入脉动阵列的数据;2、权重数据矩阵A每计算周期送入脉动阵列的数据;3、矩阵计算A实际用到的PE基本运算单元资源;4、矩阵计算B实际用到的PE基本运算单元资源;5、PE基本运算单元在脉动阵列中的构成;6、可配置规模的由(6×6)个PE基本单元构成的脉动阵列;7、权重数据流通道;8、矩阵计算C实际用到的PE基本运算单元资源;9、特征数据流通道;10、矩阵计算D实际用到的PE基本运算单元资源。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种基于多通道脉动阵列的神经网络加速器装置做进一步详细的描述。
为了解决基于传统脉动阵列的神经网络加速器存在的处理时间长、运算效率低、脉动阵列PE基本单元利用率低的问题,本申请通过以下实例公开了一种基于多通道脉动阵列的神经网络加速器装置。
如图1所示,为本发明的多通道脉动阵列在并行加速四种神经网络的示意图。这里为方便描述实施方式,假设多通道脉动阵列由标识6所示(6×6)共计36个基本PE基本运算单元组成,在实际的应用中脉动阵列的规模将远远超过假设数值,并可针对不同的应用情况配置。所加速四种神经网络,分别由四种特征数据矩阵与权重数据矩阵相乘运算表示在图中,四种矩阵运算规模分别为:A:(4×3)*(3×4)、B:(2×2)*(2×2)、C:(3×3)*(3×3)、D:(5×3)*(5×3)。不同特征数据的数据流通道及方向由图示9所示的四个黑色箭头表示,不同权重数据的数据流通道及方向由图示7所示的四个白色箭头表示,图中展示了四方向全部数据流通道开启时,四种神经网络并行加速运算时的数据流。多通道脉动阵列每计算周期以矢量形式送入特征数据,以矩阵运算A为例,图示标记1为在Clock0时钟周期送入脉动阵列的整行形式的特征数据,与此同时图示标记2的三组权重数据将依次送入脉动阵列中,当WA(0,0)与FA(0,0)完成相乘运算后,图示标记2权重数据向右脉动一位,WA(0,0)与FA(0,1)、WA(0,1)与FA(0,0)做相乘运算。以此类推,完成图示标记1和图示标记2数据的乘加运算后,进入Clock1第二计算周期,并再次脉动下一整行的特征数据与权重数据做乘加运算。图中其余矩阵乘法运算的数据送入方式与矩阵运算A类似,不同的矩阵运算所需要的PE运算单元规模不同,矩阵运算A、B、C、D在运算过程中实际使用到的PE运算单元规模由图示标记3、图示标记4、图示标记8、图示标记10表示。由于并行处理时,不同矩阵运算的数据流方向均相对,所以在占用PE单元规模未重叠的情况下,同一计算周期能够避免使用相同的PE运算单元;在占用PE单元规模重叠的情况下,则需通过控制单元的仲裁做数据的缓存和先后处理。图中所示并行4线程运算情况下,脉动阵列的PE运算单元的利用率高达97.23%,远高于传统脉动阵列串行单线程运算情况下11.11%-41.67%的利用率。同时图中所示并行4线程运算能够实现大幅的运算时间减少,大幅提高运算速度。
如图2所示是本发明用于实现矩阵乘加运算的PE基本运算单元的电路结构示意图,图1中标识5为PE基本运算单元在脉动阵列中的示意图。如图所示PE基本单元包括以下接口:上行PE特征数据输入输出接口、下行PE特征数据输入输出接口、左列PE权重输入输出接口、右列PE权重输入输出接口、运算结果输出接口;PE基本单元包括以下内部组件:四个数据选择器、四个数据暂存寄存器、两个通道选择器、多通道结果寄存器组、乘法器及加法器。
其中,上下行特征数据输入输出接口及左右列输入输出接口用于实现脉动阵列多方向多通道数据流的特性,所有的输入输出接口可以同时接收数据,并通过仲裁器实现通道优先选择及并行运算。
其中,四个数据选择器与输入输出接口相连,用于实现数据的选择仲裁;数据暂存寄存器用于存放待处理的数据。当数据流中数据无需处理时,数据选择器将数据直接从输入接口送至输出接口;当数据流中数据为待处理数据时,数据选择器将数据暂存在数据暂存寄存器中。
其中,通道选择器用于实现数据流通道的选择。当通道选择器所连接两个数据流通道中的数据均需处理时,通道选择器根据仲裁结果在对应计算周期选择对应数据流通道,实现准确的数据处理。
其中,乘法器与两通道选择器相连,用于在每一计算周期,接受两通道选择器选出的特征数据及权重数据,并将接受到的数据相乘后送给加法器。
其中,加法器与乘法器和多通道结果寄存器相连,用于在每一计算周期,将乘法器输出的结果数据与对应数据流通道组合之前的数据做累加。
其中,多通道寄存器与加法器相连,用于存储不同数据流通道组合的中间结果数据。由于PE单元具备四方向数据流通道,所以最多存在4种数据流通道组合,分别为:上行特征输入&左列权重输入、上行特征输入&右列权重输入、下行特征输入&左列权重输入、下行特征输入&右列权重输入;故给每一种组合情况分配2个寄存器用于实现中间数据暂存及累加结果暂存,同时留有充足可分配余量的寄存器用于防止大数据规模下的数据拥堵情况。
以一种工作情况做实施方式的说明,假设在此工作情况下PE基本运算单元需要处理来自上行特征数据及下行特征数据与左列权重数据的矩阵乘加运算,同时每计算周期有来自右列的权重数据经过该PE基本计算单元。在第一计算周期,由于左列权重数据、上行特征数据及下行特征数据均需处理,故数据选择器1、数据选择器2及数据选择器4均选择将数据存放在数据暂存寄存器中;由于右列权重数据无需处理,数据选择器3将数据直接通过左列PE权重数据输出接口输出。通道选择器1所属两数据流通道中数据均需处理,此时通道选择器1进行仲裁,先选择上行特征数据;通道选择器2无需仲裁,选择左列权重数据;两通道选择器将数据送给乘法器和加法器完成矩阵乘加运算,并将数据保存在对应的数据流通道组合中。通道选择器1在上行特征数据完成数据处理后,选择下行特征数据完成矩阵乘加操作。自此实现上下行特征数据与左列权重数据的矩阵乘加处理,完成该计算周期。
本发明实例公开的单个PE基本单元在有限硬件资源的条件下能够实现相当于4个传统PE基本单元的功能,对四种数据流通道组合做仲裁运算。从而实现PE基本单元在多种数据流方向、多种神经网络情况下的并行与复用,大幅节省了设计开销,提高了PE基本单元的效益与利用率。
如图3所示为传统脉动阵列处理数据与多通道脉动阵列处理数据的对比示意图。
其中传统脉动阵列工作的示意图如图3上图所示,传统的脉动阵列一般仅有特征数据流通道及权重数据流通道共两数据流通道,两数据流通道的方向相互垂直。在计算的过程中,每个时钟周期两数据流通道分别依次送入一组特征数据及一组权重数据。
在Clock0计算周期,特征数据流通道送入对应特征矩阵F(0,0)的单个特征数据到PE(0,0),权重数据流通道送入对应权重矩阵W(0,0)的单个权重数据到PE(0,0),PE(0,0)计算单元完成特征数据和权重数据的相乘后将特征数据和权重数据按数据流方向送给后续相邻PE单元;
在Clock1计算周期,特征数据流通道送入对应特征矩阵F(1,0),F(0,1)的两个特征数据分别到PE(0,0),PE(0,1),权重数据流通道送入对应权重矩阵W(0,1),W(1,0)的两个权重数据分别到PE(0,0),PE(1,0),对应PE单元对新送入的数据作乘法运算并和之前的结果累加。
依次类推,在每个新的计算周期都将依次将特征数据和权重数据脉动送入脉动阵列中,从而完成对所有特征数据和权重数据的脉动处理。
如图3下图所示为本发明实例方法公开的多通道脉动阵列工作示意图,比较上下两图分析改进后的脉动阵列在处理时间上的优势。假设两脉动阵列将处理特征矩阵规模为(m×p),权重矩阵规模为(m×n)的矩阵乘加运算,在PE基本单元运算速度一致的情况下做对比。
对于传统脉动阵列,所有特征数据和权重数据都流过PE基本运算单元时,才视为完成了一次处理,定义TP为所需处理时长,对于传统脉动阵列,有TP=m+p+n-2;传统脉动同一行特征数据送入时间存在较大差别,所以在处理时间之外还需要较长时间使所有的运算结果载出,该载出时间等于所用到的PE基本单元从左上角到右下角的步长。定义TL为载出时间,对于传统脉动阵列,有TL=p+n-1;由于前期送入的数据会在后期送入的数据处理的过程中率先载出,故对于整体脉动阵列处理时间和载出时间存在重叠,在减去重叠部分后可得传统脉动阵列的运算时间T=2p+m+n-2。
多通道脉动阵列在每个计算周期将整体一行特征数据送入脉动阵列的一行PE基本单元中,与此同时其余特征数据保持静止,权重数据以离散的方式逐个送入该行PE基本单元中,处理时间等于在脉动阵列上移动特征数据长度所需的时间步数,因此对于多通道脉动阵列,有TP=p+n-1;多通道脉动阵列在计算得到第一个结果时就可以载出流程,从而使得载出时间和处理时间重叠比例大幅增加,多通道脉动阵列的运算时间得以大幅缩减,可得T=p+n+logm-1。
多通道脉动阵列在理想情况下可以并行处理四种不同的网络矩阵,从而相比单线程传统脉动阵列可以实现最高三周期整体运算时间及单周期的优化时间缩减,最高可实现ΔT=(7p+4m+3n-logm-7)的运算时间缩减,从而大幅提升运算速度,提高运算效率。
如图4所示为基于多通道脉动阵列的神经网络加速器装置的加速处理的工作流程,包括以下步骤:
步骤S1,通过配置接口及原始输入接口取得配置信息,包括各神经网络的类型、网络的层数、卷积核的尺寸、步长等信息,根据所获得信息进行仲裁,根据多通道脉动阵列规模判断能并行处理的网络数量。
步骤S2,根据控制器单元的仲裁结果,从接口单元取得待处理神经网络的权重数据等基本信息;接受多个输入接口的并行神经网络原始数据,并将其余接口的数据做暂存处理。
步骤S3,启动神经网络运算,存储器单元对原始数据做数据整理,形成待处理的特征数据矩阵及权重数据矩阵。
步骤S4,根据多个网络的特征数据矩阵及权重数据矩阵规模进行仲裁,将多个并行处理的网络数据分配到合适的数据流方向及数据流接口。
步骤S5,根据仲裁结果,在对应的计算周期将特征数据和权重数据通过数据流送入多通道脉动阵列,在脉动阵列的PE基本计算单元中完成矩阵的乘加运算,并在脉动结束后将寄存器组中的数据整合为完整的结果数据;
步骤S6,将经过多通道脉动阵列运算结束的数据送入激活与池化单元进行进一步的处理运算;
步骤S7,控制器单元根据算法定义的神经网络的类型对经过处理后的数据作仲裁处理,经过存储器单元的进一步数据整合进行下层网络的运算或进行结果的输出;
如图5所示为多通道脉动阵列在加速运算过程中的数据流示意图,以图1中特征数据矩阵B与权重数据B的运算为例做实施方法的说明。矩阵运算B在加速计算的过程中实际用到的PE运算单元规模为如图5所示的(2×2)共4个PE基本运算单元。在Clock0计算周期开始进行数据流的传输;在Clock1计算周期将第一行特征数据载入脉动阵列并完成与权重数据的乘加运算;在Clock2计算周期将第二行特征数据载入脉动阵列,此时第一行特征数据与新载入的权重数据做乘加处理,第二行特征数据与此前的权重数据做乘加处理;在Clock3计算周期载出完成全部计算的第一行特征数据;在Clock4计算周期完成所有的结果数据载出,结束运算。如图5所示数据流示意图,可见多通道脉动阵列处理数据所需周期大幅缩短,处理效率大幅提升。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (8)
1.一种基于多通道脉动阵列的神经网络加速器,其特征在于,所述神经网络加速器用于实现对多种类型的神经网络的并行加速运算,包括基于全连接层的简单神经网络及基于卷积运算的各类多层神经网络,所述神经网络加速器包括接口单元、控制器单元、存储器单元、池化激活单元及基于多通道脉动阵列的计算阵列单元,其中,
所述接口单元包含数据输入接口、结果输出接口、配置接口及用于调试的外部调试接口,所述数据输入接口及结果输出接口基于AXI协议总线实现,用于接受未经处理的原始数据及输出最终处理完成的结果,能够实现对并行四通道神经网络数据的输入和输出;所述调试接口基于APB协议总线实现,用于在不影响加速处理的情况下调试内部各硬件单元的配置及中间结果;
所述控制器单元用于执行算法以适配不同类型的神经网络,并根据算法要求控制数据流的流向,协调内部各硬件的工作;
所述存储器单元用于对原始数据做初始化处理,将原始的数据及流程中数据根据运算需求转换为合适的特征矩阵数据;同时用于对矩阵阵列数据及中间结果的暂存,在正确时刻将数据送入计算阵列单元;
所述池化激活单元用于对输出的数据做激活操作和池化操作,所述激活操作使用LeakyRelu激活函数;所述池化操作使用最大值池化;
所述基于多通道脉动阵列的计算阵列单元用于实现矩阵乘加运算,根据神经网络规模对计算单元规模做分配,并行实现多个特征矩阵与权重矩阵的并行矩阵乘加运算,并将运算运算结果送入存储器单元做数据暂存或送入结果输出接口做结果输出。
2.根据权利要求1所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述的基于多通道脉动阵列的计算阵列包含多个可配置规模的PE基本计算单元、多个可配置数量及方向的权重数据流通道、多个可配置数量及方向的特征数据流通道,其中,
所述PE基本计算单元用于实现乘法及加法运算,根据神经网络规模可对脉动阵列的规模作配置,PE单元的硬件规模理论上可实现从最小(2×2)的规模到最大(n×n)无上限的规模;
所述权重数据流通道用于送入经处理后待计算的权重数据,其权重数据通道个数及数据流方向可根据神经网络规模配置,可实现从最小1通道1方向规模到最大4通道2方向规模的配置;
所述特征数据流通道用于送入经处理后待计算的特征数据,其特征数据通道个数及数据流方向可根据神经网络规模配置,可实现从最少1通道1方向的规模到最大4通道2方向规模的规模。
3.根据权利要求2所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述多通道脉动阵列由(n×n)个基本PE计算单元组成。
4.根据权利要求2所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述PE基本计算单元包含乘法器用于实现乘法运算;所述PE基本运算单元包含加法器用于实现对结果的累加;所述PE基本运算单元包含多通道结果寄存器组用于实现对并行多通道数据的存储;所述PE基本运算单元支持四方向四通道的数据流输入处理,能够通过最多八个输入输出接口实现数据交换;通过数据选择器及通道选择器实现数据流仲裁。所述PE运算单元在运算前从前级PE基本运算单元获得待处理特征数据及权重数据,经过仲裁选择数据流通道,在完成乘加运算后将运算结果暂存,并将待处理特征数据及权重数据送入次级PE基本运算单元。
5.根据权利要求2所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述特征数据流通道根据计算周期将特征数据依次送入脉动阵列中,所述特征数据流通道在初始计算周期Clock 0送入首行特征数据(FA(0,0),……,FA(0,n)),在下一计算周期Clock 1送入第二行特征数据(FA(1,0),……,FA(1,n)),以此类推最终在Clock n周期完成所有特征数据行的送入;所述特征数据流通道与存储器单元实现数据交换,从存储器单元中取得待处理特征数据;所述特征数据流通道与PE基本运算单元实现数据交换,根据计算周期不同将待处理特征数据送入对应PE基本运算单元。
6.根据权利要求2所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述权重数据流通道根据时钟周期将权重数据依次送入由PE基本运算单元组成的脉动阵列中,所述权重数据流通道在每个计算周期依次送入不同行的权重数据,所述权重数据流通道在计算周期依次送入单个权重数据:待权重数据与当前特征数据完成乘加运算后,再脉动送入下个权重数据。所述权重数据流通道同样与存储器单元实现数据交换,取得待处理权重数据;所述权重数据流通道与PE基本运算单元实现数据交换,将待处理权重数据送入对应的PE基本运算单元。
7.根据权利要求5所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述特征数据流通道可以根据特征数据矩阵规模对特征数据流通道数量及方向配置,所述多通道脉动阵列能将PE基本运算单元根据特征矩阵及权重矩阵规模配置为1-4个子脉动阵列,所述特征数据流通道可根据子脉动矩阵阵列数量调整配置,实现从1通道1方向规模到4通道2方向规模的配置。
8.根据权利要求6所述的一种基于多通道脉动阵列的神经网络加速器装置,其特征在于,所述权重数据流通道可以根据权重数据矩阵规模对权重数据流通道数量及方向配置,所述多通道脉动阵列能将PE基本运算单元根据权重矩阵及特征矩阵规模配置为1-4个子脉动阵列,所述权重数据流通道可根据子脉动矩阵阵列数量调整配置,实现从1通道1方向规模到4通道2方向规模的配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211531904.8A CN116151334A (zh) | 2022-12-01 | 2022-12-01 | 一种基于多通道脉动阵列的神经网络加速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211531904.8A CN116151334A (zh) | 2022-12-01 | 2022-12-01 | 一种基于多通道脉动阵列的神经网络加速器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116151334A true CN116151334A (zh) | 2023-05-23 |
Family
ID=86339774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211531904.8A Pending CN116151334A (zh) | 2022-12-01 | 2022-12-01 | 一种基于多通道脉动阵列的神经网络加速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116151334A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980277A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-12-01 CN CN202211531904.8A patent/CN116151334A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116980277A (zh) * | 2023-09-18 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116980277B (zh) * | 2023-09-18 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7166389B2 (ja) | ニューラルネットワークにおけるビット直列計算についてのシステム及び集積回路 | |
CN104899182B (zh) | 一种支持可变分块的矩阵乘加速方法 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN111738433B (zh) | 一种可重配置的卷积硬件加速器 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN111291323A (zh) | 一种基于脉动阵列的矩阵乘法处理器及其数据处理方法 | |
CN109993301B (zh) | 神经网络训练装置及相关产品 | |
CN112418396B (zh) | 一种基于fpga的稀疏激活感知型神经网络加速器 | |
CN116167424B (zh) | 基于cim的神经网络加速器、方法、存算处理系统与设备 | |
CN116151334A (zh) | 一种基于多通道脉动阵列的神经网络加速器 | |
TWI696961B (zh) | 深度神經網路硬體加速器與其操作方法 | |
CN113869507B (zh) | 一种基于脉动阵列的神经网络加速器卷积计算装置与方法 | |
CN110909872A (zh) | 集成电路芯片装置及相关产品 | |
CN116306840A (zh) | 神经网络运算方法、装置、芯片、电子设备和存储介质 | |
CN111610963B (zh) | 芯片结构及其乘加计算引擎 | |
CN112395549A (zh) | 一种用于矩阵乘法密集型算法的可重构矩阵乘法加速系统 | |
JPH0590141A (ja) | 荷電ビーム描画用データ作成装置 | |
CN113269298B (zh) | 卷积神经网络运算装置及其运算的方法 | |
CN114912596A (zh) | 面向稀疏卷积神经网络的多chiplet系统及其方法 | |
CN113110822A (zh) | 一种可配置矩阵乘法装置及算法 | |
CN113628093A (zh) | 一种加速图像处理的方法、系统、设备及存储介质 | |
CN112418419B (zh) | 一种面向神经网络处理的按优先级调度的数据输出电路结构 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
Xiao et al. | FGPA: Fine-grained pipelined acceleration for depthwise separable CNN in resource constraint scenarios |
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 |