NPU内存分配方法、NPU、电子设备及存储介质与流程

专利检索2025-07-01  12


本申请涉及神经网络领域,具体而言,涉及一种npu内存分配方法、npu、电子设备及存储介质。


背景技术:

1、随着神经网络模型规模的增大,神经网络模型执行深度学习计算时所需npu(neural network processor unit,神经网络处理器)的内存也越来越多。

2、一个npu可能会为多个神经网络模型的深度学习运算任务分配内存存储各运算时的各种数据,例如,每一模型分配到的内存包括:为输入数据分配输入内存,为权重数据分配权重内存,为指令数据分配指令内存,为各网络层输出数据分配临时内存,以及为各模型的整体输出分配输出内存。

3、目前,通常是为每一神经网络模型分配匹配的内存,而每一神经网络模型均会需求较多的内存,这使得npu执行多个神经网络模型的深度学习运算任务时所分配的整体内存较大。


技术实现思路

1、有鉴于此,本申请旨在提供一种npu内存分配方法、npu、电子设备及存储介质,以减少得npu执行多个神经网络模型的深度学习运算任务时所需分配的内存。

2、第一方面,本申请实施例提供一种npu内存分配方法,包括:获取需被所述npu分配内存的各模型的结构及所述各模型的工作数据;基于所述结构从所述工作数据中确定各模型之间的目标成分;其中,所述目标成分包括各模型之间相同的工作数据和模型中允许在内存通过分时复用进行存储的工作数据二者中的至少一者;为各模型的所述目标成分分配同一个内存。

3、本申请实施例中,目标成分为各模型之间相同的工作数据和/或模型中允许在内存通过分时复用进行存储的工作数据,因此,互为目标成分的工作数据之间即使使用同一个内存进行存储,也不影响各自模型正常的运算,而为各模型的目标成分分配同一个内存,可以有效减少为不同模型所分配的内存,进而减少npu的内存占用。

4、一实施例中,所述模型的结构包括模型的各网络层,所述工作数据包括模型各网络层的权重数据和指令数据;所述基于所述结构和所述工作数据确定各模型之间的目标成分,包括:对于不同模型之间的任意两个网络层,若该两个网络层的权重数据相同,则确定该两个网络层的权重数据为所述目标成分;或,对于不同模型之间的任意两个网络层,若该两个网络层的指令数据相同,则确定该两个网络层的指令数据为所述目标成分。

5、模型包括多个网络层,本申请实施例中,相较于判断模型整体的工作数据是否相同或是否允许分时复用进行目标成分的确定,由于网络层的数据更多,则从网络层的工作数据对比中更容易确定相同的数据,因此,相较于从模型整体层面,从网络层的层面来上更易确定出的目标成分,从而为更多的目标成分分配相同的内存,能够减少内存的分配量,减少npu的内存占用。同时,在各网络层中可能存在较多相同的权重或指令,因此可以从权重或指令的去确定目标成分,从而可以较为准确、快速地确定出更多的目标成分,以减少内存分配,减少npu的内存占用。

6、一实施例中,所述模型的结构包括模型的各网络层,所述工作数据包括模型各网络层的权重数据和指令数据;所述基于所述结构和所述工作数据确定各模型之间的目标成分,包括:对于不同模型之间的任意两个网络层,若该两个网络层的权重数据相同,则确定该两个网络层的权重数据为所述目标成分;和,对于不同模型之间的任意两个网络层,若该两个网络层的指令数据相同,则确定该两个网络层的指令数据为所述目标成分。

7、本申请实施例中,可以同时从权重和指令两个方面去确定目标成分,以确定尽可能多的目标成分,从而进一步减少所分配的内存量。

8、一实施例中,所述模型的结构包括模型的各网络层;所述工作数据包括模型工作时的输入数据、输出数据和各网络层输出的临时数据;所述基于所述结构从所述工作数据中确定各模型之间的目标成分,包括:获取各所述模型的执行顺序;若确定存在串行执行的多个模型情况,将所述串行执行的多个模型各自的输入数据确定为所述目标成分,以及将所述串行执行的多个模型中同一顺序执行的网络层的临时数据确定互为所述目标成分。

9、本申请实施例中,串行执行的模型之间工作数据的存储与使用互不影响,因此,可以获取模型的执行顺序判断是否可以分时复用,进而确定出目标成分。而模型的执行方式易于获取,通该方式可以简化对目标成分的分析复杂度,提高目标成分的确定效率,进而提高内存分配的效率。

10、一实施例中,所述基于所述结构从所述工作数据中确定各模型之间的目标成分之后,所述方法还包括:对于同一模型,将该模型中未调用所述输入数据的网络层的临时数据或输出数据确定为与所述输入数据互为目标成分。

11、本申请实施例中,模型具有串行执行的特性,未调用输入数据的网络层的临时数据或输出数据均可以与输入数据分时复用存储,将其确定为与所述输入数据互为目标成分,由此,可以使得单模型内能够存在分时复用的目标成分,进而分配内存时可以减少分配的内存量,进一步减少npu占用。

12、一实施例中,所述基于所述结构从所述工作数据中确定各模型之间的目标成分之后,所述方法还包括:对于同一模型任意一个网络层的第一临时数据,将该模型中未调用所述第一临时数据的其他网络层的第二临时数据确定为与所述第一临时数据互为目标成分。

13、本申请实施例中,模型具有串行执行的特性,未调用第一临时数据的网络层的第二临时数据均可以与第一临时数据分时复用存储,将其确定为与所述第一临时数据互为目标成分,由此,可以使得单模型内能够存在分时复用的目标成分,分配内存时可以减少分配的内存量,进一步减少npu占用。

14、一实施例中,所述内存分配方法,还包括:为同一模型中所有网络层的临时数据的存储分配一个预设容量大小的内存,所述预设容量大小为n倍单个临时内存空间的容量大小,所述临时内存空间为存储网络层的临时数据的内存空间;所述n为所述模型中需要的临时内存空间的数量。

15、本申请实施例中,为所有网络层的临时数据共同分配一个预设容量大小的内存进行存储,预设容量大小为n倍单个临时内存空间的容量大小,n为所述模型中需要的临时内存空间的数量,由此,可以同时存储多个网络层输出的数据,实现无法分时复用的临时数据存储。而为单个模型的所有临时数据分配一个内存,由此,可以有效减少内存分配的复杂度,提高分配效率。

16、第二方面,本申请实施例提供一种npu,包括内存和处理单元,所述处理单元用于执行如第一方面任一项所述的npu内存分配方法。

17、第三方面,本申请实施例提供一种电子设备,包括如第二方面所述的npu。

18、第四方面,本申请实施例提供一种计算机可读存储介质,所述可读存储介质中存储有程序,当所述程序在处理单元上运行时,使得所述处理单元执行如第一方面任一项所述的npu内存分配方法。



技术特征:

1.一种npu内存分配方法,其特征在于,包括:

2.根据权利要求1所述的npu内存分配方法,其特征在于,所述模型的结构包括模型的各网络层,所述工作数据包括模型各网络层的权重数据;

3.根据权利要求1所述的npu内存分配方法,其特征在于,所述模型的结构包括模型的各网络层,所述工作数据包括模型各网络层的权重数据和指令数据;

4.根据权利要求1-3任一项所述的npu内存分配方法,其特征在于,所述模型的结构包括模型的各网络层;所述工作数据包括模型工作时的输入数据、输出数据和各网络层输出的临时数据;

5.根据权利要求4所述的npu内存分配方法,其特征在于,所述基于所述结构从所述工作数据中确定各模型之间的目标成分之后,所述方法还包括:

6.根据权利要求4所述的npu内存分配方法,其特征在于,所述基于所述结构从所述工作数据中确定各模型之间的目标成分之后,所述方法还包括:

7.根据权利要求6所述的npu内存分配方法,其特征在于,所述内存分配方法,还包括:

8.一种npu,其特征在于,包括:内存和处理单元,所述处理单元用于执行如权利要求1-7任一项所述的npu内存分配方法。

9.一种电子设备,其特征在于,包括如权利要求8所述的npu。

10.一种可读存储介质,其特征在于,所述可读存储介质中存储有程序,当所述程序在处理单元上运行时,使得所述处理单元执行如权利要求1-7任一项所述的npu内存分配方法。


技术总结
本申请提供一种NPU内存分配方法、NPU、电子设备及存储介质,涉及神经网络领域。NPU内存分配方法包括:获取需被所述NPU分配内存的各模型的结构及所述各模型的工作数据;基于所述结构从所述工作数据中确定各模型之间的目标成分;其中,所述目标成分包括各模型之间的相同工作数据和模型中允许在内存通过分时复用进行存储的工作数据二者中的至少一者;为各模型的所述目标成分分配同一个内存。通过上述内存分配方法,可以在多模型执行运算时,减少NPU内存的占用。

技术研发人员:谢巍
受保护的技术使用者:芯原微电子(上海)股份有限公司
技术研发日:
技术公布日:2024/5/29
转载请注明原文地址:https://win.8miu.com/read-1155854.html

最新回复(0)