DELTA:超越张量重计算的动态 GPU 内存优化
机器学习
2022-06-22 v2
摘要
深度神经网络的进一步发展受限于有限的 GPU 内存资源。因此,对 GPU 内存资源的优化需求极为迫切。交换与重计算常被用于深度学习中更好地利用 GPU 内存。然而,作为一个新兴领域,仍存在若干挑战:1)静态与动态方法的重计算效率均有限。2)交换需手动卸载参数,带来巨大时间开销。3)当前尚无同时涉及张量交换与张量重计算的动态细粒度方法。为弥补上述问题,我们提出一种名为 DELTA(Dynamic tEnsor offLoad and recompuTAtion,动态张量卸载与重计算)的新型调度管理器。据我们所知,我们首次在无需用户干预的情况下,针对张量交换与张量重计算的组合给出了合理的动态运行时调度器。在 DELTA 中,我们提出一种过滤算法以选择待释放出 GPU 内存的最优张量,并给出一种指导算法为各张量选取恰当操作。此外,刻意考虑预取与重叠以克服交换与重计算张量所引发的时间开销。实验结果表明,DELTA 不仅节省 40%–70% 的 GPU 内存,大幅超越 SOTA 方法,还以可接受的时间延迟取得了与基线相当的收敛结果。此外,与基线相比,DELTA 在训练 ResNet-50 时最大批大小提升 2.04,训练 ResNet-101 时提升 2.25。另外,我们实验中交换开销与重计算开销的对比证明了在张量交换与重计算上构建合理动态调度器的重要性,这反驳了部分相关工作中“交换应为首选且最优”的论断。
引用
@article{arxiv.2203.15980,
title = {DELTA: Dynamically Optimizing GPU Memory beyond Tensor Recomputation},
author = {Yu Tang and Chenyu Wang and Yufan Zhang and Yuliang Liu and Xingcheng Zhang and Linbo Qiao and Zhiquan Lai and Dongsheng Li},
journal= {arXiv preprint arXiv:2203.15980},
year = {2022}
}
备注
12 pages, 8 figures