我想在同一个GPU上运行两个tensorflow会话。 这段代码第一次执行OK,但是当我再次执行时它失败了。
代码:
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
set_session(tf.Session(config=config))
首次执行:
2018-06-06 10:26:18.588778:I tensorflow / stream_executor / cuda / cuda_gpu_executor.cc:898]从SysFS读取的成功NUMA节点具有负值(-1),但必须至少有一个NUMA节点,所以返回NUMA节点零 2018-06-06 10:26:18.589191:I tensorflow / core / common_runtime / gpu / gpu_device.cc:1356]找到具有属性的设备0: 名称:特斯拉K80专业:3个未成年人:7个memoryClockRate(GHz):0.8235 pciBusID:0000:00:04.0 totalMemory:11.17GiB freeMemory:11.09GiB
2018-06-06 10:26:18.589232:I tensorflow / core / common_runtime / gpu / gpu_device.cc:1435]添加可见的gpu设备:0
2018-06-06 10:26:18.875722:I tensorflow / core / common_runtime / gpu / gpu_device.cc:923]具有强度1边缘矩阵的设备互连StreamExecutor:
2018-06-06 10:26:18.875770:I tensorflow / core / common_runtime / gpu / gpu_device.cc:929] 0
2018-06-06 10:26:18.875779:I tensorflow / core / common_runtime / gpu / gpu_device.cc:942] 0:N
2018-06-06 10:26:18.876097:I tensorflow / core / common_runtime /gpu/gpu_device.cc:1053]创建TensorFlow设备(/ job:localhost / replica:0 / task:0 / device:GPU:0 with 5720 MB存储器) - >物理GPU(设备:0,名称:Tesla K80,pci总线ID:0000:00:04.0,计算能力:3.7)
第二次执行(在另一个终端):
2018-06-06 10:27:14.519776:I tensorflow / core / common_runtime / gpu / gpu_device.cc:1387]忽略其执行程序处于无效状态的可见gpu设备0:内部:初始化CUDA设备序号的StreamExecutor失败0:内部:调用cuDevicePrimaryCtxRetain失败:CUDA_ERROR_INVALID_DEVICE
2018-06-06 10:27:14.519992:F ./tensorflow/stream_executor/lib/statusor.h:212]非OK状态:status_ status:内部:初始化CUDA设备的StreamExecutor序号0:内部:呼叫失败到cuDevicePrimaryCtxRetain:CUDA_ERROR_INVALID_DEVICE
中止(核心倾销)
Tensorflow版本:
tensorflow==1.8.0
tensorflow-gpu==1.8.0
tensorflow-tensorboard==1.5.1
的Nvidia:
NVIDIA驱动程序版本:396.26
Cuda版本:9.0版,V9.0.176版
libcun_version:libcudnn7_7.1.3.16-1 + cuda9.0_amd64.deb
问题:
是否可以在同一GPU中运行多个会话? (工作原理)