CN114492775A - 一种数据处理方法、装置、神经网络加速器及存储介质 - Google Patents
一种数据处理方法、装置、神经网络加速器及存储介质 Download PDFInfo
- Publication number
- CN114492775A CN114492775A CN202210039160.1A CN202210039160A CN114492775A CN 114492775 A CN114492775 A CN 114492775A CN 202210039160 A CN202210039160 A CN 202210039160A CN 114492775 A CN114492775 A CN 114492775A
- Authority
- CN
- China
- Prior art keywords
- neural network
- module
- layer
- data processing
- address
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 133
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 230000015654 memory Effects 0.000 claims abstract description 80
- 238000004364 calculation method Methods 0.000 claims abstract description 78
- 238000013507 mapping Methods 0.000 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 18
- 230000001133 acceleration Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、神经网络加速器及存储介质,数据处理装置包括:神经网络处理模块、内存分配模块,以及与神经网络处理模块和内存分配模块连接的存储模块;神经网络处理模块,用于执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至存储模块;内存分配模块,用于持续获取存储模块中空闲的物理地址,生成空闲的物理地址与虚拟地址之间的地址映射信息,并依次为预设神经网络中每个计算层分配对应的虚拟地址空间;存储模块,用于基于虚拟地址空间的虚拟地址和地址映射信息,将预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
Description
技术领域
本申请实施例涉及数据缓存技术领域,尤其涉及一种数据处理方法、装置、神经网络加速器及存储介质。
背景技术
人工智能算法较为复杂,通常一个场景需要多个算法进行叠加才能完成,而一个算法也通常由多级计算层来实现,计算层可以分为张量类和向量类。
在通用神经网络加速器中,不同类型的计算层被分配到不同的计算引擎中进行计算,对于每一个计算层,其需要输入特征图像数据和权重数据,并在计算完成之后送回到存储空间中存储,所以对于每一个计算层,需要在存储空间中分配一段物理地址供其进行数据缓冲。
目前,主要采用微型控制单元以软件的方式进行计算层的物理地址分配,实现数据管理,但是管理的粒度主要是针对一个任务,举例来说,如果目前运行的场景是处理视频流,处理速度是60帧/秒,那么对于每一帧的数据,处理时间大概是16ms,所以,在处理每帧数据时,可以进行动态的地址分配,根据一帧数据经过所有的算法层所需要的存储空间大小进行地址分配,等这一帧数据处理完成处理完成好之后,回收这个物理地址,在处理下一帧数据时,再进行动态空间的分配。
然而,上述数据存储管理的方案,效率较低,灵活性差。
发明内容
本申请实施例提供一种数据处理方法、装置、神经网络加速器及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种数据处理装置,包括:神经网络处理模块、内存分配模块,以及与所述神经网络处理模块和所述内存分配模块连接的存储模块;
所述神经网络处理模块,用于执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至所述存储模块;
所述内存分配模块,用于持续获取所述存储模块中空闲的物理地址,,并从依次为所述预设神经网络中每个计算层分配对应的虚拟地址空间;
所述存储模块,用于基于所述虚拟地址空间的虚拟地址和所述地址映射信息,将所述预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
在上述数据处理装置中,所述神经网络处理模块,用于:
获取根据所述预设神经网络中计算层的执行顺序设定的执行指令;
按照所述执行指令,依次执行所述预设神经网络中每个计算层,得到每个计算层对应的计算结果。
在上述数据处理装置中,还包括:地址映射模块,所述地址映射模块,与所述神经网络处理模块、所述存储模块,以及所述内存分配模块连接;
所述神经网络处理模块,用于将所述预设神经网络中每个计算层对应的标识和计算结果传输至所述地址映射模块;
所述内存分配模块,用于将所述地址映射信息,以及所述预设神经网络中,每个计算层对应的虚拟地址空间的虚拟地址传输至所述地址映射模块;
所述地址映射模块,用于针对所述预设神经网络中每个计算层,根据对应的标识和对应的虚拟地址空间的虚拟地址,结合所述地址映射信息,确定对应的物理地址,并将对应的计算结果传输至对应的物理地址上。
在上述数据处理装置中,所述内存分配模块,还用于:
获取所述预设神经网络中计算层的执行顺序,以及每个计算层需求的存储大小;
按照所述执行顺序,依次为每个计算层分配与需求的存储大小匹配的虚拟地址空间。
在上述数据处理装置中,所述内存分配模块,用于:
在初始时刻,将所述存储模块中当前存在的空闲的物理地址以链表的方式连接在一起,形成空闲链表;
从所述空闲链表中,按照所述预设神经网络中计算层的执行顺序,根据每个计算层的存储大小,依次针对每个计算层拆分出一段链表,并实时回收所述存储模块中释放的物理地址作为新增的空闲的物理地址,添加至所述空闲链表的尾部,以更新所述空闲链表,直至每个计算层均得到对应的一段链表;
将每一段链表包含的物理地址对应的虚拟地址空间分配给所述预设神经网络中对应的计算层。
在上述数据处理装置中,所述内存分配模块,还用于:
获取所述预设神经网络中每个计算层对应的释放指令;
针对所述预设神经网络中每个计算层,按照对应的释放指令指示的释放时刻控制所述存储模块上对应的物理地址释放。
本申请实施例提供了一种数据处理方法,应用于数据处理装置,所述数据处理装置包括:神经网络处理模块、内存分配模块,以及与所述神经网络处理模块和所述内存分配模块连接的存储模块,所述方法包括:
利用所述神经网络处理模块,执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至所述存储模块;
利用所述内存分配模块,持续获取所述存储模块中空闲的物理地址,生成所述空闲的物理地址与虚拟地址之间的地址映射信息,并依次为所述预设神经网络中每个计算层分配对应的虚拟地址空间;
利用所述存储模块,基于所述虚拟地址空间的虚拟地址和所述地址映射信息,将所述预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
本申请实施例提供了一种神经网络加速器,包括上述数据处理装置。
本申请实施例提供了一种数据处理装置,包括:处理器、存储器和通信总线;
所述通信总线,用于实现所述处理器与所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的一个或多个程序,以实现上述数据处理方法。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
本申请实施例提供了一种数据处理方法、装置、神经网络加速器及存储介质,数据处理装置包括:神经网络处理模块、内存分配模块,以及与神经网络处理模块和内存分配模块连接的存储模块;神经网络处理模块,用于执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至存储模块;内存分配模块,用于持续获取存储模块中空闲的物理地址,生成空闲的物理地址与虚拟地址之间的地址映射信息,并依次为预设神经网络中每个计算层分配对应的虚拟地址空间;存储模块,用于基于虚拟地址空间的虚拟地址和地址映射信息,将预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。本申请实施例提供的技术方案,基于硬件的存储空间管理,针对每个计算层分别分配对应的物理地址用于存储计算结果,提高了数据存储管理的效率和灵活性。
附图说明
图1为本申请实施例提供的一种数据处理装置的结构示意图一;
图2为本申请实施例提供的一种数据处理装置的结构示意图二;
图3为本申请实施例提供的一种示例性的物理地址分配示意图;
图4为本申请实施例提供的一种示例性的各种链表的示意图;
图5(a)为本申请实施例提供的一种示例性的链表状态示意图一;
图5(b)为本申请实施例提供的一种示例性的链表状态示意图二;
图5(c)为本申请实施例提供的一种示例性的链表状态示意图三;
图5(d)为本申请实施例提供的一种示例性的链表状态示意图四;
图6为本申请实施例提供的一种数据处理方法的流程示意图;
图7为本申请实施例提供的一种数据处理装置的结构示意图三。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供了一种数据处理装置。图1为本申请实施例提供的一种数据处理装置的结构示意图一。如图1所示,在本申请的实施例中,数据处理装置包括:神经网络处理模块10、内存分配模块11,以及与神经网络处理模块10和内存分配模块11连接的存储模块12;
神经网络处理模块10,用于执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至存储模块12;
内存分配模块11,用于持续获取存储模块12中空闲的物理地址,生成所述空闲的物理地址与虚拟地址之间的地址映射信息,并依次为预设神经网络中每个计算层分配对应的虚拟地址空间;
存储模块12,用于基于虚拟地址空间的虚拟地址和地址映射信息,将预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
需要说明的是,在本申请的实施例中,预设神经网络具体可以是任意设定的智能算法网络,其中,可以包括多个算子层,而多个算子层中可以包括不同类型的算子层,例如,张量类的算子层和向量类的算子层,具体的预设神经网络可以根据实际需求和应用场景设定,本申请实施例不作限定。
需要说明的是,在本申请的实施例中,图2为本申请实施例提供的一种数据处理装置的结构示意图二。如图2所示,神经网络处理模块10具体可以包括张量加速引擎和向量加速引擎,其中,张量加速引擎用于执行预设神经网络中为张量类的计算层,向量加速引擎用于执行预设神经网络中为向量类的计算层。此外,神经网络处理模块10还包括直接存储器访问控制单元,以支持进行数据传输、数据交换。
具体的,在本申请的实施例中,神经网络处理模块10,用于:
获取根据预设神经网络中计算层的执行顺序设定的执行指令;
按照执行指令,依次执行预设神经网络中每个计算层,得到每个计算层对应的计算结果。
可以理解的是,在本申请的实施例中,可以预先在编译器端对预设神经网络进行分析,从而计算得到预设神经网络中每个计算层需求的存储大小和生命周期,并基于分析得到的这些信息,生成命令序列表,如以下表1所示。编译器端可以将其中的关于计算层执行的相关指令,依次下发给神经网络处理器10,这些指令即执行指令,神经网络处理模块10在获得执行指令的情况下,即可按照执行指令,依次执行各个计算层。
表一
需要说明的是,在本申请的实施例中,数据处理装置中设置有独立的用于实现对存储模块12中空闲的物理地址进行虚拟地址映射,以及为预设神经网络中每个计算层分配虚拟地址空间的内存分配模块11,这样,基于内存分配模块11得到的这些信息,存储模块13将每个计算层对应的计算结果,均可以单独存储到对应的物理地址上,从而可以支持灵活的进行各个计算层对应的计算结果的调用。
具体的,在本申请的实施例中,如图2所示,数据处理装置还包括:地址映射模块13,地址映射模块13,与神经网络处理模块10、存储模块12,以及内存分配模块11连接;
神经网络处理模块10,用于将预设神经网络中每个计算层对应的标识和计算结果传输至地址映射模块13;
内存分配模块11,用于将地址映射信息,以及预设神经网络中,每个计算层对应的虚拟地址空间的虚拟地址传输至地址映射模块13;
地址映射模块13,用于针对预设神经网络中每个计算层,根据对应的标识和对应的虚拟地址空间的虚拟地址,结合地址映射信息,确定对应的物理地址,并将对应的计算结果传输至对应的物理地址上。
需要说明的是,在本申请的实施例中,如以下表二所示,空闲的物理地址与虚拟地址之间存在对应关系,即为地址映射信息,并且,每个计算层还分配有对应的虚拟地址空间,从而计算层也与虚拟地址空间的虚拟地址存在对应关系。
表二
计算层 | 虚拟地址 | 物理地址 |
layer1 | 起始地址1 | 多个离散物理地址的链接 |
layer2 | 起始地址2 | 多个离散物理地址的链接 |
…… | …… | …… |
以下结合上述表一和表二,对数据处理装置中实现计算层结果存储的具体方式进行详述。
在本申请的实施例中,如表1所示,首先对于每一个计算层而言,执行之前需要先把源数据加载到神经网络处理模块10中相应加速引擎的工作寄存器中,所以指令中需要告知本计算层所依赖的前一层计算层对应的标识,由于预设神经网络中每一个计算层的源数据都依赖于前一层的计算结果,所以告知当前计算层其前一层的计算层对应的标识,地址映射模块13根据神经网络处理模块10提供的标识可以从表二中查找对应的物理地址,从而从该物理地址上获取到对应的计算结果,提供给神经网络处理模块10以用于执行当前计算层。第二条指令是在得到源数据之后,开始执行计算层1,第三条指令是把计算层1所生成的计算结果写入存储模块12,在执行这条指令的时候,神经网络处理模块10可以将计算层1对应的计算结果和计算层对应的标识都传输至地址映射模块13,地址映射模块13从而根据标识和虚拟地址空间的虚拟地址,结合表二,确定计算层1对应的物理地址,从而将计算层1对应的计算结果写入到存储模块12中对应的物理地址上进行存储。
需要说明的是,在本申请的实施例中,可以预先在编译器端对预设神经网络进行分析,从而计算得到预设神经网络中每个计算层需求的存储大小,以表格的形式记录,生成计算层尺寸表,内存分配模块11通过利用该表格,生成上述地址映射信息和分配虚拟地址空间。示例性的,每个计算层需求的存储大小以下表三所示。
表三
以下对数据处理装置中内存分配模块11的相关功能进行详述。
具体的,在本申请的实施例中,内存分配模块11,还用于:
获取预设神经网络中计算层的执行顺序,以及每个计算层需求的存储大小;
按照执行顺序,依次为每个计算层分配与需求的存储大小匹配的虚拟地址空间。
可以理解的是,在本申请的实施例中,如上述介绍表三所述,内存分配模块11可以获取到预设神经网络中每个计算层需求的存储大小,此外,内存分配模块11还可以获取到每个计算层的执行顺序,从而按照执行顺序,依次进行虚拟地址空间的分配。
具体的,在本申请的实施例中内存分配模块11,用于:
在初始时刻,将存储模块12中当前存在的空闲的物理地址以链表的方式连接在一起,形成空闲链表;
从空闲链表中,按照预设神经网络中计算层的执行顺序,根据每个计算层的存储大小,依次针对每个计算层拆分出一段链表,并实时回收存储模块12中释放的物理地址作为新增的空闲的物理地址,添加至空闲链表的尾部,以更新空闲链表,直至每个计算层均得到对应的一段链表;
将每一段链表包含的物理地址对应的虚拟地址空间分配给预设神经网络中对应的计算层。
内存分配模块11,还用于:
获取预设神经网络中每个计算层对应的释放指令;
针对预设神经网络中每个计算层,按照对应的释放指令指示的释放时刻控制存储模块12上对应的物理地址释放。
需要说明的是,在本申请的实施例中,内存分配模块11还管理了计算层对应物理地址的释放和回收。例如,表一中的第4~6条指令与1~3条的指令执行机制一致,对于每一个计算层来说,内存分配模块11为其分配的物理地址都有一个生命周期,所以对于计算层1来说,其生命周期在表一中的第七条指令结束,需要进行物理地址的释放,内存分配模块11可以获取到指示释放计算结果的释放指令,从而将物理地址中存储的计算结果删除,从而回收物理地址,作为新的空闲的物理地址再进行利用。
示例性的,如图3所示,在初始时刻,即第一个时刻,存储模块12包括的全部物理地址中零散的空闲的物理地址组成一段连续的空闲链表,分配给三个计算层,分别是计算层1,计算层2和计算层3,一段链表包含的物理地址实际上就对应了一部分离散的空闲的物理地址,对于实际的人工智能网络来说,每一个计算层在存储模块12中所占用的物理地址都有一个生命周期,也就是说,如图3所示,计算层1的生命周期持续了三个时刻,而计算层2的生命周期持续了两个时刻就被回收掉了,而计算层3所占用的物理地址只持续了一个时刻,所以在第二个时刻,计算层3所占用的物理地址被回收,计算层4的物理地址被分配。在第三个时刻,计算层2的生命周期结束,计算层5的物理地址被分配。
需要说明的是,在本申请的实施例中,内存分配模块11在分配每个计算层对应的物理地址时,可以先将预设神经网络中的计算层进行分组,针对每一组的计算层分配对应的物理地址,每个计算层对应的物理地址,即其归属的一组计算层对应的物理地址,也就是说,同一组计算层对应的物理地址可以相同。
需要说明的是,在本申请的实施例中,内存分配模块11以链表的方式管理空闲的物理地址,以及各个计算层对应的物理地址。如图4所示,内存分配模块11具体可以管理空闲链表,计算层1地址链表,计算层2地址链表……每一个链表根据当前的空间的申请和释放的情况进行更新,主要包括了链表头和链表的内容,其中,每个链表的链表头以虚线箭头指示。
示例性的,如图5(a)所示,在初始时刻,即第一个时刻,内存分配模块11可以将片上存储上当前存在的空闲的物理地址以链表的方式连接在一起,形成空闲链表,其中,链表头即指示在空闲链表的第一个地址。
如图5(b)所示,在第二个时刻,计算层1需要申请一个三个单位的物理地址,此时,可以将空闲链表的链表头指向第四个地址,并将空闲链表中前三个地址组成的一段链表拆分出来,其包含的物理地址作为计算层1对应的物理地址,用于存储计算层1对应的计算结果。
如图5(c)所示,在第三个时刻,计算层1使用过三个单位的物理地址需要释放从而回收,而计算层2需要申请两个单位的物理地址,那么需要把计算层1释放的三个物理地址通过链接的方式连接到空闲链表的尾部。对于计算层2所需要申请的两个单位的物理地址,在申请成功之后,需要把空闲链表的链表头再向后移动两个单位。
如图5(d)所示,在第四个时刻,计算层2需要释放一个单位的物理地址,计算层3需要分配一个单位的物理地址,所以将计算层2回收掉的一个单位的物理地址添加到空闲链表的尾部,而对于计算层3新分配的物理地址,需要在空闲链表中调整链表头的位置,向后移动一个单位。
可以理解的是,在本申请的实施例中,通过链表的动态管理,结合表三中每一个计算层需求的存储大小,内存分配模块11可以实时管理存储模块12中的空间。
需要说明的是,在本申请的实施例中,数据处理装置不仅包括上述神经网络处理模块10、内存分配模块11、存储模块12和地址映射模块13,还可以包括数字信号处理模块14,数字信号处理模块14,可以用于执行一些不适合专用电路实现的算法。
本申请实施例提供了一种数据处理装置,包括:神经网络处理模块、内存分配模块,以及与神经网络处理模块和内存分配模块连接的存储模块;神经网络处理模块,用于执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至存储模块;内存分配模块,用于持续获取存储模块中空闲的物理地址,生成空闲的物理地址与虚拟地址之间的地址映射信息,并依次为预设神经网络中每个计算层分配对应的虚拟地址空间;存储模块,用于基于虚拟地址空间的虚拟地址和地址映射信息,将预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。本申请实施例提供的数据处理装置,基于硬件的存储空间管理,针对每个计算层分别分配对应的物理地址用于存储计算结果,提高了数据存储管理的效率和灵活性。
本申请实施例提供了一种数据处理方法,应用于上述数据处理装置。图6为本申请实施例提供的一种数据处理方法的流程示意图。如图6所示,数据处理方法主要包括以下步骤:
S201、利用神经网络处理模块,执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至存储模块。
在本申请的实施例中,数据处理装置可以利用包括的神经网络处理模块10,执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至存储模块12。
需要说明的是,在本申请的实施例中,神经网络处理模块10具体可以包括张量加速引擎和向量加速引擎,数据处理装置具体利用神经网络处理模块10中张量加速引擎执行预设神经网络中为张量类的计算层,利用向量加速引擎执行预设向量类的计算层。数据处理装置可以为神经网络处理模块10,提供对预设神经网络进行分析,生成执行指令,这样,神经网络处理模块10在获得执行指令之后,即可按照执行指令执行计算层。
S202、利用内存分配模块,持续获取存储模块中空闲的物理地址,生成所述空闲的物理地址与虚拟地址之间的地址映射信息,并依次为预设神经网络中每个计算层分配对应的虚拟地址空间。
在本申请的实施例中,数据处理装置利用内存分配模块11,持续获取存储模块12中的空闲的物理地址,生成所述空闲的物理地址与虚拟地址之间的地址映射信息,并依次为预设神经网络中每个计算层分配对应的虚拟地址空间。
需要说明的是,在本申请的实施例中,内存分配模块11在初始时刻可以收集存储模块12中的空闲的物理地址,并将空闲的物理地址组成空闲链表,从而从空闲链表中,按照计算层的执行顺序,结合每个计算层需求的存储大小,依次为每个计算层分配一段链表,确定每个计算层对应的虚拟地址空间。数据处理装置中内存分配模块11还可以进行物理地址回收,作为新的空闲的物理地址。每个计算层对应的计算结果的存储都有生命周期,内存分配模块11可以在持续回收不需要再继续存储计算结果的计算层对应的物理地址,作为新的空闲的物理地址,添加到空闲链表的尾部,更新空闲链表。
S203、利用存储模块,基于虚拟地址空间的虚拟地址和地址映射信息,将预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
在本申请的实施例中,数据处理装置利用存储模块12,基于虚拟地址空间的虚拟地址和地址映射信息,将预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
可以理解的是,在本申请的实施例中,在为每个计算层分配有对应的虚拟地址空间,且生成虚拟地址与空闲的物理地址之间的地址映射信息的情况下,即可在针对每个计算层利用地址映射信息,确定其对应的虚拟地址空间的虚拟地址对应的物理地址,从而将其计算结果存储到该物理地址上。
本申请实施例提供了一种数据处理装置。图7为本申请实施例提供的一种数据处理装置的结构示意图三。如图7所示,数据处理装置包括:处理器301、存储器302和通信总线303;
所述通信总线303,用于实现所述处理器301与所述存储器302之间的通信连接;
所述处理器301,用于执行所述存储器302中存储的一个或多个程序,以实现上述数据处理方法。
本申请实施例还提供了一种神经网络加速器,该神经网络加速器包括上述数据处理装置,从而可以执行相应的数据处理方法。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。计算机可读存储介质可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理装置,其特征在于,包括:神经网络处理模块、内存分配模块,以及与所述神经网络处理模块和所述内存分配模块连接的存储模块;
所述神经网络处理模块,用于执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至所述存储模块;
所述内存分配模块,用于持续获取所述存储模块中空闲的物理地址,生成所述空闲的物理地址与虚拟地址之间的地址映射信息,并依次为所述预设神经网络中每个计算层分配对应的虚拟地址空间;
所述存储模块,用于基于所述虚拟地址空间的虚拟地址和所述地址映射信息,将所述预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
2.根据权利要求1所述的数据处理装置,其特征在于,
所述神经网络处理模块,用于:
获取根据所述预设神经网络中计算层的执行顺序设定的执行指令;
按照所述执行指令,依次执行所述预设神经网络中每个计算层,得到每个计算层对应的计算结果。
3.根据权利要求1所述的数据处理装置,其特征在于,还包括:地址映射模块,所述地址映射模块,与所述神经网络处理模块、所述存储模块,以及所述内存分配模块连接;
所述神经网络处理模块,用于将所述预设神经网络中每个计算层对应的标识和计算结果传输至所述地址映射模块;
所述内存分配模块,用于将所述地址映射信息,以及所述预设神经网络中,每个计算层对应的虚拟地址空间的虚拟地址传输至所述地址映射模块;
所述地址映射模块,用于针对所述预设神经网络中每个计算层,根据对应的标识和对应的虚拟地址空间的虚拟地址,结合所述地址映射信息,确定对应的物理地址,并将对应的计算结果传输至对应的物理地址上。
4.根据权利要求1所述的数据处理装置,其特征在于,
所述内存分配模块,还用于:
获取所述预设神经网络中计算层的执行顺序,以及每个计算层需求的存储大小;
按照所述执行顺序,依次为每个计算层分配与需求的存储大小匹配的虚拟地址空间。
5.根据权利要求4所述的数据处理装置,其特征在于,
所述内存分配模块,用于:
在初始时刻,将所述存储模块中当前存在的空闲的物理地址以链表的方式连接在一起,形成空闲链表;
从所述空闲链表中,按照所述预设神经网络中计算层的执行顺序,根据每个计算层的存储大小,依次针对每个计算层拆分出一段链表,并实时回收所述存储模块中释放的物理地址作为新增的空闲的物理地址,添加至所述空闲链表的尾部,以更新所述空闲链表,直至每个计算层均得到对应的一段链表;
将每一段链表包含的物理地址对应的虚拟地址空间分配给所述预设神经网络中对应的计算层。
6.根据权利要求1或5所述的数据处理装置,其特征在于,
所述内存分配模块,还用于:
获取所述预设神经网络中每个计算层对应的释放指令;
针对所述预设神经网络中每个计算层,按照对应的释放指令指示的释放时刻控制所述存储模块上对应的物理地址释放。
7.一种数据处理方法,其特征在于,应用于数据处理装置,所述数据处理装置包括:神经网络处理模块、内存分配模块,以及与所述神经网络处理模块和所述内存分配模块连接的存储模块,所述方法包括:
利用所述神经网络处理模块,执行预设神经网络中每个计算层,并将每个计算层对应的计算结果传输至所述存储模块;
利用所述内存分配模块,持续获取所述存储模块中空闲的物理地址,生成所述空闲的物理地址与虚拟地址之间的地址映射信息,并依次为所述预设神经网络中每个计算层分配对应的虚拟地址空间;
利用所述存储模块,基于所述虚拟地址空间的虚拟地址和所述地址映射信息,将所述预设神经网络中每个计算层对应的计算结果,存储到对应的物理地址上。
8.一种神经网络加速器,其特征在于,包括如权利要求1-6中的任一项所述的数据处理装置。
9.一种数据处理装置,其特征在于,包括:处理器、存储器和通信总线;
所述通信总线,用于实现所述处理器与所述存储器之间的通信连接;
所述处理器,用于执行所述存储器中存储的一个或多个程序,以实现权利要求7所述的数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求7所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210039160.1A CN114492775A (zh) | 2022-01-13 | 2022-01-13 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
PCT/CN2022/138429 WO2023134361A1 (zh) | 2022-01-13 | 2022-12-12 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210039160.1A CN114492775A (zh) | 2022-01-13 | 2022-01-13 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114492775A true CN114492775A (zh) | 2022-05-13 |
Family
ID=81512004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210039160.1A Pending CN114492775A (zh) | 2022-01-13 | 2022-01-13 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114492775A (zh) |
WO (1) | WO2023134361A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023134361A1 (zh) * | 2022-01-13 | 2023-07-20 | 哲库科技(上海)有限公司 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893904B (zh) * | 2023-09-11 | 2023-12-26 | 腾讯科技(深圳)有限公司 | 神经网络模型的内存管理方法、装置、设备、介质及产品 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020093227A1 (zh) * | 2018-11-06 | 2020-05-14 | 华为技术有限公司 | 一种异构计算系统及内存管理方法 |
CN112529169A (zh) * | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 数据处理方法、模型优化装置和模型执行装置 |
CN112783640B (zh) * | 2019-11-11 | 2023-04-04 | 上海肇观电子科技有限公司 | 预先分配内存的方法与设备、电路、电子设备及介质 |
CN113127181B (zh) * | 2019-12-30 | 2024-02-20 | 杭州海康威视数字技术股份有限公司 | 内存管理方法、装置及存储介质 |
CN113469336A (zh) * | 2021-06-29 | 2021-10-01 | 上海寒武纪信息科技有限公司 | 优化神经网络模型的编译方法、执行方法及相关产品 |
CN114492775A (zh) * | 2022-01-13 | 2022-05-13 | 哲库科技(上海)有限公司 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
-
2022
- 2022-01-13 CN CN202210039160.1A patent/CN114492775A/zh active Pending
- 2022-12-12 WO PCT/CN2022/138429 patent/WO2023134361A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023134361A1 (zh) * | 2022-01-13 | 2023-07-20 | 哲库科技(上海)有限公司 | 一种数据处理方法、装置、神经网络加速器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023134361A1 (zh) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210216495A1 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
CN112199190B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN114492775A (zh) | 一种数据处理方法、装置、神经网络加速器及存储介质 | |
CN108829610B (zh) | 一种神经网络前向计算过程中的内存管理方法及设备 | |
CN111143133B (zh) | 虚拟机备份方法和备份虚拟机恢复方法 | |
KR101460062B1 (ko) | 동영상 파일을 하둡 분산 파일 시스템에 분산 저장하는 시스템, 동영상 맵리듀스 시스템 및 그 제공방법 | |
CN112543918A (zh) | 神经网络切分方法、预测方法及相关装置 | |
US20200210829A1 (en) | Network off-line model processing method, artificial intelligence processing device and related products | |
CN104636199A (zh) | 一种基于分布式内存计算的大数据实时处理系统及方法 | |
CN111708812A (zh) | 一种分布式数据处理方法 | |
CN116893904A (zh) | 神经网络模型的内存管理方法、装置、设备、介质及产品 | |
CN114201298A (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN109165305B (zh) | 一种特征值存储、检索方法及装置 | |
CN114860460B (zh) | 一种数据库加速的方法、装置、计算机设备 | |
CN114296658B (zh) | 一种存储空间分配方法、装置、终端设备及存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN113849310A (zh) | 一种数据处理方法、装置、设备及机器可读存储介质 | |
CN105159619B (zh) | 一种虚拟内存的扩展方法及装置 | |
CN113011607A (zh) | 一种资源回收方法、装置、设备及存储介质 | |
CN109324867A (zh) | 一种虚拟机暂存方法、恢复方法及装置 | |
CN116095074A (zh) | 资源分配方法、装置、相关设备及存储介质 | |
CN111625358A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN105117410A (zh) | 一种应用对象的创建方法及装置 | |
CN111199268B (zh) | 一种全连接层的实现方法、装置、电子设备及计算机可读存储介质 | |
CN118012631B (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 |