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

news/2025/3/4 3:35:33/

Pytorch 训练时无用的临时变量可能会越来越多,导致 out of memory ,可以使用下面语句来清理这些不需要的变量。

torch.cuda.empty_cache()

官网 上的解释为:

Releases all unoccupied cached memory currently held by the caching allocator so that those can be used in other GPU application and visible invidia-smi. 

意思就是PyTorch的缓存分配器会事先分配一些固定的显存,即使实际上tensors并没有使用完这些显存,这些显存也不能被其他应用使用。这个分配过程由第一次CUDA内存访问触发的。

而 torch.cuda.empty_cache() 的作用就是释放缓存分配器当前持有的且未占用的缓存显存,以便这些显存可以被其他GPU应用程序中使用,并且通过 nvidia-smi命令可见。注意使用此命令不会释放tensors占用的显存

对于不用的数据变量,Pytorch 可以自动进行回收从而释放相应的显存。

PyTorch trick 集锦 - 知乎


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

相关文章

为什么一打开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选项卡重新渲染. 我们应该去缓存一些之前的缓存程序, 并在…

关于CPU cache

1、cache基础 简单来说&#xff0c;cache快&#xff0c;内存慢&#xff0c;硬盘更慢。 L1速度> L2速度> L3速度> RAM L1容量< L2容量< L3容量< RAM L1 Cache也被划分成指令cachaL1i (i for instruction)和数据cacheL1d (d for data)两种专门用途的缓存。…