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

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

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


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

技术介绍

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

【技术保护点】

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

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

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

1