本公开涉及计算机,尤其涉及人工智能、智能芯片领域,具体涉及一种显存管理方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术:
1、通用图形处理器(general-purpose computing on graphics processingunits,简称gpgpu)作为通用的人工智能应用加速芯片,是人工智能(artificialintelligence,ai)时代算力的主要提供者,构成了ai基础设施的基石。高效的利用gpgpu,使其发挥出极致的性能,有助于解决ai时代日益增长的算力需求问题。显存是gpgpu的重要组成部分,存储着ai应用的输入输出数据和应用运行时的中间数据。如何使用和管理显存,对于发挥gpgpu的性能有着至关重要的作用。
2、在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
技术实现思路
1、本公开提供了一种显存管理方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
2、根据本公开的一方面,提供了一种显存管理方法,用于对用于运行目标任务的显存池进行管理,目标任务包括串行的多个子任务,所述方法包括:获取目标任务的运行队列,运行队列包括多组显存管理事件以及与多个子任务相应的多个任务下发事件,多组显存管理事件中的每组显存管理事件包括相对应的显存申请事件和显存释放事件;对于每组显存管理事件,将该组显存管理事件以及运行队列中位于该组显存管理事件之间的所有事件封装为事件函数;针对多组显存管理事件相应的多个事件函数中的每个事件函数,确定该事件函数相应的显存空间的第一信息,其中,显存空间为显存池中的一部分并且用于执行该事件函数中所包含的、并且不属于其他事件函数的至少一个子任务,第一信息包括显存首地址和显存大小,显存首地址基于该事件函数的关联事件函数相应的第一信息以及关联事件函数与该事件函数的关系确定,关联事件函数和该事件函数的关系包括关联事件函数的生命周期直接嵌套该事件函数的生命周期,或响应于关联事件函数的生命周期结束,该事件函数的生命周期开始,多个事件函数中的第一个事件函数对应的显存首地址为显存池的首地址,显存大小基于至少一个子任务中涉及的变量大小确定;以及将多个子任务依次下发给处理单元,其中,多个子任务中的每个子任务包括该子任务相应的显存空间的第一信息,以使处理单元基于该第一信息分配显存池中的相应显存空间用于执行该子任务。
3、根据本公开的另一方面,提供了一种显存管理装置,用于对用于运行目标任务的显存池进行管理,目标任务包括串行的多个子任务,所述装置包括:获取单元,被配置为获取目标任务的运行队列,运行队列包括多组显存管理事件以及与多个子任务相应的多个任务下发事件,多组显存管理事件中的每组显存管理事件包括相对应的显存申请事件和显存释放事件;封装单元,被配置为对于每组显存管理事件,将该组显存管理事件以及运行队列中位于该组显存管理事件之间的所有事件封装为事件函数;确定单元,被配置为针对多组显存管理事件相应的多个事件函数中的每个事件函数,确定该事件函数相应的显存空间的第一信息,其中,显存空间为显存池中的一部分并且用于执行该事件函数中所包含的、并且不属于其他事件函数的至少一个子任务,第一信息包括显存首地址和显存大小,显存首地址基于该事件函数的关联事件函数相应的第一信息以及关联事件函数与该事件函数的关系确定,关联事件函数和该事件函数的关系包括关联事件函数的生命周期直接嵌套该事件函数的生命周期,或响应于关联事件函数的生命周期结束,该事件函数的生命周期开始,多个事件函数中的第一个事件函数对应的显存首地址为显存池的首地址,显存大小基于至少一个子任务中涉及的变量大小确定;以及下发单元,被配置为将多个子任务依次下发给处理单元,其中,多个子任务中的每个子任务包括该子任务相应的显存空间的第一信息,以使处理单元基于该第一信息分配显存池中的相应显存空间用于执行该子任务。
4、根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述显存管理方法。
5、根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述显存管理方法。
6、根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现上述显存管理方法。
7、根据本公开的一个或多个实施例,能够实现无需通过显式地操作,由处理单元本身即可基于主机侧预先计算好的显存信息,完成显存空间的自动申请和自动释放。
8、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
1.一种显存管理方法,用于对用于运行目标任务的显存池进行管理,所述目标任务包括串行的多个子任务,所述方法包括:
2.根据权利要求1所述的方法,其中,针对所述多组显存管理事件相应的多个事件函数中的每个事件函数,响应于该事件函数相应的关联事件函数和该事件函数的关系为相应关联事件函数的生命周期直接嵌套该事件函数的生命周期,该事件函数的显存首地址为相应关联事件函数的显存首地址和显存大小的总和。
3.根据权利要求1所述的方法,其中,针对所述多组显存管理事件相应的多个事件函数中的每个事件函数,响应于该事件函数相应的关联事件函数和该事件函数的关系为响应于相应关联事件函数的生命周期结束,该事件函数的生命周期开始,该事件函数的显存首地址为相应关联事件函数的显存首地址。
4.根据权利要求1-3中任一项所述的方法,还包括:
5.根据权利要求1-4中任一项所述的方法,还包括:
6.根据权利要求1-4中任一项所述的方法,还包括:
7.一种显存管理装置,用于对用于运行目标任务的显存池进行管理,所述目标任务包括串行的多个子任务,所述装置包括:
8.根据权利要求7所述的装置,其中,针对所述多组显存管理事件相应的多个事件函数中的每个事件函数,响应于该事件函数相应的关联事件函数和该事件函数的关系为相应关联事件函数的生命周期直接嵌套该事件函数的生命周期,该事件函数的显存首地址为相应关联事件函数的显存首地址和显存大小的总和。
9.根据权利要求7所述的装置,其中,针对所述多组显存管理事件相应的多个事件函数中的每个事件函数,响应于该事件函数相应的关联事件函数和该事件函数的关系为响应于相应关联事件函数的生命周期结束,该事件函数的生命周期开始,该事件函数的显存首地址为相应关联事件函数的显存首地址。
10.根据权利要求7-9中任一项所述的装置,还包括:
11.根据权利要求7-10中任一项所述的装置,还包括:
12.根据权利要求7-10中任一项所述的装置,还包括:
13.一种电子设备,包括:
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现权利要求1-6中任一项所述的方法。