System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及神经网络推理,尤其涉及一种用于神经网络计算的片内内存管理方法及装置。
技术介绍
1、相比于片上内存,片外内存离计算单元较远,带宽较小,与计算单元之间的数据流转开销很大,很容易使得数据传输成为了计算的瓶颈,因此尽可能将神经网络计算中间数据存放在片上内存,才能最大发挥计算单元的能力。然而,片上内存资源有限,无法像片外内存一样单独为每份中间数据分配。
2、目前,多通过将片上内存设计成缓存cache,当缓存cache存满数据时,通过某些算法策略(如随机算法策略、先进先出算法策略、近期最少使用算法等)来释放缓存cache中的部分旧数据。然而,该方法可能会将需要使用的数据从缓存cache中删除,而将不需要使用的数据保留缓存cache中,在无法达到片上内存的高效利用。
技术实现思路
1、本专利技术提供一种用于神经网络计算的片内内存管理方法及装置,用以解决现有技术中无法高效利用片上内存的缺陷。
2、本专利技术提供一种用于神经网络计算的片内内存管理方法,包括:
3、确定神经网络的有向无环图;
4、序列化所述有向无环图,得到执行序列;
5、计算所述执行序列中各张量的生命周期;
6、在各张量的生命周期开始时进行片上内存分配,并在生命周期结束时进行片上内存释放。
7、根据本专利技术提供的一种用于神经网络计算的片内内存管理方法,所述在各张量的生命周期开始时进行片上内存分配,并在生命周期结束时进行片上内存释放,包
8、循环遍历各时刻,并对内存分配集合中的各张量进行片上内存分配,以及对内存释放集合中的各张量进行片上内存释放;
9、其中,所述内存分配集合用于在各张量的生命周期开始时存储对应张量,并在对应张量的生命周期结束时将对应张量移至所述内存释放集合。
10、根据本专利技术提供的一种用于神经网络计算的片内内存管理方法,所述对内存分配集合中的各张量进行片上内存分配,包括:
11、确定所述内存分配集合中各张量所需内存;
12、将最小内存的候选内存块作为目标内存块,并将所述目标内存块分配至对应张量;所述候选内存块指内存大于等于对应张量所需内存的内存块。
13、根据本专利技术提供的一种用于神经网络计算的片内内存管理方法,所述将最小内存的候选内存块作为目标内存块,并将所述目标内存块分配至对应张量,之后还包括:
14、基于上相邻内存块对应张量的生命周期结束时刻以及下相邻内存块对应张量的生命周期结束时刻,确定所述目标内存块的分配方式;所述上相邻内存块指与所述目标内存块相邻且靠近首端的内存块,所述下相邻内存块指与所述目标内存块相邻且靠近尾端的内存块。
15、根据本专利技术提供的一种用于神经网络计算的片内内存管理方法,所述基于上相邻内存块对应张量的生命周期结束时刻以及下相邻内存块对应张量的生命周期结束时刻,确定所述目标内存块的分配方式,包括:
16、在所述上相邻内存块对应张量的生命周期结束时刻晚于所述下相邻内存块对应张量的生命周期结束时刻的情况下,确定所述分配方式为尾端分配;
17、在所述上相邻内存块对应张量的生命周期结束时刻早于所述下相邻内存块对应张量的生命周期结束时刻的情况下,确定所述分配方式为首端分配。
18、根据本专利技术提供的一种用于神经网络计算的片内内存管理方法,所述将最小内存的候选内存块作为目标内存块,并将所述目标内存块分配至对应张量,之后还包括:
19、在所述目标内存块的下边界为0的情况下,所述目标内存块的分配方式为首端分配;
20、在所述目标内存块的上边界为n的情况下,所述目标内存块的分配方式为尾端分配。
21、根据本专利技术提供的一种用于神经网络计算的片内内存管理方法,所述确定神经网络的有向无环图,包括:
22、对所述神经网络中的计算节点进行算子融合,得到所述有向无环图。
23、本专利技术还提供一种用于神经网络计算的片内内存管理装置,包括:
24、确定单元,用于确定神经网络的有向无环图;
25、序列化单元,用于序列化所述有向无环图,得到执行序列;
26、计算单元,用于计算所述执行序列中各张量的生命周期;
27、分配单元,用于在各张量的生命周期开始时进行片上内存分配,并在生命周期结束时进行片上内存释放。
28、本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述用于神经网络计算的片内内存管理方法。
29、本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述用于神经网络计算的片内内存管理方法。
30、本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述用于神经网络计算的片内内存管理方法。
31、本专利技术提供的用于神经网络计算的片内内存管理方法及装置,基于执行序列中各张量的生命周期,在各张量的生命周期开始时进行片上内存分配,并在生命周期结束时进行片上内存释放,实现根据各张量的生命周期进行片上内存的动态分配和释放,高效利用片上内存,避免传统方法中将需要使用的数据从缓存中删除,而将不需要使用的数据保留缓存中占用片上内存的问题。
本文档来自技高网...【技术保护点】
1.一种用于神经网络计算的片内内存管理方法,其特征在于,包括:
2.根据权利要求1所述的用于神经网络计算的片内内存管理方法,其特征在于,所述在各张量的生命周期开始时进行片上内存分配,并在生命周期结束时进行片上内存释放,包括:
3.根据权利要求2所述的用于神经网络计算的片内内存管理方法,其特征在于,所述对内存分配集合中的各张量进行片上内存分配,包括:
4.根据权利要求3所述的用于神经网络计算的片内内存管理方法,其特征在于,所述将最小内存的候选内存块作为目标内存块,并将所述目标内存块分配至对应张量,之后还包括:
5.根据权利要求4所述的用于神经网络计算的片内内存管理方法,其特征在于,所述基于上相邻内存块对应张量的生命周期结束时刻以及下相邻内存块对应张量的生命周期结束时刻,确定所述目标内存块的分配方式,包括:
6.根据权利要求3所述的用于神经网络计算的片内内存管理方法,其特征在于,所述将最小内存的候选内存块作为目标内存块,并将所述目标内存块分配至对应张量,之后还包括:
7.根据权利要求1至6任一项所述的用于神经网络
8.一种用于神经网络计算的片内内存管理装置,其特征在于,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述用于神经网络计算的片内内存管理方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述用于神经网络计算的片内内存管理方法。
...【技术特征摘要】
1.一种用于神经网络计算的片内内存管理方法,其特征在于,包括:
2.根据权利要求1所述的用于神经网络计算的片内内存管理方法,其特征在于,所述在各张量的生命周期开始时进行片上内存分配,并在生命周期结束时进行片上内存释放,包括:
3.根据权利要求2所述的用于神经网络计算的片内内存管理方法,其特征在于,所述对内存分配集合中的各张量进行片上内存分配,包括:
4.根据权利要求3所述的用于神经网络计算的片内内存管理方法,其特征在于,所述将最小内存的候选内存块作为目标内存块,并将所述目标内存块分配至对应张量,之后还包括:
5.根据权利要求4所述的用于神经网络计算的片内内存管理方法,其特征在于,所述基于上相邻内存块对应张量的生命周期结束时刻以及下相邻内存块对应张量的生命周期结束时刻,确定所述目标内存块的分配方式,包括:
...【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:上海壁仞科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。