使用GPU训练大神经网络之 显存控制策略与提升

本文是“[PPoPP18] SuperNeurons:Dynamic GPU Memory Management for Training Deep Neural Networks”的论文阅读笔记,论文、talk视频PPT等详见作者主页:https://linnanwang.github.io/
参考资料:
https://linnanwang.github.io/
How to Optimize Data Transfers in CUDA C/C++
How to Overlap Data Transfers in CUDA C/C++
Memory Allocation Overhead
cudamalloc slow
vDNN: Virtualized Deep Neural Networks for Scalable, Memory-Efficient Neural Network Design
Training Deep Nets with Sublinear Memory Cost
Arbitrary 2D convolution
Fast Algorithms for Convolutional Neural Networks


GPU显存控制策略与提升

该论文对时下各个框架中显存控制的思想做了汇总,并做了一些技术上的提升。整体上分为三个部分:
1. Live Analysis:即资源回收,回收无用tensor的显存。
2. offloading&prefetching:将装不下的tensor暂存到内存等其他设备中。
3. Recomputation:对于占用显存多、计算消耗小的tensor,不进行存储,需要使用时重新计算。

1. Live Analysis

其思想主要是资源回收,对于后续操作不依赖的tensor进行回收,释放相应的显存空间。
关于如何分析依赖关系,笔者猜测应该有许多基于计算图的算法。论文中给出了一个简单的 O(N2) O ( N 2 )

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值