pytorch的显存机制torch.cuda.empty_cache()

news/2024/11/24 12:11:29/

转自:https://oldpan.me/archives/pytorch-gpu-memory-usage-track


注意 本文撰写时间为2019年,相关内容可能已失效

Pytorch已经可以自动回收我们不用的显存,类似于python的引用机制,当某一内存内的数据不再有任何变量引用时,这部分的内存便会被释放。但有一点需要注意,当我们有一部分显存不再使用的时候,这部分释放的显存通过Nvidia-smi命令是看不到的,举个例子:

device = torch.device('cuda:0')
# 定义两个tensor
dummy_tensor_4 = torch.randn(120, 3, 512, 512).float().to(device)  # 120*3*512*512*4/1000/1000 = 377.48M
dummy_tensor_5 = torch.randn(80, 3, 512, 512).float().to(device)  # 80*3*512*512*4/1000/1000 = 251.64M# 然后释放
dummy_tensor_4 = dummy_tensor_4.cpu()
dummy_tensor_2 = dummy_tensor_2.cpu()
# 这里虽然将上面的显存释放了,但是我们通过Nvidia-smi命令看到显存依然在占用
torch.cuda.empty_cache()
# 只有执行完上面这句,显存才会在Nvidia-smi中释放

Pytorch的开发者也对此进行说明了,这部分释放后的显存可以用,只不过不在Nvidia-smi中显示罢了。
在这里插入图片描述


http://www.ppmy.cn/news/464708.html

相关文章

【pytorch】torch.cuda.empty_cache()==>释放缓存分配器当前持有的且未占用的缓存显存

Pytorch 训练时无用的临时变量可能会越来越多,导致 out of memory ,可以使用下面语句来清理这些不需要的变量。 torch.cuda.empty_cache() 官网 上的解释为: Releases all unoccupied cached memory currently held by the caching allocato…

为什么一打开Adobe Creative Cloud 桌面上就会出现一个GPUCache文件夹

是因为Adobe Creative Cloud打开后,后台有baiAdobe Creative Cloud要进行的项目,但是还没完全进du行完成zhi卡住了导致。GPUCache文件夹dao正常删除或对文件夹的任何操作皆为文件被占用(与adobecloud开启与否无关),用c…

Tensorflow100%占用GPU内存

在使用GPU进行“炼丹”的过程中,经常会出现,明明数据不是很大,网络规模也很小,batch_size也不大,但是GPU内存占用瞬间拉满。GPU内存拉满的原因可能时Tensorflow默认将内存全部沾满,以利用大块内存&#xff…

显存优化 | Pytorch的显存机制torch.cuda.empty_cache及周边概念

注:文中涉及一些内部底层实现机制,可能和大家外界看到的不一样,这里略过不做介绍。借着笔记,分享平时碰到的技术点,不高端,不炫酷,对你有用更好了。 最近在做模型的优化工作,主要涉…

9. CUDA shared memory使用------GPU的革命

9. CUDA shared memory使用------GPU的革命 序言:明年就毕业了,下半年就要为以后的生活做打算。这半年,或许就是一个抉择的时候,又是到了一个要做选择的时候。或许是自己的危机意识比较强,一直都觉得自己做得不够好&a…

tensorflow释放显存

经过测试,通过sess.close释放资源并不能释放显存,导致重新建立一个session分配资源时失败。 stackoverflow上提到了两种方法: 1.利用numba库(需要安装numba库) 背后原理: Tensorflow只是为GPU分配显存&a…

GPU 显存 - Caffe 内存优化

Caffe - 显存优化 1. Caffe - memory multiloading 功能 原文 - Squeezing Memory out of Caffe Caffe 的一个优化版本 - caffe-yjxiong. 测试了一下, ResNet101 相对于官方 caffe, 能够明显节省显存占用, batchsize 可以增加很多. 显存优化的 Caffe 主要实现的功能: memor…

GPU程序缓存(GPU Program Caching)

GPU程序缓存 翻译文章: GPU Program Caching 总览 / 为什么 因为有一个沙盒, 每一次加载页面, 我们都会转化, 编译和链接它的GPU着色器. 当然不是每一个页面都需要着色器, 合成器使用了一些着色器, 这些着色器需要为tab选项卡重新渲染. 我们应该去缓存一些之前的缓存程序, 并在…