[发明专利]一种基于张量的深度学习GPU内存管理优化方法及系统有效
| 申请号: | 201911105147.6 | 申请日: | 2019-11-12 |
| 公开(公告)号: | CN111078395B | 公开(公告)日: | 2023-06-20 |
| 发明(设计)人: | 石宣化;彭轩;金海;代虎林;马玮良;熊倩 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F15/167 |
| 代理公司: | 北京之于行知识产权代理有限公司 11767 | 代理人: | 何志欣 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 张量 深度 学习 gpu 内存 管理 优化 方法 系统 | ||
本发明涉及一种基于张量的深度学习GPU内存管理优化方法,至少包括如下步骤:执行至少一个计算操作,其中,所述计算操作以张量为输入并产生张量作为输出;在一个计算操作被执行时,对张量的访问信息进行跟踪,并基于所述访问信息制定内存管理优化决策,在训练的第一次迭代中被动地在CPU内存和GPU内存之间进行内存交换以获得一次完整迭代的张量的访问信息根据获取的关于完整迭代的张量的访问信息,制定内存管理优化决策;在后续迭代中,根据运行时的反馈对制定的内存管理优选决策进行动态调整。
技术领域
本发明属于深度学习系统优化领域,更具体地,涉及一种基于张量的深度学习GPU内存管理优化方法及系统。
背景技术
深度神经网络需要大量的计算和内存。由于各种新兴的异构硬件(如TPU、ASIC和GPU)提供了巨大的计算能力,深度神经网络在当今变得非常流行,其中GPU是目前最流行的训练设备选择。越来越深、越来越宽的神经网络的训练对GPU的内存构成了巨大的挑战。例如,最新的BERT有768个隐藏层,在训练过程中消耗了73GB的内存(批量大小为64)。然而,高带宽的GPU内存是一种稀缺的资源:最新的Nvidia GPU V100的内存最多只有32GB,而商业云中的主流GPU类型(如P100)的内存只有16GB。这限制了探索各种结构的深度神经网络的灵活性。
为了解决这个问题,有两种主要的技术可以减少内存占用:内存交换和重计算。两种方法都采用了在前向传播中释放特征映射内存,然后在后向传播中重新生成特征映射的原则。具体来说,内存交换利用CPU DRAM作为额外的外部内存,在GPU和CPU之间来回异步复制数据;而重计算通过在反向传播中重新计算前向传播中的操作来获得所需特性映射。这两种方法都不会影响训练的精度。例如,公开号为CN109919310A的专利文献,其公开了一种面向深度学习训练任务的GPU内存优化方法及系统,该方法包括:(1)设计基本换入换出操作;(2)在训练开始前首先进行静态数据采集;(3)不采取换入换出策略,先训练若干个epoches,在此期间进行动态数据采集;(4)建立换入换出策略的性能模型,并明确GPU计算、内存、PCIe通信三者之间的制约关系;(5)根据性能模型确定最优策略;(6)剩余的epoch采用最优minibatch size及其匹配的换入换出策略继续训练直至结束。本发明解决了超深神经网络模型无法训练或可训练minibatch size太小引起训练效率低的问题,能够充分利用GPU资源提升超深神经网络模型训练效率。
即,现有技术是基于对计算图的静态分析,并根据不同神经网络层的特性执行分层的GPU内存管理。这种静态分析会产生三个问题:(1)硬件的异构和输入大小的变化使得每层的计算时间难以预测。即使对于同一类型的层,计算时间也有很大的变化。因此,基于层类型静态地确定内存优化目标将限制内存优化的潜力。(2)基于粗略获得的“定性”信息的决策不能量化特定内存操作的开销,因此很难对可优化的内存进行优先级排序以及如何在内存交换和重计算中进行选择。(3)深度神经网络不断快速发展,从卷积神经网络和循环神经网络,再到Transformer和图神经网络,有时甚至会有用户自定义的操作。对于新类型的神经网络,先验知识是不起作用的。另外,对于在执行前没有计算图的深度学习框架,如PyTorch和Tensorflow的eager模式,基于计算图的内存管理并不能在这种命令式编程模式下工作。因此,本发明旨在提供一种能够克服上述缺陷的深度学习GPU内存管理优化方法。
此外,一方面由于对本领域技术人员的理解存在差异;另一方面由于发明人做出本发明时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本发明不具备这些现有技术的特征,相反本发明已经具备现有技术的所有特征,而且申请人保留在背景技术中增加相关现有技术之权利。
发明内容
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911105147.6/2.html,转载请声明来源钻瓜专利网。





