CN112988621A - 一种张量数据的数据载入装置及方法 - Google Patents
一种张量数据的数据载入装置及方法 Download PDFInfo
- Publication number
- CN112988621A CN112988621A CN202110272918.1A CN202110272918A CN112988621A CN 112988621 A CN112988621 A CN 112988621A CN 202110272918 A CN202110272918 A CN 202110272918A CN 112988621 A CN112988621 A CN 112988621A
- Authority
- CN
- China
- Prior art keywords
- data
- input
- tensor
- parallel
- 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 34
- 238000011068 loading method Methods 0.000 title claims abstract description 31
- 230000015654 memory Effects 0.000 claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 13
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 12
- 230000001133 acceleration Effects 0.000 claims abstract description 10
- 230000004927 fusion Effects 0.000 claims abstract description 6
- 230000008707 rearrangement Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 239000000872 buffer Substances 0.000 abstract description 11
- 238000004364 calculation method Methods 0.000 abstract description 5
- 230000011218 segmentation Effects 0.000 abstract description 2
- 238000003672 processing method Methods 0.000 abstract 1
- 238000011426 transformation method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出一种张量数据的数据载入装置及方法,用于卷积神经网络计算加速。本发明包括:输入缓存及控制,针对主存储器或/和其他存储器的输入进行分割、实现区域数据共享以及张量数据融合、分发;并行输入寄存阵列,将输入缓存中的数据分割片进行变换;张量型数据载入单元,连接输入缓存的输出以及并行输入寄存阵列的输入。设计简化了地址译码电路,节省面积和功耗。本发明提供的硬件装置及数据处理方法包括对输入数据的变换法、分割法和编址法,满足以有限的硬件资源进行算法加速的需求,降低了地址管理复杂度。
Description
技术领域
本发明属于计算机硬件、人工神经网络算法部署硬件加速的领域,数字集成电路设计领域,具体涉及一种深度卷积神经网络硬件加速芯片的输入系统的架构设计方法、及其装置。
背景技术
深度卷积神经网络算法由多层具体的神经元算法层、隐藏层组成,主要包含有卷积层,主要算子为矩阵或向量的卷积计算。该计算任务的主要特点为输入的数据量大、输入数据具有空间特征信息的耦合,且每次卷积计算的数据往往与已经计算过的数据发生重叠,输入数据往往为从张量格式的数据中以一定空间规律抽取所需要的计算数据。
近年来在终端部署人工神经算法已经成为广泛需求,但在相关场景下,加速芯片的性能、成本因素成为制约需求的主要因素。专利文件1(公开号CN105488565A)公开了一种加速深度神经网络算法的加速芯片的运算装置及方法,为克服大量的中间值被生成并需要存储,从而所需主存空间增加的问题,其运算装置中均设置有中间值存储区域,这些区域被配置为随机存储器,以减少对主存储器的中间值读取和写入次数,降低加速器芯片的能量消耗,避免数据处理过程中的数据缺失和替换问题。专利文件2(申请公布号CN107341544A)公开了一种基于可分割阵列的可重构加速器及其实现方法,设计了便笺式存储器缓存区,用于实现数据重用。专利文件3(公开号USB0170103316A1)公开了一种卷积神经网络加速器的方法、系统及装置,在其中设计了Unified Buffer。专利文件4(公开号US20180341495A1)公开了一种卷积神经网络加速器及方法,其中采用cache装置来提供并行加速所需数据。这些发明都非常优秀,已开展在服务器、数据中心以及高端智能手机上的应用,但在终端的应用还有问题。
在终端部署人工神经算法,其需求特征为,由于加速芯片的硬件资源有限,必需要将数据进行分割处理,并尽量减少数据的膨胀;而对于不同领域和产业场景所常用的人工神经网络算法不同,这种处理应为一套简单、便于实现的方法,否则仍难以“落地”。在专利文件1和3所述发明中,由于不同神经网络算法层尺寸不一、数据重用度不同而导致加速器资源的浪费,以至于需要配合其他异构处理器来帮助解决数据相关的问题,要么就是依靠更深亚微米高成本先进工艺来提升性能;专利3所述的存储方式需要备份更多数据,导致Buffer尺寸太大;专利2的方法采用可重构计算思想,虽然极为注重节省资源浪费,但其数据分割和排布方法很复杂,需配合先进的计算任务部署编译器来辅助应用;专利4的发明与中央处理器的设计过于耦合,同时设计实现复杂度过高。
发明内容
本发明提供一种对深度卷积神经网络计算加速的、结合主存储器的数据载入装置的硬件电路设计及方法,
以降低硬件电路设计的复杂度、降低芯片的面积和功耗,同时还能提供高吞吐率、高性能的并行数据带宽,提高芯片的计算资源与内存带宽利用率,降低应用的复杂度与成本。
为实现上述目的,本发明结合可伸缩的并行数据载入装置,提供了一种再结合主存储器的数据载入装置,该数据载入装置包括:
张量型随机访问控制器,对来自主存储器或/和其他存储器的输入数据进行融合、排布以及数据格式转化,再分发到输入缓存单元的分割区域中,所述工作模式可通过软件重配置;
可分割输入缓存单元,是本发明所述的数据载入装置的本地缓存,由多个存储页组成,设计及存储方法与输入数据的维度以及并行输入寄存阵列相对应,支持所述软件重配置带来的数据格式的改变;
张量型数据载入装置,通过改变对可分割输入缓存单元各个存储页的访问格式,完成对张量数据的融合或重排,同时还具有数据补齐(padding)功能,再将处理后的数据载入到并行输入寄存阵列;
并行输入寄存阵列,向对深度卷积神经网络并行加速计算单元阵列进行高带宽的数据输入。
对于主存储器或/和其他存储器中存储的关于深度卷积神经网络算法层所输出的特征图,该装置提供数据重排布的缓存及快速寄存区域,简化了输入数据排布的难度;其中的可分割输入缓存单元可以被反复访问,被再访问的数据格式更为规整;当其中的数据已经作废时,可重新从主存储器或/和其他存储器中高效的写入新数据。
本发明提供一种数据载入装置设计方法,将本地缓存单元分割为多个存储页,可由张量型输入缓存随机访问控制器并行访问多个页;存储页及张量型数据载入装置的设计与并行输入寄存阵列的伸缩性相对应,满足特定的设计公式。该设计方法能够化简该装置中的硬件电路复杂度,降低面积和功耗。
本发明的效果在于:
1、简化了硬件并行计算单元阵列与输入装置之间的连接复杂度
2、简化了输出装置与主存储之间排布数据的空间复杂度
3、简化了软件排布数据、划分数据宏块的地址计算复杂度
4、提高了硬件并行计算单元阵列的实际应用效率
5、更适合在低成本嵌入式ASIC芯片上实现。
附图说明
图1为本发明一种数据输入装置的结构图;
图2为本发明所述张量型数据载入装置与存储页及可伸缩并行输入寄存阵列之间的结构及设计方法图;
图3为本发明所述张量型数据载入装置与存储页及可伸缩并行输入寄存阵列之间的具体结构图;
图4为本发明结合主存储器的数据载入方法图;
附图标记说明
1并行硬件计算单元阵列(Process Elements Array,PEA)
101卷积计算单元(Process Element, PE)
2结合主存储器的数据输入装置
201可分割输入缓存单元
202可伸缩并行输入寄存阵列
204张量型数据载入装置(LDI)
205张量型输入缓存随机访问控制器
5高性能片上数据总线
6主存储器及其控制器。
具体实施方式
下面通过附图和实施例,对本发明进一步详细描述。
图1为本发明一种再结合主存储器的数据载入装置结构图,该数据载入装置2包括:
张量型输入缓存随机访问控制器205,对来自主存储器6或/和其他存储器的输入数据进行融合、排布以及数据格式转化,再分发到输入缓存单元201的分割区域中,所述工作模式可通过软件重配置;
可分割输入缓存单元201,是本发明所述的数据载入装置的本地缓存,由多个存储页组成,设计及存储方法与输入数据的维度以及并行输入寄存阵列202相对应,支持所述软件重配置带来的数据格式的改变;
张量型数据载入装置204,通过改变对可分割输入缓存单元201各个存储页的访问格式,完成对张量数据的融合或重排,同时还具有数据补齐(padding)功能,再将处理后的数据载入到并行输入寄存阵列202;
并行输入寄存阵列202,向对深度卷积神经网络并行加速计算单元阵列进行高带宽的数据输入。
对于主存储器6或/和其他存储器中存储的关于深度卷积神经网络算法层之前一隐含层所输出的特征图,该装置提供数据重排布的缓存及快速寄存区域,简化了输入数据排布的难度;其中的可分割输入缓存单元201可以被反复访问,被再访问的数据格式更为规整;当其中的数据已经作废时,可重新从主存储器6或/和其他存储器中高效的写入新数据。
本发明提供一种对应可伸缩的并行输入寄存阵列设计可分割的输入缓存的方法:假设并行输入寄存阵列202例化有行、列表示为Rh、Rw个输入寄存器,则输入缓存201的分页数目也设计为Rh个bank页;假设输入数据位宽为DW,并行输入寄存阵列202每次装填可供并行加速计算阵列1连续加速计算Bw*Bh次,则装填并行输入寄存阵列202的位宽计算方法为⌈Rw/Bw⌉*DW;依据并行加速计算单元阵列1的并行度P以及卷积核最小尺寸Kmin,可折中选定Bw*Bh;考虑到与主存储系统设计所需缓冲深度tm,每bank页的深度为tm*Rw。图2解释了本设计方法的对应关系。
图2为本发明所述张量型数据载入装置204与存储页201及可伸缩并行输入寄存阵列202之间的结构及设计方法图:张量型数据载入装置包含几组同样且并行工作的读写单元,组的数目与每个PE在IRA对应需要访问的输入数据的范围有关,为⌈2/Rh⌉+K,每一LDI读写组单元对应并行输入寄存阵列的Bh行进行操作;工作方法为先写并行输入寄存阵列的对应行,每次写⌈Rw/Bw⌉*DW、写Bw次后写完这一行,再写下一行,直到写完对应的Bh行,则当前的IRA装填完毕;该所述张量型数据载入装置204中的一个LDI读写组单元所对应的Bh行的分布,是依据IRA与PEA工作特征所决定的区域大小、采取跨区域间隔分布的;所有的LDI读写组单元并行写入IRA,当写完一行时,可供并行计算单元阵列PEA至少完成一次矩阵卷积计算的数据已被装填完毕。图3具体解释了本设计方法的对应关系。
图4为本发明结合主存储器的数据载入方法及流程图:
首先,输入数据在主存储器中按照扫描顺序正常摆放,按照2维格式进行编码,如图所示,r表示输入数据图,数字表示编址;
依据本发明装置中并行输入寄存阵列的寄存规模,将输入数据进行切块;
启动张量型输入缓存随机访问控制器205,根据切割的输入数据块的首地址与张量读取方式对其进行配置,由该访问控制器完成对输入数据的张量操作,例如融合、转置等;
配置张量型输入缓存随机访问控制器205的写入模式,按照bank分页依次写入,同时对数据进行一定规律的重排列,满足本发明所述的缓存数据排列方式。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种张量数据的数据载入装置,其特征在于,所述硬件装置包括:
张量型随机访问控制器,对来自主存储器或/和其他存储器的输入数据进行融合、排布以及数据格式转化,再分发到输入缓存单元的分割区域中,所述工作模式可通过软件重配置;
可分割输入缓存单元,是本发明所述的数据载入装置的本地缓存,由多个存储页组成,设计及存储方法与输入数据的维度以及并行输入寄存阵列相对应,支持所述软件重配置带来的数据格式的改变;
通用的张量型数据载入装置,通过改变对可分割输入缓存单元各个存储页的访问格式,完成对张量数据的融合或重排,同时还具有数据补齐(padding)功能,再将处理后的数据载入到并行输入寄存阵列;
并行输入寄存阵列,向对深度卷积神经网络并行加速计算单元阵列进行高带宽的数据输入。
2.根据权利要求1所述的数据载入装置,其特征在于,包括:
对于主存储器或/和其他存储器中存储的,关于深度卷积神经网络算法层所输出的特征图,该装置提供数据重排布的缓存及快速寄存区域,简化了输入数据排布的难度;
其中的可分割输入缓存单元可以被反复访问,被再访问的数据格式更为规整;当其中的数据已经作废时,可重新从主存储器或/和其他存储器中高效的写入新数据;
对于数据输入、参数数据输入来说,该装置及设计方法都是通用的,只有实现设计的参数不同。
3.根据权利要求1-2所述的数据载入装置设计方法,其特征在于,其本地缓存单元分割为多个存储页,可由张量型输入缓存随机访问控制器并行访问多个页;存储页及张量型数据载入装置的设计与并行输入寄存阵列的伸缩性相对应,满足特定的设计公式;该设计方法能够化简该装置中的硬件电路复杂度,降低面积和功耗。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272918.1A CN112988621A (zh) | 2021-03-12 | 2021-03-12 | 一种张量数据的数据载入装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272918.1A CN112988621A (zh) | 2021-03-12 | 2021-03-12 | 一种张量数据的数据载入装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988621A true CN112988621A (zh) | 2021-06-18 |
Family
ID=76335425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110272918.1A Pending CN112988621A (zh) | 2021-03-12 | 2021-03-12 | 一种张量数据的数据载入装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988621A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023000136A1 (zh) * | 2021-07-19 | 2023-01-26 | 华为技术有限公司 | 数据格式转换装置及方法 |
WO2023179619A1 (zh) * | 2022-03-25 | 2023-09-28 | 中山大学 | 一种神经网络的高速缓存方法、系统、装置及存储介质 |
-
2021
- 2021-03-12 CN CN202110272918.1A patent/CN112988621A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023000136A1 (zh) * | 2021-07-19 | 2023-01-26 | 华为技术有限公司 | 数据格式转换装置及方法 |
WO2023179619A1 (zh) * | 2022-03-25 | 2023-09-28 | 中山大学 | 一种神经网络的高速缓存方法、系统、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111783933A (zh) | 一种对深度卷积神经网络计算加速的、结合主存储器的数据载入装置的硬件电路设计及方法 | |
EP3757901A1 (en) | Schedule-aware tensor distribution module | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN108805272A (zh) | 一种基于fpga的通用卷积神经网络加速器 | |
US20220179823A1 (en) | Reconfigurable reduced instruction set computer processor architecture with fractured cores | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN108182959B (zh) | 基于阻变器件交叉阵列结构实现逻辑计算的方法 | |
CN112988621A (zh) | 一种张量数据的数据载入装置及方法 | |
CN101061460A (zh) | 用于混移运算的微处理器设备和方法 | |
EP3938917B1 (en) | Moving data in a memory and command for memory control | |
CN102279818A (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
CN112950656A (zh) | 一种基于fpga平台的按通道进行预读取数据的分块卷积方法 | |
CN103760525A (zh) | 一种补齐式原地矩阵转置方法 | |
CN112749107A (zh) | 用于在存储附近进行分级排序加速的系统和方法 | |
CN111488114A (zh) | 一种可重构的处理器架构及计算设备 | |
JP2022508028A (ja) | 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末 | |
CN115394336A (zh) | 一种存算fpga架构 | |
US11429299B2 (en) | System and method for managing conversion of low-locality data into high-locality data | |
CN117273099A (zh) | 一种可重构阵列下Transformer网络模型数据复用方案与实现方法 | |
CN106909320B (zh) | 一种多维数据扩充传输的方法、装置以及系统 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
US20230289398A1 (en) | Efficient Matrix Multiply and Add with a Group of Warps | |
CN113448624B (zh) | 数据存取方法及装置、系统、ai加速器 | |
CN116051345A (zh) | 图像数据处理方法、装置、计算机设备及可读存储介质 | |
CN116415100A (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 |