我在共享计算资源的环境中工作,也就是说,我们有几台服务器机器都配备了几个Nvidia Titan X GPU。

对于小到中等尺寸的模型,Titan X的12GB通常足以让2-3人在同一GPU上同时进行训练。如果模型足够小,以至于单个模型不能充分利用Titan X的所有计算单元,那么实际上可以导致某种加速(相比串行多个训练任务来说)。即使在GPU的并发访问确实减慢了单个训练时间的情况下,同时在GPU上拥有多个用户运行的灵活性仍然不错。

TensorFlow的问题在于,默认情况下,它会在GPU启动时为其分配全部可用内存。即使对于一个小型的2层神经网络,我也看到Titan X的12 GB用完了。

有没有办法让TensorFlow只分配4GB的GPU内存,如果知道这个数量对于给定的模型是足够的?

最佳解决办法

通过将tf.GPUOptions作为可选config参数的一部分传递来构造tf.Session时,可以设置要分配的GPU内存部分:

# Assume that you have 12GB of GPU memory and want to allocate ~4GB:
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

per_process_gpu_memory_fraction充当同一机器上每个GPU上的进程将使用的GPU内存数量的硬上限。目前,这个比例被统一应用到同一台机器上的所有GPU上;没有办法在per-GPU的基础上进行设置。

次佳解决办法

config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)

https://github.com/tensorflow/tensorflow/issues/1578

参考资料

  • How to prevent tensorflow from allocating the totality of a GPU memory?

----------------------------------------------------------------------------------------------------------

原文:https://vimsky.com/article/3776.html

如何防止Tensorflow分配整个GPU内存?相关推荐

  1. PyTorch可视化工具:GPU内存分配

    本文来源  机器之心  编辑:杜伟 想要了解自己的 PyTorch 项目在哪些地方分配 GPU 内存以及为什么用完吗?不妨试试这个可视化工具. 近日,PyTorch 核心开发者和 FAIR 研究者 Z ...

  2. tensorflow GPU 内存不够

    tensorflow GPU 内存不够 from tensorflow as tf gpus = tf.config.list_physical_devices('GPU') if gpus:try: ...

  3. GPU内存分明没人占用但是分配不了内存的解决办法

    服务器上多张GPU卡被不同人在不同的docker容器中使用,有时GPU分明没人使用了,使用nvidia-smi查看也是内存没占用: 可是在容器内运行程序到分配GPU内存时总是报内存溢出的错误: 可以看 ...

  4. Linux和Windows系统下:安装Anaconda、Paddle、tensorflow、pytorch,GPU[cuda、cudnn]、CPU安装教学,以及查看CPU、GPU内存使用情况

    Linux和Windows系统下安装深度学习框架所需支持:Anaconda.Paddlepaddle.Paddlenlp.pytorch,含GPU.CPU版本详细安装过程 1.下载 Anaconda ...

  5. TensorFlow指定使用GPU 多块gpu

    持续监控GPU使用情况命令: $ watch -n 10 nvidia-smi 1 一.指定使用某个显卡 如果机器中有多块GPU,tensorflow会默认吃掉所有能用的显存, 如果实验室多人公用一台 ...

  6. 深度学习 占用gpu内存 使用率为0_深度学习的完整硬件指南

    原标题 | A Full Hardware Guide to Deep Learning 作者 | Tim Dettmers 译者 | linlh.呀啦呼(Tufts University).Ryan ...

  7. 腾讯游戏学院专家分析:Unity在移动设备的GPU内存机制

    导语CPU和GPU是共享一份内存的吗?腾讯游戏学院专家Donald将在本文尝试以一张贴图纹理的虚拟内存占用为例,解答一些内存方面的问题.本篇主要分析iOS系统,后续会更新安卓篇. 开发手机游戏时,常听 ...

  8. 指定tensorflow运行的GPU或CPU设备

    如果 TensorFlow 指令中兼有 CPU 和 GPU 实现,当该指令分配到设备时,GPU 设备有优先权. 如果你的系统里有多个 GPU, 那么 ID 最小的 GPU 会默认使用. 当我们要指定t ...

  9. Window10 Tensorflow 2.1 GPU 安装和测试

    Tensorflow 2.1 GPU 安装和测试 1. 硬件要求 2. 软件要求 简单的描述一下它们的功能 3. 安装步骤 3.1. nvidia 驱动可以到这个地址下载, 我的显卡是RTX 2070 ...

  10. PostgreSQL GPU 加速(HeteroDB pg_strom) (GPU计算, GPU-DIO-Nvme SSD, 列存, GPU内存缓存)

    标签 PostgreSQL , GPU , heteroDB , pg_strom , CUDA , nvidia , DIO , Nvme , SSD , 列存 , GPU内存缓存 背景 Heter ...

最新文章

  1. 递归/回溯:Combination Sum II数组之和
  2. python高阶函数(abs()、round()、map()、reduce()、filter())
  3. Shell - 挂载硬盘
  4. 获取网页各种宽高的值
  5. Kubernetes — 在 OpenStack 上使用 kubeadm 部署高可用集群
  6. 试用了一下sourceMonitor有点不知所云..
  7. ORA-12170:TNS:连接超时
  8. 今天在看慕课网的java学习路径
  9. 复制url直接能跳过验证_python 爬虫如何突破登录验证
  10. 转:SQL:外连接on条件与where条件的区别
  11. 5G时代已到,还有哪些值得关心的安全问题?
  12. SqlServer删除表中某几列重复的记录并保留一条
  13. 修改JDK的经历:两处字体的粗体代码引起的错误
  14. 九歌计算机在线作诗硬件原理,矣晓沅,孙茂松:计算机的诗意 | 机器写诗的背后...
  15. 颜色值RGB转换为HEX(十六进制)
  16. 小程序CMS(开通预览)
  17. 关于 人工智能 的思考
  18. jenkins构建:ERROR: Error fetching remote repo ‘origin‘(hudson.plugins.git.GitException/does not point)
  19. 用命令行去除音频文件的背景噪声
  20. 【老生谈算法】matlab实现人工免疫算法——人工免疫算法

热门文章

  1. php网站挂马,网页挂马详细教程
  2. python为在线漫画网站自制非官方API(未完待续)
  3. 树莓派(Raspberry Pi)安装五笔输入法,五笔拼音混合输入法
  4. XTU,C语言,Tri-Triangle
  5. Linux服务器CPU飙升排查
  6. 网站开发进阶(六十六)CSS3 - 新单位vmin/vmax与旧单位ex/ch使用详解
  7. 共享文件 麒麟系统_银河麒麟操作系统上共享文件目录的方法实践
  8. 51单片机学习案例——自学使用
  9. 苹果动图分享给android,苹果实况图片怎么发给别人
  10. Validation 参数校验