DSVM GPU 内存不足

Posted

技术标签:

【中文标题】DSVM GPU 内存不足【英文标题】:DSVM GPU runs out of memory 【发布时间】:2018-07-10 17:52:37 【问题描述】:

我正在 DSVM Ubuntu 机器上开发一个 REST API Web 应用程序。服务器运行 Flask、Apache 和 Keras。

我正在使用具有 56GB RAM 和单个 K80 GPU 的 GPU 机器。

问题是,即使我的模型使用小批量进行预测,GPU 也会耗尽内存。

没有运行,12GB GPU 使用超过 10GB。也许这是因为 Apache 的问题。

运行nvidia-smi 显示以下内容:

|    0     38915      C   python  370MiB |

|    0     98378      C   /usr/sbin/apache2    10860MiB |

【问题讨论】:

【参考方案1】:

我假设您正在为 Keras 使用 TensorFlow 后端。默认情况下,TensorFlow 会分配几乎所有的 GPU 内存,以减少潜在的内存碎片。从the TensorFlow guide to using the GPU,可以限制TensorFlow分配的总内存:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.3
set_session(tf.Session(config=config))

【讨论】:

以上是关于DSVM GPU 内存不足的主要内容,如果未能解决你的问题,请参考以下文章

GPU 在训练大型数据集期间内存不足

CUDA 错误:内存不足 - Python 进程使用所有 GPU 内存

Tensorflow 耗尽 GPU 内存:分配器 (GPU_0_bfc) 尝试分配内存不足

detectron2没有Gpu怎么进行训练,内存不足的问题

Google Colab 上的 GPU 内存不足错误消息

初始化模型时 GPU 内存不足