我安装了TensorFlow的GPU版本,一创建会话,就显示以下日志:
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] 发现设备0,属性如下:名称:GeForce GTX TITAN Black 主版本:3 次版本:5 内存时钟频率(GHz):0.98 PCI总线ID:0000:01:00.0 总内存:5.94GiB 可用内存:5.31GiB 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] 创建TensorFlow设备 (/gpu:0) -> (设备: 0, 名称: GeForce GTX TITAN Black, PCI总线ID: 0000:01:00.0)
当我检查GPU内存使用情况时,发现大约90%的内存被占用。
TensorFlow的文档对此没有任何说明。它是否控制了GPU?为什么它消耗了大部分内存?
回答:
TensorFlow会话在启动时会分配几乎所有的GPU内存,这样可以绕过CUDA分配器。
不要在同一个进程中运行多个使用CUDA的库,否则会发生奇怪的事情(比如这种流执行器错误)。