CN112712167A - 支持多种卷积神经网络加速的存储器访问方法及系统 - Google Patents
支持多种卷积神经网络加速的存储器访问方法及系统 Download PDFInfo
- Publication number
- CN112712167A CN112712167A CN202011640088.5A CN202011640088A CN112712167A CN 112712167 A CN112712167 A CN 112712167A CN 202011640088 A CN202011640088 A CN 202011640088A CN 112712167 A CN112712167 A CN 112712167A
- Authority
- CN
- China
- Prior art keywords
- data
- memory access
- operator
- current
- neural network
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 39
- 230000001133 acceleration Effects 0.000 title claims abstract description 29
- 238000013528 artificial neural network Methods 0.000 claims abstract description 66
- 238000004364 calculation method Methods 0.000 claims abstract description 64
- SHXWCVYOXRDMCX-UHFFFAOYSA-N 3,4-methylenedioxymethamphetamine Chemical compound CNC(C)CC1=CC=C2OCOC2=C1 SHXWCVYOXRDMCX-UHFFFAOYSA-N 0.000 claims abstract description 25
- 238000013500 data storage Methods 0.000 claims description 16
- 230000017105 transposition Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006740 morphological transformation Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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
-
- 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
-
- 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)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供了一种支持多种卷积神经网络加速的存储器访问方法,存储器访问方法能够实施于可重构处理器。可重构处理器中设置:NPU神经网络处理器,其能够执行涉及算子的多个计算指令。各计算指令对应一种算子调用顺序。DDR存储器。MDMA片外存储器访问单元,其设置于NPU神经网络处理器的数据访问端。RAM随机存储器。以及SDMA片内存储器访问单元,其设置于NPU神经网络处理器的数据访问端。本发明根据当前计算指令调度、排列各存储单元,从而可以有效提高卷积神经网络加速器的计算效率和内存使用效率。同时,本发明了提供了一种加速可重构处理器运行的稀疏化数据处理系统。
Description
技术领域
本发明涉及人工智能领域领域,具体应用于多种卷积神经网络的加速计算。涉及人工智能数据计算中数据的传输、形态转换的卷积神经网络的加速。本发明具体涉及支持多种卷积神经网络加速的存储器访问方法及系统。
背景技术
人工智能领域中神经网络是核心算法,是在人工智能领域中应用最为广泛的算法。广泛应用于安防、自动驾驶、计算机视觉等领域。在人工智能领域中大量使用深度学习网络实现卷积计算,而在卷积计算过程中将大量调用处理器的存储及系统资源,从而卷积计算的速度及可靠性,受限于存储资源、处理资源等系统资源的限制。现有技术中多采用扩容硬件存储及计算单元的方式解决上一问题。但是,因为上述问题其还涉及多方面因素,因此,无法根本解决上述问题。
发明内容
本发明的目的是提供支持多种卷积神经网络加速的存储器访问方法,根据当前计算指令调度、排列各存储单元,从而可以有效提高卷积神经网络加速器的计算效率和内存使用效率。
本发明的另一个目的是提供加速可重构处理器运行的稀疏化数据处理系统,通过对神经网络中的数据进行传输、以及数据结构形态转变。本发明可以有效提高卷积神经网络加速器的计算效率和内存使用效率。
本发明的第一个方面,提供了支持多种卷积神经网络加速的存储器访问方法,存储器访问方法能够实施于可重构处理器。可重构处理器中设置:
一个NPU神经网络处理器,其能够执行涉及算子的多个计算指令。各计算指令对应一种算子调用顺序。
一个DDR存储器。
一个MDMA片外存储器访问单元,其设置于NPU神经网络处理器的数据访问端。NPU神经网络处理器通过MDMA片外存储器访问单元读取操作或写操作DDR存储器。
一个RAM随机存储器。以及
一个SDMA片内存储器访问单元,其设置于NPU神经网络处理器的数据访问端。
支持多种卷积神经网络加速的存储器访问方法包括:
步骤S101,NPU神经网络处理器根据当前计算指令向SDMA片内存储器访问单元发送读取操作指令。读取操作指令中包括:当前算子数据的读取地址和当前计算指令类型。
步骤S102,SDMA片内存储器访问单元根据算子数据的读取地址从RAM随机存储器中读取当前算子数据的数据存储区域。
步骤S103,SDMA片内存储器访问单元根据当前计算指令类型获取当前算子调用顺序。根据当前算子调用顺序将当前算子数据在存储区域内重新排序。以使NPU神经网络处理器执行当前计算指令时,能够通过SDMA片内存储器访问单元,从RAM随机存储器中按调用顺序连续读取算子数据。
在本发明支持多种卷积神经网络加速的存储器访问方法的一种实施方式中,步骤S103中包括:
步骤S1031-1,SDMA片内存储器访问单元根据当前算子调用顺序及当前算子数据的存储区域获取待移动数据量。
步骤S1031-2,根据待移动数据量获取读取操作指令的搬运位数。若搬运位数匹配设定搬运位数或设定搬运位数的整数倍,则通过设定搬运位数匹配的读取操作搬运待移动数据。获取重排后的当前算子数据存储区域。
在本发明支持多种卷积神经网络加速的存储器访问方法的另一种实施方式中,设定搬运位数包括8位或1位。
在本发明支持多种卷积神经网络加速的存储器访问方法的又一种实施方式中,步骤S101中还包括:
步骤S1011,NPU神经网络处理器根据当前计算指令向SDMA片内存储器访问单元发送写操作指令。写操作指令中包括:当前算子写入数据和当前计算指令类型。
步骤S102中还包括:
步骤S1021,SDMA片内存储器访问单元根据算子写入数据获取各算子的数据写入区域。及当前算子调用顺序获取当前算子写入区域。
步骤S103中还包括:
步骤S1031,SDMA片内存储器访问单元根据当前计算指令类型获取当前算子写入顺序。根据当前算子写入顺序对当前算子数据的写入区域重新排序,获取重排后的当前算子数据写入区域。以使NPU神经网络处理器写入当前计算指令的算子数据时,能够通过SDMA片内存储器访问单元,根据当前算子的写入顺序顺序写入RAM随机存储器中。
在本发明支持多种卷积神经网络加速的存储器访问方法的再一种实施方式中,步骤S103中包括:
步骤S1032-1,SDMA片内存储器访问单元根据当前算子写入顺序及当前算子数据的写入区域获取待移动写入数据量。
步骤S1032-2,根据待移动写入数据量获取读取操作指令的移动位数。若移动位数匹配设定移动位数或设定移动位数的整数倍,则通过设定移动位数匹配的写入操作移动待移动数据。获取重排后的当前算子数据写入区域。
在本发明支持多种卷积神经网络加速的存储器访问方法的再一种实施方式中,移动搬运位数包括8位或1位。
在本发明支持多种卷积神经网络加速的存储器访问方法的再一种实施方式中,多个计算指令包括:数据顺序读取类指令、数据同时读取类指令及矩阵转置类指令。
本发明的第二个方面,提供支持多种卷积神经网络加速的存储器访问系统,存储器访问系统能够实施于可重构处理器。可重构处理器中设置:
一个NPU神经网络处理器,其能够执行涉及算子的多个计算指令。各计算指令对应一种算子调用顺序。
一个DDR存储器。
一个MDMA片外存储器访问单元,其设置于NPU神经网络处理器的数据访问端。NPU神经网络处理器通过MDMA片外存储器访问单元读取操作或写操作DDR存储器。
一个RAM随机存储器。以及
一个SDMA片内存储器访问单元,其设置于NPU神经网络处理器的数据访问端。
NPU神经网络处理器根据当前计算指令向SDMA片内存储器访问单元发送读取操作指令。读取操作指令中包括:当前算子数据的读取地址和当前计算指令类型。
SDMA片内存储器访问单元根据算子数据的读取地址从RAM随机存储器中读取当前算子数据的数据存储区域。
SDMA片内存储器访问单元根据当前计算指令类型获取当前算子调用顺序。根据当前算子调用顺序将当前算子数据在存储区域内重新排序。以使NPU神经网络处理器执行当前计算指令时,能够通过SDMA片内存储器访问单元,从RAM随机存储器中按调用顺序连续读取算子数据。
在本发明支持多种卷积神经网络加速的存储器访问系统的再一种实施方式中,系统还包括:
NPU神经网络处理器,还配置为根据当前计算指令向SDMA片内存储器访问单元发送写操作指令。写操作指令中包括:当前算子写入数据和当前计算指令类型。
SDMA片内存储器访问单元,还配置为根据算子写入数据获取各算子的数据写入区域。及当前算子调用顺序获取当前算子写入区域。
SDMA片内存储器访问单元,还配置为根据当前计算指令类型获取当前算子写入顺序。根据当前算子写入顺序对当前算子数据的写入区域重新排序,获取重排后的当前算子数据写入区域。以使NPU神经网络处理器写入当前计算指令的算子数据时,能够通过SDMA片内存储器访问单元,根据当前算子的写入顺序顺序写入RAM随机存储器中。
在本发明支持多种卷积神经网络加速的存储器访问系统的再一种实施方式中,SDMA片内存储器访问单元,还配置为根据当前算子调用顺序及当前算子数据的存储区域获取待移动数据量。
根据待移动数据量获取读取操作指令的搬运位数。若搬运位数匹配设定搬运位数或设定搬运位数的整数倍,则通过设定搬运位数匹配的读取操作搬运待移动数据。获取重排后的当前算子数据存储区域。或
SDMA片内存储器访问单元,还配置为根据当前算子写入顺序及当前算子数据的写入区域获取待移动写入数据量。
根据待移动写入数据量获取读取操作指令的移动位数。若移动位数匹配设定移动位数或设定移动位数的整数倍,则通过设定移动位数匹配的写入操作移动待移动数据。获取重排后的当前算子数据写入区域。
下文将以明确易懂的方式,结合附图对支持多种卷积神经网络加速的存储器访问方法及系统的特性、技术特征、优点及其实现方式予以进一步说明。
附图说明
图1是用于说明在本发明一种实施方式中,MDMA片外存储器运行读取指令时的工作流程示意图。
图2是用于说明在本发明一种实施方式中,MDMA片外存储器运行写指令时的工作流程示意图。
图3是用于说明在本发明一种实施方式中,SDMA片内存储器的工作流程示意图。
图4是用于说明在本发明一种实施方式中,支持多种卷积神经网络加速的存储器访问方法的流程示意图。
图5是用于说明在本发明一种实施方式中,针对读取操作指令1的存储区域初始状态时示意图。
图6是用于说明在本发明一种实施方式中,针对读取操作指令1的存储区域变化后的示意图。
图7是用于说明在本发明一种实施方式中,针对读取操作指令2的存储区域变化示意图。
图8是用于说明在本发明一种实施方式中,针对读取操作指令3的存储区域初始状态的示意图。
图9是用于说明在本发明一种实施方式中,针对读取操作指令3的存储区域变化后状态的示意图。
具体实施方式
为了对发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式,在各图中相同的标号表示结构相同或结构相似但功能相同的部件。
在本文中,“示意性”表示“充当实例、例子或说明”,不应将在本文中被描述为“示意性”的任何图示、实施方式解释为一种更优选的或更具优点的技术方案。为使图面简洁,各图中只示意性地表示出了与本示例性实施例相关的部分,它们并不代表其作为产品的实际结构及真实比例。
本发明的第一个方面,提供了支持多种卷积神经网络加速的存储器访问方法,存储器访问方法能够实施于可重构处理器。如图1、2、3所示:
可重构处理器中设置:一个NPU神经网络处理器101,其能够执行涉及算子的多个计算指令。各计算指令对应一种算子调用顺序。
一个DDR存储器201。
一个MDMA片外存储器访问单元301,其设置于NPU神经网络处理器101的数据访问端。NPU神经网络处理器101通过MDMA片外存储器访问单元301读取操作或写操作DDR存储器201。
一个RAM随机存储器401。以及
一个SDMA片内存储器访问单元501,其设置于NPU神经网络处理器101的数据访问端。
如图4所示,支持多种卷积神经网络加速的存储器访问方法包括:
步骤S101,向SDMA片内存储器访问单元501发送读取操作指令。
本步骤中,NPU神经网络处理器101根据当前计算指令向SDMA片内存储器访问单元501发送读取操作指令。读取操作指令中包括:当前算子数据的存储地址和当前计算指令类型。
例如:如读取操作指令1中包括:当前算子A数据的存储地址为A1、当前算子B数据的存储地址为B1;当前算子C数据的存储地址为C1以及当前计算指令类型为“顺序读取”算子A、B、C的运算类型。“顺序读取”算子A、B、C的运算类型可以对应与当前计算指令类型如:“拼接运算”或“合成”等运算。
如读取操作指令2中包括:当前算子A数据的存储地址为A1、当前算子B数据的存储地址为B1;以及当前计算指令类型为“同时读取”算子A、B的运算类型。“同时读取”算子A、B的运算类型可以对应与当前计算指令类型如:“加运算”、“乘运算”或其他算子A、B具有共同依赖关系的运算类型。
如读取操作指令3中包括:当前算子A数据的存储地址为A1、当前算子B数据的存储地址为B1;以及当前计算指令类型为“转置”算子A、B的运算类型。“转置”算子A、B的运算类型可以对应与当前计算指令类型如:“转置运算”。
步骤S102,读取当前算子数据的数据存储区域。
本步骤中,SDMA片内存储器访问单元501根据算子数据的存储地址从RAM随机存储器401中读取当前算子数据的数据存储区域。
例如:从RAM随机存储器401中根据存储地址为A1读取当前算子A数据、根据存储地址为B1读取当前算子B数据。
步骤S103,获取重排后的当前算子数据存储区域。
本步骤中,SDMA片内存储器访问单元501根据当前计算指令类型获取当前算子调用顺序。根据当前算子调用顺序将当前算子数据在存储区域内重新排序。以使NPU神经网络处理器101执行当前计算指令时,能够通过SDMA片内存储器访问单元501,从RAM随机存储器401中按调用顺序连续读取算子数据。
例如:针对读取操作指令1,SDMA片内存储器访问单元501根据“顺序读取”;获取当前计算指令类型获取算子A、B、C的排列顺序为顺序。如图5中所示,为算子A、B、C起始存储区域A1、B1及C1。将存储区域A1、B1及C1内的各区域如如图5中1→2→3→4的顺序依次在存储区域A1、B1及C1内排列,最终排列为图6所示的A1、B1及C1的存储区域。
从而NPU神经网络处理器101读取操作指令1时,能够通过SDMA片内存储器访问单元501从RAM随机存储器401中的根据调用顺序连续读取算子A、B、C的数据。
例如:针对读取操作指令2,SDMA片内存储器访问单元501根据“同时读取”的当前计算指令类型获取算子A、B交错排布的顺序。如图7中所示,将算子A、B起始存储区域A10、B10内的数据按1→2→3→4→5→6的顺序在存储区域中交错排布。
从而NPU神经网络处理器101读取操作指令2时,能够通过SDMA片内存储器访问单元501从RAM随机存储器401中的当前算子数据存储区域内按调用顺序连续读取算子A、B交错的数据。
例如:针对读取操作指令3,SDMA片内存储器访问单元501根据“转置”的当前计算指令类型获取算子A、B顺序。如图8中所示,将算子A、B、C起始存储区域A10、B10、C10内的数据。存储区域A10、B10、C10内的数据转置后如图9所示。
从而NPU神经网络处理器101读取操作指令3时,能够通过SDMA片内存储器访问单元501从RAM随机存储器401中的存储区域A10、B10、C10内按调用顺序连续读取转置后的算子A、B、C的数据。
在本发明支持多种卷积神经网络加速的存储器访问方法的一种实施方式中,步骤S103中包括:
步骤S1031-1,SDMA片内存储器访问单元501根据当前算子调用顺序及当前算子数据的存储区域获取待移动数据量。
例如:对于读取操作指令1,将存储区域B10移动到A10后时,其移动量为16位数据。或对于读取操作指令1,将存储区域B10移动到A10后时,获取移动量为2位数据。
步骤S1031-2,根据待移动数据量获取读取操作指令的搬运位数。若搬运位数匹配设定搬运位数或设定搬运位数的整数倍,则通过设定搬运位数匹配的读取操作搬运待移动数据。获取重排后的当前算子数据存储区域。设定搬运位数包括8位或1位。
例如:根据待移动数据量16为。设定搬运位数为8位,16为8位的两倍,则选定设定搬运位数为8位对16为待搬运数搬运。
根据待移动数据量2为。设定搬运位数为1位,2为1位的两倍,则选定设定搬运位数为1位对2为待搬运数搬运。从而提高数据移动的效率。
在本发明支持多种卷积神经网络加速的存储器访问方法的另一种实施方式中,设定搬运位数包括8位或1位。
在本发明支持多种卷积神经网络加速的存储器访问方法的又一种实施方式中,步骤S101中还包括:
步骤S1011,NPU神经网络处理器101根据当前计算指令向SDMA片内存储器访问单元501发送写操作指令。写操作指令中包括:当前算子写入数据和当前计算指令类型。
步骤S102中还包括:
步骤S1021,SDMA片内存储器访问单元501根据算子写入数据获取各算子的数据写入区域。及当前算子调用顺序获取当前算子写入区域。
步骤S103中还包括:
步骤S1031,SDMA片内存储器访问单元501根据当前计算指令类型获取当前算子写入顺序。根据当前算子写入顺序对当前算子数据的写入区域重新排序,获取重排后的当前算子数据写入区域。以使NPU神经网络处理器101写入当前计算指令的算子数据时,能够通过SDMA片内存储器访问单元501,根据当前算子的写入顺序顺序写入RAM随机存储器401中。
上述写指令的运行方式可参照上述读取指令的示例,不再赘述。
在本发明支持多种卷积神经网络加速的存储器访问方法的再一种实施方式中,步骤S103中包括:
步骤S1032-1,SDMA片内存储器访问单元501根据当前算子写入顺序及当前算子数据的写入区域获取待移动写入数据量。
步骤S1032-2,根据待移动写入数据量获取读取操作指令的移动位数。若移动位数匹配设定移动位数或设定移动位数的整数倍,则通过设定移动位数匹配的写入操作移动待移动数据。获取重排后的当前算子数据写入区域。
在本发明支持多种卷积神经网络加速的存储器访问方法的再一种实施方式中,移动搬运位数包括8位或1位。
在本发明支持多种卷积神经网络加速的存储器访问方法的再一种实施方式中,多个计算指令包括:数据顺序读取类指令、数据同时读取类指令及矩阵转置类指令。
本发明的第二个方面,提供支持多种卷积神经网络加速的存储器访问系统,存储器访问系统能够实施于可重构处理器。可重构处理器中设置:
一个NPU神经网络处理器101,其能够执行涉及算子的多个计算指令。各计算指令对应一种算子调用顺序。
一个DDR存储器201。
一个MDMA片外存储器访问单元301,其设置于NPU神经网络处理器101的数据访问端。NPU神经网络处理器101通过MDMA片外存储器访问单元301读取操作或写操作DDR存储器201。
一个RAM随机存储器401。以及
一个SDMA片内存储器访问单元501,其设置于NPU神经网络处理器101的数据访问端。
NPU神经网络处理器101根据当前计算指令向SDMA片内存储器访问单元501发送读取操作指令。读取操作指令中包括:当前算子数据的存储地址和当前计算指令类型。
SDMA片内存储器访问单元501根据算子数据的存储地址从RAM随机存储器401中读取当前算子数据的数据存储区域。
SDMA片内存储器访问单元501根据当前计算指令类型获取当前算子调用顺序。根据当前算子调用顺序对当前算子数据的存储区域重新排序,获取重排后的当前算子数据存储区域。以使NPU神经网络处理器101执行当前计算指令时,能够通过SDMA片内存储器访问单元501,从RAM随机存储器401中按调用顺序连续读取算子数据。
在本发明支持多种卷积神经网络加速的存储器访问系统的再一种实施方式中,系统还包括:
NPU神经网络处理器101,还配置为根据当前计算指令向SDMA片内存储器访问单元501发送写操作指令。写操作指令中包括:当前算子写入数据和当前计算指令类型。
SDMA片内存储器访问单元501,还配置为根据算子写入数据获取各算子的数据写入区域。及当前算子调用顺序获取当前算子写入区域。
SDMA片内存储器访问单元501,还配置为根据当前计算指令类型获取当前算子写入顺序。根据当前算子写入顺序对当前算子数据的写入区域重新排序,获取重排后的当前算子数据写入区域。以使NPU神经网络处理器101写入当前计算指令的算子数据时,能够通过SDMA片内存储器访问单元501,根据当前算子的写入顺序顺序写入RAM随机存储器401中。
在本发明支持多种卷积神经网络加速的存储器访问系统的再一种实施方式中,SDMA片内存储器访问单元501,还配置为根据当前算子调用顺序及当前算子数据的存储区域获取待移动数据量。
根据待移动数据量获取读取操作指令的搬运位数。若搬运位数匹配设定搬运位数或设定搬运位数的整数倍,则通过设定搬运位数匹配的读取操作搬运待移动数据。获取重排后的当前算子数据存储区域。或
SDMA片内存储器访问单元501,还配置为根据当前算子写入顺序及当前算子数据的写入区域获取待移动写入数据量。
根据待移动写入数据量获取读取操作指令的移动位数。若移动位数匹配设定移动位数或设定移动位数的整数倍,则通过设定移动位数匹配的写入操作移动待移动数据。获取重排后的当前算子数据写入区域。
在本发明支持多种卷积神经网络加速的存储器访问方法的一种优选的实施方式中,包括MDMA(Memory Direct Memory Access)和SDMA(SRAM Direct Memory Access),可理解为片外内存DMA和片内内存DMA。MDMA支持gather读取数据指令/scatter写入数据指令功能,用于ddr内存与NPU计算单元的数据读写。
SDMA具有gather8一次读取8位数据指令、scatter8一次写入8位数据指令、gather1一次读取1位数据指令、scatter1一次写入1位数据指令功能,用于NPU(神经网络处理单元)内部RAM数据搬移。通过以上几种方法可以对神经网络中的数据进行传输、以及数据结构形态转变。本发明可以有效提高卷积神经网络加速器的计算效率和内存使用效率。
神经网络算法需要处理大量的数据,而DMA即直接存储器存取,是一种快速传送数据的机制。利用它数据传送时不需要CPU处理器的参与。一旦控制器初始化完成,数据开始传送,独立完成数据传送。
其中,MDMA完成内存与NPU神经网络处理器内部存储之间的搬移功能,SDMA完成concat、reshape、transpose等NPU内部数据搬移功能。MDMA用于DDR内存双倍速率同步动态随机存储器与NPU神经网络之间连续数据的操作,包括权重、原始数据、偏置以及指令。
SDMA用于NPU内部RAM之间的神经网络中间计算的数据搬移,包括concat拼接指令、reshape重排指令、transpose转置指令。
本发明通过MDMA的gather读取数据指令、scatter写入数据指令功能,SDMA的gather8、scatter8、gather1、scatter1,对神经网络中的运算数据进行相应的传输搬运,以及对数据格式的转化,以达到加速神经网络运算的目的。
MDMA用于DDR内存与NPU神经网络之间连续数据的操作,主要分为两种操作gather读取数据指令、scatter写入数据指令。gather意为收集,在设计中就是读取的意思,包括读取权重、原始数据、偏置以及指令。如附图1所示,NPU作为控制单元对MDMA发送读命令,例如读取权重(load-w)命令、读取数据(load-d)命令,读取偏置数据(load-m),读取指令数据(load-i)。scatter写入数据指令意为发散的意思,在设计中就是写操作,就是将计算结果写回DDR内存中。如附图2,NPU向MDMA发送写命令,并将写数据送到MDMA。MDMA收到写命令后,将数据写入内存中对应的地址中。
SDMA用于用于NPU内部RAM之间的神经网络中间计算的数据搬移。方法有gather8一次读取8位数据指令、scatter写入数据指令8、gather读取1、scatter写入数据指令1。gather8和scatter写入数据指令8操作的最小数据粒度为8byte,即读、写一次,最小数据是8byte。同理,gather1和scatter写入数据指令1操作的最小数据粒度为1byte。工作流程如附图3所示。
gather8一次读取8位数据指令、scatter写入数据指令8、gather读取1、scatter写入数据指令1用于内部RAM数据的搬移,由于某些运算对数据存储有特殊要求,需要对现有存储数据进行重新存储,以便于运算。常用的搬运方式有concat、reshape、transpose,分别如图5~图9所示。
应当理解,虽然本说明书是按照各个实施方式中描述的,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (10)
1.支持多种卷积神经网络加速的存储器访问方法,其特征在于,所述存储器访问方法能够实施于可重构处理器;所述可重构处理器中设置:
一个NPU神经网络处理器,其能够执行涉及算子的多个计算指令;各计算指令对应一种算子调用顺序;
一个DDR存储器;
一个MDMA片外存储器访问单元,其设置于所述NPU神经网络处理器的数据访问端;所述NPU神经网络处理器通过所述MDMA片外存储器访问单元读取操作或写操作所述DDR存储器;
一个RAM随机存储器;以及
一个SDMA片内存储器访问单元,其设置于所述NPU神经网络处理器的数据访问端;所述支持多种卷积神经网络加速的存储器访问方法包括:
步骤S101,所述NPU神经网络处理器根据当前计算指令向所述SDMA片内存储器访问单元发送读取操作指令;所述读取操作指令中包括:当前算子数据的读取地址和当前计算指令类型;
步骤S102,所述SDMA片内存储器访问单元根据所述算子数据的读取地址从所述RAM随机存储器中读取当前算子数据的数据存储区域;
步骤S103,所述SDMA片内存储器访问单元根据所述当前计算指令类型获取当前算子调用顺序;根据当前算子调用顺序将当前算子数据在存储区域内重新排序;以使所述NPU神经网络处理器执行所述当前计算指令时,能够通过所述SDMA片内存储器访问单元,从所述RAM随机存储器中按调用顺序连续读取所述算子数据。
2.根据权利要求1所述的存储器访问方法,其特征在于,所述步骤S103中包括:
步骤S1031-1,所述SDMA片内存储器访问单元根据所述当前算子调用顺序及所述当前算子数据的存储区域获取待移动数据量;
步骤S1031-2,根据所述待移动数据量获取读取操作指令的搬运位数;若所述搬运位数匹配设定搬运位数或所述设定搬运位数的整数倍,则通过设定搬运位数匹配的读取操作搬运待移动数据;获取重排后的当前算子数据存储区域。
3.根据权利要求2所述的存储器访问方法,其特征在于,所述设定搬运位数包括8位或1位。
4.根据权利要求1或2所述的存储器访问方法,其特征在于,所述步骤S101中还包括:
步骤S1011,所述NPU神经网络处理器根据当前计算指令向所述SDMA片内存储器访问单元发送写操作指令;所述写操作指令中包括:当前算子写入数据和当前计算指令类型;所述步骤S102中还包括:
步骤S1021,所述SDMA片内存储器访问单元根据所述算子写入数据获取各算子的数据写入区域;及所述当前算子调用顺序获取当前算子写入区域;
所述步骤S103中还包括:
步骤S1031,所述SDMA片内存储器访问单元根据所述当前计算指令类型获取当前算子写入顺序;根据所述当前算子写入顺序对所述当前算子数据的写入区域重新排序,获取重排后的当前算子数据写入区域;以使所述NPU神经网络处理器写入所述当前计算指令的算子数据时,能够通过所述SDMA片内存储器访问单元,根据当前算子的写入顺序顺序写入所述RAM随机存储器中。
5.根据权利要求1所述的存储器访问方法,其特征在于,所述步骤S103中包括:
步骤S1032-1,所述SDMA片内存储器访问单元根据所述当前算子写入顺序及所述当前算子数据的写入区域获取待移动写入数据量;
步骤S1032-2,根据所述待移动写入数据量获取读取操作指令的移动位数;若所述移动位数匹配设定移动位数或所述设定移动位数的整数倍,则通过设定移动位数匹配的写入操作移动待移动数据;获取重排后的当前算子数据写入区域。
6.根据权利要求5所述的存储器访问方法,其特征在于,所述移动搬运位数包括8位或1位。
7.根据权利要求1所述的存储器访问方法,其特征在于,所述多个计算指令包括:数据顺序读取类指令、数据同时读取类指令及矩阵转置类指令。
8.支持多种卷积神经网络加速的存储器访问系统,其特征在于,所述存储器访问系统能够实施于可重构处理器;所述可重构处理器中设置:
一个NPU神经网络处理器,其能够执行涉及算子的多个计算指令;各计算指令对应一种算子调用顺序;
一个DDR存储器;
一个MDMA片外存储器访问单元,其设置于所述NPU神经网络处理器的数据访问端;所述NPU神经网络处理器通过所述MDMA片外存储器访问单元读取操作或写操作所述DDR存储器;
一个RAM随机存储器;以及
一个SDMA片内存储器访问单元,其设置于所述NPU神经网络处理器的数据访问端;
所述NPU神经网络处理器根据当前计算指令向所述SDMA片内存储器访问单元发送读取操作指令;所述读取操作指令中包括:当前算子数据的读取地址和当前计算指令类型;
所述SDMA片内存储器访问单元根据所述算子数据的读取地址从所述RAM随机存储器中读取当前算子数据的数据存储区域;
所述SDMA片内存储器访问单元根据所述当前计算指令类型获取当前算子调用顺序;根据当前算子调用顺序将当前算子数据在存储区域内重新排序;以使所述NPU神经网络处理器执行所述当前计算指令时,能够通过所述SDMA片内存储器访问单元,从所述RAM随机存储器中按调用顺序连续读取所述算子数据。
9.根据权利要求8所述的存储器访问系统,其特征在于,所述系统还包括:
所述NPU神经网络处理器,还配置为根据当前计算指令向所述SDMA片内存储器访问单元发送写操作指令;所述写操作指令中包括:当前算子写入数据和当前计算指令类型;
所述SDMA片内存储器访问单元,还配置为根据所述算子写入数据获取各算子的数据写入区域;及所述当前算子调用顺序获取当前算子写入区域;
所述SDMA片内存储器访问单元,还配置为根据所述当前计算指令类型获取当前算子写入顺序;根据所述当前算子写入顺序对所述当前算子数据的写入区域重新排序,获取重排后的当前算子数据写入区域;以使所述NPU神经网络处理器写入所述当前计算指令的算子数据时,能够通过所述SDMA片内存储器访问单元,根据当前算子的写入顺序顺序写入所述RAM随机存储器中。
10.根据权利要求9所述的存储器访问系统,其特征在于:
所述SDMA片内存储器访问单元,还配置为根据所述当前算子调用顺序及所述当前算子数据的存储区域获取待移动数据量;
根据所述待移动数据量获取读取操作指令的搬运位数;若所述搬运位数匹配设定搬运位数或所述设定搬运位数的整数倍,则通过设定搬运位数匹配的读取操作搬运待移动数据;获取重排后的当前算子数据存储区域;或
所述SDMA片内存储器访问单元,还配置为根据所述当前算子写入顺序及所述当前算子数据的写入区域获取待移动写入数据量;
根据所述待移动写入数据量获取读取操作指令的移动位数;若所述移动位数匹配设定移动位数或所述设定移动位数的整数倍,则通过设定移动位数匹配的写入操作移动待移动数据;获取重排后的当前算子数据写入区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640088.5A CN112712167B (zh) | 2020-12-31 | 2020-12-31 | 支持多种卷积神经网络加速的存储器访问方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640088.5A CN112712167B (zh) | 2020-12-31 | 2020-12-31 | 支持多种卷积神经网络加速的存储器访问方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112712167A true CN112712167A (zh) | 2021-04-27 |
CN112712167B CN112712167B (zh) | 2024-07-05 |
Family
ID=75547976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011640088.5A Active CN112712167B (zh) | 2020-12-31 | 2020-12-31 | 支持多种卷积神经网络加速的存储器访问方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112712167B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023134360A1 (zh) * | 2022-01-14 | 2023-07-20 | 哲库科技(上海)有限公司 | 一种数据处理方法及装置、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105429958A (zh) * | 2015-10-30 | 2016-03-23 | 武汉华茂工业自动化有限公司 | 一种基于Android开发的企业应用平台系统 |
CN107301455A (zh) * | 2017-05-05 | 2017-10-27 | 中国科学院计算技术研究所 | 用于卷积神经网络的混合立方体存储系统及加速计算方法 |
CN108256643A (zh) * | 2016-12-29 | 2018-07-06 | 上海寒武纪信息科技有限公司 | 一种基于hmc的神经网络运算装置和方法 |
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
CN110187835A (zh) * | 2019-05-24 | 2019-08-30 | 北京百度网讯科技有限公司 | 用于管理访问请求的方法、装置、设备和存储介质 |
CN111401541A (zh) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | 一种数据传输控制方法及装置 |
-
2020
- 2020-12-31 CN CN202011640088.5A patent/CN112712167B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105429958A (zh) * | 2015-10-30 | 2016-03-23 | 武汉华茂工业自动化有限公司 | 一种基于Android开发的企业应用平台系统 |
CN108256643A (zh) * | 2016-12-29 | 2018-07-06 | 上海寒武纪信息科技有限公司 | 一种基于hmc的神经网络运算装置和方法 |
US20180307984A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Dynamic distributed training of machine learning models |
CN107301455A (zh) * | 2017-05-05 | 2017-10-27 | 中国科学院计算技术研究所 | 用于卷积神经网络的混合立方体存储系统及加速计算方法 |
CN110187835A (zh) * | 2019-05-24 | 2019-08-30 | 北京百度网讯科技有限公司 | 用于管理访问请求的方法、装置、设备和存储介质 |
CN111401541A (zh) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | 一种数据传输控制方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023134360A1 (zh) * | 2022-01-14 | 2023-07-20 | 哲库科技(上海)有限公司 | 一种数据处理方法及装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112712167B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220012598A1 (en) | Methods and apparatus for matrix and vector storage and operations | |
CN111897579B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
CN113139648B (zh) | 执行神经网络模型的pim架构的数据布局优化 | |
CN110991634B (zh) | 人工智能加速器、设备、芯片及数据处理方法 | |
KR102028252B1 (ko) | 자율 메모리 아키텍처 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
CN112840356A (zh) | 运算加速器、处理方法及相关设备 | |
CN111630505B (zh) | 深度学习加速器系统及其方法 | |
KR101747966B1 (ko) | 자율 서브시스템 아키텍처 | |
CN103927270B (zh) | 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN110991630A (zh) | 一种面向边缘计算的卷积神经网络处理器 | |
CN116185937B (zh) | 基于众核处理器多层互联架构的二元运算访存优化方法及装置 | |
WO2016024508A1 (ja) | マルチプロセッサ装置 | |
CN112712167A (zh) | 支持多种卷积神经网络加速的存储器访问方法及系统 | |
CN114897133A (zh) | 一种通用可配置的Transformer硬件加速器及其实现方法 | |
CN116171431A (zh) | 用于加速器中多个并行数据路径通道的存储体式存储器架构 | |
CN114968362B (zh) | 异构融合计算指令集以及使用方法 | |
CN113128688B (zh) | 通用型ai并行推理加速结构以及推理设备 | |
CN117216459A (zh) | 卷积运算方法、卷积运算装置、电子设备及存储介质 | |
CN116415100A (zh) | 业务处理方法、装置、处理器及计算设备 | |
CN112639747A (zh) | 处理器的寻址方法、处理器、可移动平台和电子设备 | |
CN112906877A (zh) | 用于执行神经网络模型的存储器架构中的数据布局有意识处理 | |
CN111045965B (zh) | 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质 | |
CN115129233B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |