一种内存管理的方法、设备及系统技术方案

技术编号:33538711 阅读:26 留言:0更新日期:2022-05-21 09:39
本申请公开了一种内存管理的方法,应用于人工智能技术领域,该方法包括获取人工智能模型的计算图,该计算图包括多个算子和至少一条边,其中,每条边用于表示多个算子中两个算子之间的输入关系或输出关系;按照多个算子中每个算子对内存需求从大到小的顺序,依次为每个算子分配内存,其中,第一算子的内存地址与第二算子的内存地址存在重叠,且第二算子不是第一算子的互斥算子,其中,第一算子的互斥算子的内存不能被第一算子复用。本申请技术方案由于可以复用非互斥算子的内存,因此可以提高已分配内存的利用率,还可以降低该计算图所占用的内存的峰值需求。的内存的峰值需求。的内存的峰值需求。

【技术实现步骤摘要】
一种内存管理的方法、设备及系统


[0001]本申请涉及计算机
,具体涉及一种内存管理的方法、设备及系统。

技术介绍

[0002]随着互联网的发展,人工智能(artificial intelligence,AI)发展迅猛,AI模型被应用到各种产品和服务中。一般的,AI模型是采用深度神经网络或卷积神经网络进行模型构造,然后使用训练样本对构造好的模型进行训练,从而得到可以在应用场景中进行推理的AI模型的。
[0003]AI模型可以转换为计算图,一个计算图中会包括多个算子和多条边,每条边会关联两个算子,该边也用于表示所关联的两个算子之间的输入/输出关系。在AI推理过程中,端侧需要按照计算图中各算子的执行顺序逐个计算,每一个算子都有输入数据和输出数据,比如卷积算子,就是将输入的数据进行卷积计算后输出。因此,对应每一个算子都需要一块内存来存放相应的输出数据,并且这个输出数据作为下一个与之关联的算子的输入数据。若不对这些算子的内存进行管理,正在执行的算子无法获知从哪里调度输入数据,也无法确定输出数据在内存中应该存放的位置,造成数据错乱,无法完成本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种内存管理的方法,其特征在于,包括:获取人工智能模型的计算图,所述计算图包括多个算子和至少一条边,其中,每条边用于表示所述多个算子中两个算子之间的输入关系或输出关系;按照所述多个算子中每个算子对内存需求从大到小的顺序,依次为所述每个算子分配内存,其中,第一算子的内存地址与第二算子的内存地址存在重叠,且所述第二算子不是所述第一算子的互斥算子,其中,所述第一算子的互斥算子的内存不能被所述第一算子复用。2.根据权利要求1所述的方法,其特征在于,所述第一算子的互斥算子包括与所述第一算子具有输入关系或输出关系的算子。3.根据权利要求2所述的方法,其特征在于,所述互斥算子还包括以下两种算子中的至少一种;所述计算图中与所述第一算子所在的第一分支并列的第二分支上的算子,以及在执行顺序上位于所述第一算子之前的网络输出算子,所述网络输出算子为与所述计算图中的其他算子有输入关系,且没有输出关系的算子。4.根据权利要求1-3任一项所述的方法,其特征在于,所述按照所述多个算子中每个算子对内存需求从大到小的顺序,依次为所述每个算子分配内存,包括:所述第一算子是所述多个算子中内存需求最大的算子,则按照所述第一算子的内存需求,为所述第一算子申请内存。5.根据权利要求1-3任一项所述的方法,其特征在于,所述按照所述多个算子中每个算子对内存需求从大到小的顺序,依次为所述每个算子分配内存,包括:所述第一算子不是所述多个算子中内存需求最大的算子,则获取已分配内存的每个算子的内存地址;从已分配内存的非互斥算子的内存中为所述第一算子分配内存,所述非互斥算子为所述多个算子中除所述第一算子的互斥算子之外的算子,所述非互斥算子包括所述第二算子。6.根据权利要求5所述的方法,其特征在于,所述从已分配内存的非互...

【专利技术属性】
技术研发人员:钱良芳
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1