本公开涉及异构计算领域,尤其涉及一种内存管理方法及装置、电子设备、芯片及存储介质。
背景技术:
1、针对智能终端上深度学习的推理计算,从使用cpu(central processing unit,中央处理器)进行运算,到使用gpu(graphics processing unit,图形处理器)进行加速运算,再到目前对硬件做了特定优化的神经网络运算单元npu(neural network processingunit,神经网络处理器)。芯片针对特定场景的运算能力不断加强,同时,也伴随着泛化能力的减弱,通用性的降低,异构的提出,较好的兼顾了通用性与运算速度的矛盾关系。而多核异构框架存在大量的核间通信与大数据量的共享问题,异构设备上共享内存的访存速度对于调度与划分深度学习运算子图具有指导意义。
技术实现思路
1、本公开提供一种内存管理方法、装置、电子设备、芯片以及存储介质,以解决相关技术中的问题,评估多个处理器中执行每个算子对共享内存的访存速度,可以应用于异构场景下的深度学习计算,为调度与划分深度学习运算子图提供指导方向。
2、本公开的第一方面实施例提出了一种内存管理方法,方法应用于终端,该终端包括多种处理器,该方法包括:基于多种处理器的多个算子所占用的内存大小,确定终端的共享内存的大小;分别获取多种处理器对共享内存的第一读取时间和第一写入时间;基于第一读取时间和第一写入时间,确定多个算子中第一算子对共享内存的第二读取时间和/或第二写入时间。
3、在本公开的一些实施例中,基于多种处理器的多个算子所占用的内存大小,确定终端的共享内存的大小包括:确定多个算子所占用的内存中的最大值;将最大值确定为共享内存的大小。
4、在本公开的一些实施例中,分别获取多种处理器对共享内存的读取时间和写入时间包括:根据共享内存空间的大小,确定共享内存的n个内存空间,其中,n个内存空间的大小不同,n为正整数;针对多种处理器中的第一处理器,确定第一处理器读取n个内存空间的n个第一读取时间;确定第一处理器写入n个内存空间的n个第一写入时间。
5、在本公开的一些实施例中,该方法还包括:基于n个第一读取时间,建立第一处理器读取共享内存的读取拟合关系;基于n个第一写入时间,建立第一处理器写入共享内存的写入拟合关系。
6、在本公开的一些实施例中,基于第一读取时间和第一写入时间,确定多个算子中第一算子对共享内存的第二读取时间和/或第二写入时间包括:在第一算子对应的处理器为第一处理器的情况下,基于第一算子所占用的内存大小以及读取拟合关系,确定第二读取时间;和/或基于第一算子所占用的内存大小以及写入拟合关系,确定第二写入时间。
7、本公开的第二方面实施例提出了一种内存管理装置,该装置包括:第一确定模块,用于基于多种处理器的多个算子所占用的内存大小,确定终端的共享内存的大小;获取模块,用于分别获取多种处理器对共享内存的第一读取时间和第一写入时间;第二确定模块,用于基于第一读取时间和第一写入时间,确定多个算子中第一算子对共享内存的第二读取时间和/或第二写入时间。
8、本公开的第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开第一方面实施例中描述的方法。
9、本公开的第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开第一方面实施例中描述的方法。
10、本公开的第五方面实施例提出了一种芯片,该芯片包括一个或多个接口电路和一个或多个处理器;接口电路用于接收代码指令并向处理器传输,处理器用于运行代码指令以执行本公开第一方面实施例中描述的方法。
11、综上,本公开提出的内存管理方法,方法应用于终端,该终端包括多种处理器,该方法包括:基于多种处理器的多个算子所占用的内存大小,确定终端的共享内存的大小;分别获取多种处理器对共享内存的第一读取时间和第一写入时间;基于第一读取时间和第一写入时间,确定多个算子中第一算子对共享内存的第二读取时间和/或第二写入时间,评估多个处理器中执行每个算子对共享内存的访存速度,应用于深度学习计算,可以为调度与划分深度学习运算子图提供指导方向。
12、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种内存管理方法,其特征在于,所述方法应用于终端,所述终端包括多种处理器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述多种处理器的多个算子所占用的内存大小,确定所述终端的共享内存的大小包括:
3.根据权利要求2所述的方法,其特征在于,所述分别获取所述多种处理器对所述共享内存的读取时间和写入时间,包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一读取时间和所述第一写入时间,确定所述多个算子中第一算子对共享内存的第二读取时间和/或第二写入时间,包括:
6.一种内存管理装置,其特征在于,所述装置包括:
7.一种电子设备,其特征在于,包括:
8.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
9.一种芯片,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于接收代码指令并向所述处理器传输,所述处理器用于运行所述代码指令以执行权利要求1-5中任一项所述的方法。
