高 GPU 内存使用率但零易失性 gpu-util

Dia*_* Yu 6 python gpu nvidia tensorflow

我的新训练代码占用了高 GPU 内存使用率但零易失性 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)
Run Code Online (Sandbox Code Playgroud)

我正在尝试一个新的数据生成器,旧的使用 10% 的 volatile gpu-util 运行,所以环境或 tensorflow 版本不会是关键问题

所以我想知道是否有人可以告诉我代码中的哪个元素可能导致这个问题?

非常感谢您?

Pri*_*ham 6

默认情况下,Tensorflow 在您创建会话时预先分配所有可用的 VRAM,无论是否实际需要。0% volatile GPU-util 仅表明 GPU 上实际上没有任何东西在“运行”(没有活动的内核)。

如果您不希望发生这种情况,您可以在创建会话时将其设置allow_growthTrue并在config对象中适当地传递它。

阅读tf.Sessionconfig.proto了解更多细节。

编辑:这是您设置的allow_growth方式True

session = tf.Session(config=tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True)))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明