我的新训练代码占用了很高的 GPU 内存使用率,但 volatile gpu-util 为零
/home/diana/data/KaggleDiabeticRetinopaI tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.835
pciBusID 0000:05:00.0
Total memory: 7.92GiB
Free memory: 7.81GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlowdevice (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:05:00.0)
我正在尝试一个新的数据生成器,旧的使用 10% 的 volatile gpu-util 运行,所以环境或 tensorflow 版本不会是关键问题
所以我想知道是否有人可以告诉我代码中的哪些元素可能导致此问题?
非常感谢!
最佳答案
默认情况下,Tensorflow 会在您创建 session 时预先分配所有可用的 VRAM,无论是否实际需要。 0% volatile GPU-util 仅表明 GPU 上实际上没有“运行”任何内容(无事件内核)。
如果您不希望这种情况发生,您可以将 allow_growth
设置为 True
并在您需要时将其适本地传递到 config
对象中创建您的 session 。
阅读tf.Session和 config.proto了解更多详情。
编辑:这就是您将 allow_growth
设置为 True
session = tf.Session(config=tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True)))
关于python - 高 GPU 内存使用率但零 volatile gpu-util,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41692257/