Tensorflow100%占用GPU内存

news/2025/1/16 3:44:20/

在使用GPU进行“炼丹”的过程中,经常会出现,明明数据不是很大,网络规模也很小,batch_size也不大,但是GPU内存占用瞬间拉满。GPU内存拉满的原因可能时Tensorflow默认将内存全部沾满,以利用大块内存,实现提速。如果想要Tensorflow占用的GPU内存下降,可采用以下几种方式:

1. 获取特定数量GPU内存

这种情况可以给程序分配指定大小的内存,剩下的GPU内存该干嘛干嘛,不会受到影响。但是在指定内存过小的情况下,可能会爆内存!

for gpu in tf.config.experimental.list_physical_devices(“GPU”):             
    tf.config.experimental.set_virtual_device_configuration(gpu, 
    [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048)]) 

2. 仅在需要时获取GPU内存

Tensorflow炼丹过程中,一直占用着GPU内存,即使是炼丹结束,只要不关闭程序,GPU内存就会一直显示100%占用,这时通过下面的指令就可以让Tensorflow及时释放GPU内存,强迫症瞬间得到治愈。 

for gpu in tf.config.experimental.list_physical_devices(“GPU”):
      tf.config.experimental.set_memory_growth(gpu, True)

3. 将一个GPU分为两个虚拟设备

一个“丹炉”太慢了?多个“丹炉”太贵了?通过下面的指令可以将一个实体“丹炉”虚拟为多个“丹炉”,就是不知道会不会炸炉。

physical_gpus = tf.config.experimental.list_physical_devices(“GPU”)
tf.config.experimental.set_virtual_deivce_configuration(physical_gpus[0],     
    tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048), 
    tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048)])

参考文献

[1]  A GéRon. Hands-on machine learning with Scikit-Learn and TensorFlow : concepts, tools, and techniques to build intelligent systems.  2017.


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

相关文章

显存优化 | 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)两种专门用途的缓存。…

src/storage/storage.cc: Compile with USE_CUDA=1 to enable GPU usage【MXNET GPU版】

【环境】Win10 一、想在GPU上运行MXNET&#xff0c;报错如下&#xff1a; MXNetError: [23:23:48] src/storage/storage.cc:xxx: Compile with USE_CUDA1 to enable GPU usage【原因】安装的是cpu版的mxnet&#xff0c;不是gpu版的 【解决】卸载原来cpu版本的mxnet&#xff…

Locality-Driven Dynamic GPU Cache Bypassing

文章目录 abstractintroduction问题背景内存请求处理 GPU缓存效率分析过滤器的设计decoupled 设计Decoupled L1D:operationSM Dueling 实验性能评估 abstract 本篇文章主要介绍了一个缓存优化的方法&#xff0c;这个方法专门对大吞吐量的架构&#xff0c;比如GPU应用&#xff…