深度学习内存分配优化方法和系统与流程

文档序号:34593516发布日期:2023-06-28 19:16阅读:31来源:国知局
深度学习内存分配优化方法和系统

本公开涉及深度学习领域,尤其涉及一种深度学习内存分配优化方法和系统。


背景技术:

1、目前在深度学习的譬如搜索、推荐、广告等的诸多场景中需要使用稀疏模型,而稀疏模型的张量形状(tensor shape)是未知的,导致难以进行内存静态分配。另外,存在一些多分支模型,模型的多分支结构会使得内存分配顺序不确定。在分布式场景中,参数服务器为多个工作器(worker)服务更新模型参数,存在多个计算图执行的场景,这也使得运行时收集信息进行内存分配的方法存在不准确的问题。

2、由此,需要一种改进的针对深度学习的内存分配优化方案。


技术实现思路

1、本公开要解决的一个技术问题是提供一种深度学习内存分配优化方法和系统,通过利用深度学习训练任务每轮迭代运行数据不同,但执行图相同而使得多轮迭代之间的内存分配存在天然相似性的特点,采集前几轮迭代的张量大小和生命期信息,并生成可用于后续迭代的内存分配计划,由此提升后续轮次迭代的内存复用,减少内存分配开销。

2、根据本公开的第一个方面,提供了一种深度学习内存分配优化方法,包括:记录当前轮次计算中所涉及张量的内存分配大小以及内存申请和释放时间,以获取张量大小和生命期信息;根据获取的张量大小和生命期信息进行内存分配规划以生成内存分配计划;以及根据所述内存分配计划,进行后续轮次的张量内存分配。

3、可选地,根据获取的张量大小和生命期信息进行内存分配规划以获取内存分配计划包括:根据获取的张量信息设置内存分配规划时的虚拟张量并根据所述虚拟张量对应的张量大小按预定间隔进行分桶;以及以从大到小的分桶顺序为虚拟张量进行虚拟内存的分配。

4、可选地,以从大到小的分桶顺序为虚拟张量进行虚拟内存的分配包括:查找无生命期冲突的更大分桶的虚拟内存块进行当前分桶内的当前虚拟张量的虚拟分配;若未找到所述更大分桶虚拟内存块,将当前虚拟张量向无生命期冲突的当前分桶的虚拟内存块进行虚拟分配;以及若未找到所述虚拟内存块,为所述当前虚拟张量分配一个新的当前分桶的虚拟内存块。

5、可选地,所述方法还包括:基于收集的虚拟张量对应张量的内存申请时间,根据所述内存分配计划进行模拟内存分配;以及在需要为当前分桶中的虚拟张量分配新的虚拟内存块时,重新进行所述内存分配规划以获取更新的内存分配计划。如上过程优选是一个迭代过程,由此可以重复以上过程直到内存分配计划能够满足多次迭代的内存分配请求或者达到指定迭代阈值。

6、可选地,根据所述内存分配计划,进行后续轮次的张量内存分配包括:根据所述内存分配计划进行与分桶对应的内存块申请;根据张量大小为张量分配对应分桶内的空闲内存块;在未找到所述空闲内存块时,根据所述内存分配计划分配更大分桶中的空闲内存块。

7、可选地,所述方法还包括:在后续轮次的张量内存分配中,在未找到所述内存块时,向备用内存池申请新的内存块。

8、可选地,针对同一深度学习计算任务中包括的多个计算图,执行各自的内存分配规划以获取各自的内存分配计划。

9、可选地,根据所述内存分配计划,进行后续轮次的张量内存分配包括:根据所述多个计算图各自对应的内存分配计划,在全局共享内存池中进行各个计算图与分桶对应的内存块申请。

10、根据本公开的第二个方面,提供了一种深度学习内存分配优化系统,包括:内存统计模块,用于记录当前轮次计算中所涉及张量的内存分配大小以及内存申请和释放时间,以获取张量大小和生命期信息;分配规划模块,用于根据获取的张量大小和生命期信息进行内存分配规划以获取内存分配计划;以及在线分配模块,用于根据所述内存分配计划,进行后续轮次的张量内存分配。

11、根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。

12、根据本公开的第四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。

13、由此,本发明的内存分配器通过创新性的内存管理机制、启发式内存规划算法,启发式内存块分桶策略、张量复用,基于图优化的内存分配等机制,通过系统架构和软件算法两个方面的创新,结合深度学习任务的特点,创造了可预测的计算图感知的深度学习框架自适应的内存分配器,它减少深度学习计算任务的内存资源占用以及分配内存的代价,从而提升深度学习系统的效率,提高了深度学习任务的计算性能。



技术特征:

1.一种深度学习内存分配优化方法,包括:

2.如权利要求1所述的方法,其中,根据获取的张量大小和生命期信息进行内存分配规划以获取内存分配计划包括:

3.如权利要求2所述的方法,其中,以从大到小的分桶顺序为虚拟张量进行虚拟内存的分配包括:

4.如权利要求1所述的方法,还包括:

5.如权利要求1所述的方法,其中,根据所述内存分配计划,进行后续轮次的张量内存分配包括:

6.如权利要求5所述的方法,还包括:

7.如权利要求1所述的方法,其中,针对同一深度学习计算任务中包括的多个计算图,执行各自的内存分配规划以获取各自的内存分配计划。

8.如权利要求7所述的方法,其中,根据所述内存分配计划,进行后续轮次的张量内存分配包括:

9.一种深度学习内存分配优化系统,包括:

10.一种计算设备,包括:

11.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至8中任一项所述的方法。


技术总结
公开了一种深度学习内存分配优化方法和系统。所述方法包括:记录当前轮次计算中所涉及张量的内存分配大小以及内存申请和释放时间,以获取张量大小和生命期信息;根据获取的张量大小和生命期信息进行内存分配规划以生成内存分配计划;以及根据所述内存分配计划,进行后续轮次的张量内存分配。本发明利用深度学习训练任务每轮迭代运行数据不同,但执行计算图相同而使得多轮迭代之间的内存分配存在天然相似性的特点,采集前几轮迭代的张量大小和生命期信息,生成可用于后续迭代的内存分配计划,由此提升后续轮次迭代的内存复用,减少内存分配开销以及内存占用。

技术研发人员:黄奕桐,刘童璇,张昱,彭陶,张燕咏,李昕元,丁辰,李永
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1