CN113095024A - 一种张量数据的区域化并行载入装置及方法 - Google Patents
一种张量数据的区域化并行载入装置及方法 Download PDFInfo
- Publication number
- CN113095024A CN113095024A CN202110272307.7A CN202110272307A CN113095024A CN 113095024 A CN113095024 A CN 113095024A CN 202110272307 A CN202110272307 A CN 202110272307A CN 113095024 A CN113095024 A CN 113095024A
- Authority
- CN
- China
- Prior art keywords
- data
- parallel
- access
- input
- register 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000011068 loading method Methods 0.000 title claims abstract description 18
- 238000013461 design Methods 0.000 claims abstract description 21
- 238000010586 diagram Methods 0.000 claims abstract description 13
- 230000008707 rearrangement Effects 0.000 claims abstract description 6
- 238000004364 calculation method Methods 0.000 claims description 27
- 238000013527 convolutional neural network Methods 0.000 claims description 16
- 230000001133 acceleration Effects 0.000 claims description 15
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 239000002699 waste material Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000278713 Theora Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/373—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种张量数据的区域化并行载入装置及方法。此装置设计包括:并行输入寄存阵列,为输入缓存中的输入特征图提供数据重排布的快速寄存区域;并行输入数据访问引擎,对并行输入寄存阵列中的数据进行区域化的并行访问,采用这种设计后,可简化连接电路的结构,使芯片面积与功耗得到优化。
Description
技术领域
本发明属于计算机硬件、人工神经网络算法部署硬件加速的领域,数字集成电路设计领域,具体涉及一种深度卷积神经网络硬件加速芯片的输入数据的关键处理装置,及其设计方法。
背景技术
深度卷积神经网络算法由多层具体的神经元算法层、隐藏层组成,主要包含有卷积层,主要算子为矩阵或向量的卷积计算。该计算任务的主要特点为输入的数据量大、输入数据具有空间特征信息的耦合,且每次卷积计算的数据往往与已经计算过的数据发生重叠,输入数据往往为从张量格式的数据中以一定空间规律抽取所需要的计算数据。计算所需算力大,所需要的数据更大。而在终端芯片上部署人工神经算法,由于加速芯片的硬件资源有限,必须要将数据进行分割处理,对于每一份分割的数据要尽量利用输入数据的空间耦合性,避免因反复装填重复的数据造成的带宽浪费;而对于不同领域和产业场景所常用的人工神经网络算法不同,数据分割处理应设计为尽量简单、便于实现的方法,否则将无法支持低成本、快速的应用场景下的开发任务。
专利文件1(公开号CN105488565A)公开了一种加速深度神经网络算法的加速芯片的运算装置及方法,为克服大量的中间值被生成并需要存储,从而所需主存空间增加的问题,其运算装置中均设置有中间值存储区域,减少对主存储器的中间值读取和写入次数。专利文件2(公开号USB0170103316A1)公开了一种卷积神经网络加速器的方法、系统及装置,在其中设计了Unified Buffer。由于不同神经网络算法层尺寸不一、数据重用度不同,容易导致加速器资源的浪费,专利1需要配合其他异构处理器来帮助加速数据排布任务,开始逐渐走向服务器端应用的方向;而专利2由于采取巨大的并行计算规模和存储规模的策略,也只能用于服务器、数据中心等场景。
专利文件3(申请公布号CN107341544A)公开了一种基于可分割阵列的可重构加速器及其实现方法,设计了便笺式存储器缓存区,用于实现数据重用。采用可重构计算思想,虽然在解决资源浪费问题方面接近理论的最好结果,但其数据分割和排布方法也极为复杂,导致重新部署新的网络难度很高。专利文件4(公开号US20180341495A1)公开了一种卷积神经网络加速器及方法,其中采用cache装置来提供并行加速所需数据。专利4的发明与中央处理器的设计过于耦合,设计实现复杂度也过高。
发明内容
本发明提供一种张量数据的区域并行数据载入装置及其方法,可以降低应用的复杂度与成本,也降低硬件电路设计的复杂度、降低芯片的面积和功耗,同时还能提供高吞吐率、高性能的并行数据带宽。
为实现上述目的,本发明提供了一种区域并行数据载入装置,该并行载入装置包括:
张量型数据载入单元,控制从数据缓存的数据在特定时机下刷新寄存阵列中的数据;
并行输入寄存阵列,为输入缓存中的输入特征图提供数据重排布的快速寄存区域,所寄存的数据将作为并行加速计算单元阵列进行高带宽计算的输入数据,可供随机访问或同时并行、并发的多路访问;
并行输入数据访问引擎,对上述并行输入寄存阵列中的数据进行区域化的并行、并发访问,无需对上述寄存阵列进行整体访问,也不会造成任何数据缺失。
本发明的区域并行数据载入装置,其中,所述并行输入寄存阵列用于缓存输入缓存中存储的关于深度卷积神经网络算法层所输出的特征图,该并行输入寄存阵列提供数据重排布的快速寄存区域,简化了输入数据排布的难度;该并行输入寄存阵列可以被反复访问,当其中的数据已经作废时,可重新从输入缓存中快速写入新的数据;该寄存阵列支持随机访问、同时并行访问和多路并发访问,并发的路数不小于深度卷积神经网络硬件并行加速器其中的并行加速计算单元的数量。
本发明的并行数据载入装置,其中,所述并行输入数据访问引擎对于并行输入寄存阵列中的数据进行区域化的并行、并发访问,既不是串行访问、也不是全地址空间的自由访问,并发的访问路数也不小于深度卷积神经网络硬件并行加速器其中的并行加速计算单元的数量;对于并行输入寄存阵列中的区域数据以一定规律反复访问,这样可以在该数据区域内发挥卷积神经网络算法层输入特征图的区域数据耦合特性,无须再对并行输入寄存阵列反复大量写入重复的数据。
本发明还提供一种区域并行数据载入装置的设计方法,包括以下方法和原则:
所述并行输入寄存阵列的尺寸设计与并行计算单元阵列的设计尺寸相关,满足特定的设计公式;
对并行输入寄存阵列中的区域进行区域化的并行、并发访问,既不是串行访问、也不是全地址空间的随机访问;对于同时并发的多路访问,其地址计算遵循特定的计算规律,变换规律简单。该设计方法能够化简该硬件引擎模块中的硬件电路复杂度,降低面积和功耗。
本发明的效果在于:
1、简化了硬件并行计算单元阵列与输入装置之间的连接复杂度
2、简化了输出装置与主存储之间排布数据的空间复杂度
3、简化了软件排布数据、划分数据宏块的地址计算复杂度
4、提高了硬件并行计算单元阵列的实际应用效率
5、更适合在低成本嵌入式ASIC芯片上实现。
附图说明
图1为本发明区域数据载入方法的数据流及装置实施例结构图;
图2为所述实施例第1次卷积计算中区域数据流图;
图3为所述实施例第2次卷积计算中区域数据流图;
图4为所述实施例第3次卷积计算中区域数据流图;
图5为本发明一种区域并行数据载入装置的结构图;
附图标记说明
1 并行硬件计算单元阵列(Process Elements Array,PEA)
12 并行输出寄存阵列(Output Register Array,ORA)
101 卷积计算单元(Process Element, PE)
202 并行输入寄存阵列(Input Register Array,IRA)
203 并行输入数据访问引擎(IRA Data access Engine,IDE)
204 张量型数据载入装置(LDI)
205 张量型输入缓存 。
具体实施方式
下面通过附图和实施例,对本发明做进一步的详细描述。
图1为本发明一种深度卷积神经网络硬件加速器中的区域并行数据载入方法的数据流及装置结构图,该装置包括并行输入寄存阵列(IRA)202与并行输入数据访问引擎(IDE)203。图中还说明了本发明装置与并行硬件计算单元阵列(PEA)1的一种简化连接设计。装置1由若干并行硬件计算单元(PE)101组成。
并行输入寄存阵列(IRA)202由特定数目的寄存器构成,用于提供数据重排布的快速寄存区域,简化了输入数据排布的难度;该并行输入寄存阵列可以被反复访问,当其中的数据已经作废时,可重新从输入缓存中快速写入新的数据;该寄存阵列支持随机访问、同时并行访问和多路并发访问,并发的路数不小于深度卷积神经网络硬件并行加速器其中的并行加速计算单元的数量。
如图1所示,在202中的积存单元被固定分割为区域,图中以202上的椭圆标记区域,区域的数目代表并发、并行访问的能力。203中的多路访问引擎不需要随机访问202整体的所有地址,而只需要访问每一路对应的区域内的寄存器阵列,这种对应关系也可以固定下来,进一步简化电路规模。
一实施例中,将 PEA定为矩形2维阵列结构,PE在其上的例化尺寸分别为宽Pw高Ph,则PE例化数目为P=Pw*Ph;并行加速执行尺寸为Kw*Kh的卷积核;IRA也视为2维阵列结构,输入寄存器在其上的例化尺寸分别为宽Rw高Rh,IRA可供PEA进行卷积的次数为B=Bw*Bh,寄存在输入并行寄存阵列(ORA)12中。本发明提供一种深度卷积神经网络硬件加速器中的区域并行数据载入装置的设计方法为:
依据特定领域的目标算法和常用网络的计算需求,结合行业应用的实时需求,以及并行加速器装置的理论算力区间,估求PEA的总体例化尺寸P,P=Pw*Ph;则并发、并行的数据输入路数也为P路;如图1所标注,那么输入数据访问引擎(IDE)203的路数也为P即可满足并行计算加速要求;
依据PE的设计架构可知其最大输出的算力与效能,再结合芯片设计的取舍,选择IRA每次更新数据后可供PEA完成卷积的次数B;如图1所标注,那么并行输出数据寄存阵列(ORA)12中的数目为P*B;
本发明提供一种深度卷积神经网络硬件加速器中的区域并行输入数据寄存阵列的尺寸为:Rw=Bw*Pw+Kw-1,Rh=Bh*Ph+Kh-1;
假设PE的坐标为(px,py),对应该PE的输入数据区域的左上角坐标(x,y)计算公式为:x=px*Bw+px%Bw+fw(Kw),y=py*Bh+py/Bh+fh(Kh); fw()与fh()函数与实施例选择要支持的卷积核最大尺寸有关,分别为fw(x)=⌊max(supported_Kw)/Bw⌋ - ⌊x/Bw⌋,fh(x)=⌊max(supported_Kh)/Bh⌋ - ⌊x/Bh⌋;
对应该PE的输入数据区域的尺寸(dw*dh)的计算公式为:dw=Kw+Bw-1,dh=Kh+Bh-1;
输入数据访问引擎(IDE)203对各自区域内进行访问,各个区域内的访问顺序、位置全部一致,简化地址产生的电路设计;
在卷积计算的跳步Stribe>1的情况下,所支持的B=⌊Bw/Stribe⌋*⌊Bh/Stribe⌋,即每次IRA装填后可支持的PEA计算次数呈倍数递减。
本发明提供一种深度卷积神经网络硬件加速器中的区域并行输入数据的计算顺序:
如图2所示,在当前区域数据内,所有的IDE路都同步、并发的访问左上角Kw*Kh区域,以支持对应的PE进行首次卷积计算;
如图3所示,在当前区域数据内,所有的IDE路所同步、并发的访问Kw*Kh区域发生了平移,向右Stribe个数据,支持对应的PE进行第2次卷积计算;之前第1次计算的结果存在ORA当中;
如图3所示,当所有的IDE路所同步、并发的访问Kw*Kh区域平移遍历了横向所有数据后,向下K-1行,开始第Bw+1次卷积计算;之前的结果存在ORA的Bw个寄存单元当中;
重复以上步骤,直到所有Bw*Bh次卷积计算完毕。
图5为本发明一种区域并行数据载入装置的具体结构图,IDE装置203包括地址译码器及多路选择器2031,地址转换器2033、以及IDE对IRA区域的地址产生器2032。
如图5所示,当(px,py)为0的左上角PE进行首次K=7卷积时,卷积区域的中心点位于r33处,依据本发明所包含的上述规律,则其他三次分别位于r34、r43、r44,虚线框就是p0所需要访问的所有区域,共64个输入数据。虚线箭头表示该区域内64数据连接到64选1的多路选择器2031。区域地址产生器2032提供区域地址变化规律,地址转换器2033对应每一路译码为根据区域偏移调整后的地址,经多路选择器2031译码选择其中一个数据,再输出给该PE,直到完成所有4次卷积。
如图5所示,当p0在进行所对应区域内的计算加速时,其他PE也在并行、同步的进行阵列计算加速。每个PE所对应的IRA区域中心点用十字标出。所有PE所访问各自区域的地址、顺序一样,这化简了控制电路的复杂度。
并行输入寄存阵列(IRA)202中的数据是有限的,在一种实施例采取的mesh互联架构中,数据在寄存阵列中的实际位置会随着扫描节拍而不断变化;在另一种实施例采取的区域连接-多路选择器架构中,被选通的数据地址会随着扫描节拍而不断变化。这些变化都需要能被控制归零,支持数据处理规律的不变性。
并行输入寄存阵列(IRA)202的硬件资源规模是有限的。为发挥数据空间相关性,并促进数据处理快速归零,如图5所示的张量型数据载入装置(LDI)204,根据控制指令配置的工作模式,根据硬件自身的状态变化时机,在特定的时机下将张量型输入缓存205中不同区域的数据选通,并对202寄存器的值进行刷新。同时刷新的包括阵列中的数据位置以及当前被扫描数据的地址。
本发明可通过区域并行输入装置,按照上述各个PE所访问区域的划定方法设计,就可以满足输入数据吞吐性能,电路设计更为简化,且输入数据分割的方法简单、直观。
本发明可以在由中央控制器执行的一般或/和扩展指令的一般上下文中描述,例如软件程序。软件程序一般包括执行特定任务或实现特定数据类型的例程、对象、组件、数据结构及参考模型等等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种张量数据的区域并行数据载入装置,其特征包括:
张量型数据载入单元,控制从数据缓存的数据在特定时机下刷新寄存阵列中的数据;
并行输入寄存阵列,为输入缓存中的输入特征图提供数据重排布的快速寄存区域,所寄存的数据将作为并行加速计算单元阵列进行高带宽计算的输入数据,可供随机访问或同时并行、并发的多路访问;
并行输入数据访问引擎,对上述并行输入寄存阵列中的数据进行区域化的并行、并发访问,无需对上述寄存阵列进行整体访问,也不会造成任何数据缺失。
2.根据权利要求1所述的并行输入寄存器阵列,其特征在于,对于输入缓存中存储的关于深度卷积神经网络算法层所输出的特征图,该并行输入寄存阵列提供数据重排布的快速寄存区域,简化了输入数据排布的难度;该并行输入寄存阵列可以被反复访问,当其中的数据已经作废时,可重新从输入缓存中快速写入新的数据;该寄存阵列支持随机访问、同时并行访问和多路并发访问,并发的路数不小于深度卷积神经网络硬件并行加速器其中的并行加速计算单元的数量。
3.根据权利要求1-2所述的并行输入寄存器阵列的设计方法,其特征在于,其尺寸设计与并行计算单元阵列的设计尺寸相关,满足特定的设计公式。
4.根据权利要求1所述的并行输入数据访问引擎,其特征在于,包括:
对于并行输入寄存阵列中的数据进行区域化的并行、并发访问,既不是串行访问、也不是全地址空间的自由访问,并发的访问路数也不小于深度卷积神经网络硬件并行加速器其中的并行加速计算单元的数量;对于并行输入寄存阵列中的区域数据以一定规律反复访问,这样可以在该数据区域内发挥卷积神经网络算法层输入特征图的区域数据耦合特性,无须再对并行输入寄存阵列反复大量写入重复的数据。
5.根据权利要求1、4所述的并行输入数据访问引擎的设计方法,其特征在于,对并行输入寄存阵列中的区域进行区域化的并行、并发访问,既不是串行访问、也不是全地址空间的自由访问;对于同时并发的多路访问,其地址计算遵循特定的计算规律,变换规律简单。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272307.7A CN113095024A (zh) | 2021-03-12 | 2021-03-12 | 一种张量数据的区域化并行载入装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272307.7A CN113095024A (zh) | 2021-03-12 | 2021-03-12 | 一种张量数据的区域化并行载入装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113095024A true CN113095024A (zh) | 2021-07-09 |
Family
ID=76667985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110272307.7A Pending CN113095024A (zh) | 2021-03-12 | 2021-03-12 | 一种张量数据的区域化并行载入装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113095024A (zh) |
-
2021
- 2021-03-12 CN CN202110272307.7A patent/CN113095024A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108765247B (zh) | 图像处理方法、装置、存储介质及设备 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
EP3654247A1 (en) | Convolution engine for neural networks | |
US8400458B2 (en) | Method and system for blocking data on a GPU | |
CN107657581A (zh) | 一种卷积神经网络cnn硬件加速器及加速方法 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN111028360B (zh) | 一种3d图像处理中数据读写方法及系统、存储介质及终端 | |
WO2019118363A1 (en) | On-chip computational network | |
US20200050486A1 (en) | Configuration of Application Software on Multi-Core Image Processor | |
CN112967172A (zh) | 一种数据处理装置、方法、计算机设备及存储介质 | |
CN111783933A (zh) | 一种对深度卷积神经网络计算加速的、结合主存储器的数据载入装置的硬件电路设计及方法 | |
CN116775518A (zh) | 用于高效访问多维数据结构和/或其他大型数据块的方法和装置 | |
JP6551751B2 (ja) | マルチプロセッサ装置 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN109472734B (zh) | 一种基于fpga的目标检测网络及其实现方法 | |
CN112988621A (zh) | 一种张量数据的数据载入装置及方法 | |
CN110766150A (zh) | 一种深度卷积神经网络硬件加速器中的区域并行数据载入装置及方法 | |
Yousefzadeh et al. | Energy-efficient in-memory address calculation | |
CN113095024A (zh) | 一种张量数据的区域化并行载入装置及方法 | |
CN113240074B (zh) | 一种可重构神经网络处理器 | |
CN115630013A (zh) | 基于空间可重构阵列的便笺式缓存架构构建方法及系统 | |
Liang et al. | Design of 16-bit fixed-point CNN coprocessor based on FPGA | |
CN113095030A (zh) | 一种可伸缩的并行数据载入装置及方法 | |
CN114692844A (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 |