用于人工智能计算系统的内存管理的方法及其相关产品技术方案

技术编号:37962481 阅读:13 留言:0更新日期:2023-06-30 09:37
本公开涉及一种用于人工智能计算系统的内存管理的方法及其相关产品,其中该相关产品包括设备和计算机可读存储介质。该设备可以包括在组合处理装置的计算处理装置中,该计算处理装置可以包括一个或多个数据处理装置。前述的组合处理装置还可以包括接口装置和其他处理装置。所述计算处理装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于存储该设备和其他处理装置的数据。通过本公开的方案,可以有效解决在内存管理中因重复创建销毁事件而降低运行性能的问题。运行性能的问题。运行性能的问题。

【技术实现步骤摘要】
用于人工智能计算系统的内存管理的方法及其相关产品


[0001]本公开一般地涉及存储领域。更具体地,本公开涉及一种用于人工智能计算系统的内存管理的方法、用于执行前述方法的人工智能计算系统和计算机可读存储介质以及计算机程序产品。

技术介绍

[0002]当前在例如pytorch的深度学习编程框架中,使用称之为“流”(cudaStream,简称Stream)的一组线性的命令执行队列,并且利用数据结构事件(cudaEvent_t,简称Event或事件)对前述的命令执行队列进行标记。该事件在人工智能设备的内存管理操作中发挥作用,特别是中央处理器(CPU)到人工智能处理器(如GPU)的数据拷贝。考虑到该数据拷贝通常是异步的,因此可以通过利用事件对一组线性的拷贝命令执行队列来进行标记,从而保证异步数据拷贝时的有序性。然而,在当前的人工智能处理器的整体内存管理中,该事件的使用存在缺陷。具体来说,当需要对命令执行队列(即“流”)进行标记时,则需要对事件执行临时的创建操作。此后,在执行完标记操作后,则需要对事件进行销毁,以完成对事件的处理。可以看出,这样的重复创建和销毁事件会给人工智能处理器带来额外的开销,进而降低人工智能处理器乃至包括通用处理器和人工智能处理器的异构系统的整体运行性能。鉴于此,如何解决内存管理时重复创建销毁事件而降低处理器运行性能成为亟需解决的技术问题。

技术实现思路

[0003]鉴于上述
技术介绍
部分所提及的技术问题,本公开提出一种用于人工智能计算系统的内存管理的方法。利用本公开的方案,可以通过设计存储多个事件的事件池来达到对事件进行重用的目的,从而有效减少创建和销毁事件所带来的额外开销并且优化了内存管理。为此,本公开在如下的多个方面中提供解决用于人工智能计算系统的内存管理的方案。
[0004]在第一方面中,本公开提供了一种用于人工智能计算系统的内存管理的方法,并且包括构建包括多个事件的事件池,其中所述事件用于在命令执行队列中进行标记;以及在所述内存管理操作中,利用所述事件池来执行关于事件的回收和/或重用操作。
[0005]在第二方面中,本公开提供了一种设备,包括:处理器;存储器,其存储用于所述人工智能计算系统的内存管理的程序指令,当所述程序指令由所述处理器执行时,实现上述的方法。
[0006]在第三方面中,本公开提供了一种人工智能计算系统,包括多个前述的设备,其中每个设备具有与其关联的事件池,以实现对与所述设备绑定的事件的回收和/或重用操作。
[0007]在第四方面中,本公开提供了一种计算机可读存储介质,其上存储有用于所述人工智能计算系统的内存管理的计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现上述的方法。
[0008]在第五方面中,本公开提供了一种计算机程序产品,包括用于所述人工智能计算
系统的内存管理的计算机程序/指令,该计算机程序/指令被处理器执行时实现上述的方法。
[0009]通过本公开如上多个方面中所提供的内存管理方案,可以很大程度地提高处理器在运行时的性能。具体地,本公开的方案通过设计事件池对事件进行存储,并且可以将事件池中的空闲事件设置到与释放的单位内存块对应的命令执行队列上,进而可以实现对命令执行队列的标记操作。进一步,在完成标记操作后,可以通过事件池的接口将空闲事件回收至事件池,以实现对事件的重用操作。通过上述设计事件池的操作可以减少在内存管理期间对事件的重复创建和销毁操作而产生的额外开销,从而可以提高处理器以及人工智能计算系统运行过程中的整体性能。
附图说明
[0010]通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
[0011]图1是示出根据本公开实施例的板卡的结构图;
[0012]图2是示出根据本公开实施例的组合处理装置的结构图;
[0013]图3是示出根据本公开实施例的计算装置的内部结构示意图;
[0014]图4是示出根据本公开实施例的处理器核的内部结构示意图;
[0015]图5是示出根据本公开实施例的不同集群的处理器核间的数据写入过程示意图;
[0016]图6是示出根据本公开实施例的数据流编程的软硬件架构的结构示意图;
[0017]图7是示出根据本公开实施例的用于人工智能计算系统的内存管理的方法的流程图;
[0018]图8是示出根据本公开实施例的针对于设备侧内存的内存管理的方法的示例性流程图;以及
[0019]图9是示出根据本公开实施例的针对于主机侧锁页内存的内存管理的方法的示例性流程图。
具体实施方式
[0020]下面将结合本公开实施方式中的附图,对本公开实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本公开一部分实施方式,而不是全部的实施方式。基于本公开中的实施方式,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本公开保护的范围。
[0021]应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0022]还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施方式的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进
一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0023]如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0024]下面结合附图来详细描述本公开的具体实施方式。
[0025]图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种系统级芯片(System on Chip,SoC),或称片上系统,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求。特别是深度学习技术大量应用在云端智能领域,云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于人工智能计算系统的内存管理的方法,包括:构建包括多个事件的事件池,其中所述事件用于在命令执行队列中进行标记;以及在所述内存管理操作中,利用所述事件池来执行关于事件的回收和/或重用操作。2.根据权利要求1所述的方法,其中所述人工智能计算系统包括主机侧和设备侧,并且所述内存管理操作包括针对于设备侧内存和/或主机侧锁页内存的内存申请操作和内存释放操作。3.根据权利要求2所述的方法,其中在所述内存申请操作中,利用所述事件池来执行关于事件的回收操作包括:遍历保存的单位内存块和事件所形成的一个或多个绑定对,以确定已执行完事件对应的目标绑定对;释放所述目标绑定对中的单位内存块,以供内存申请使用;以及将所述目标绑定对中的事件回收至所述事件池。4.根据权利要求2所述的方法,其中在所述内存释放操作中,利用所述事件池来执行关于事件的重用操作包括:确定所述事件池中是否有可重用的空闲事件;以及响应于存在所述空闲事件,将所述空闲事件设置到与释放的单位内存块对应的命令执行队列上。5.根据权利要求4所述的方法,还包括:响应于确定所述事件池中不存在所述空闲事件,创建新事件;将所述新事件设置到与释...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:寒武纪昆山信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1