TensorFlow:在设置XLA_GPU_JIT设备编号为0时,CUDA:0设备不受XLA服务支持。

12

在使用基于Tensorflow后端的Keras时,我遇到了以下错误:

tensorflow.python.framework.errors_impl.InvalidArgumentError: 设备CUDA:0不受XLA服务支持,在设置XLA_GPU_JIT设备编号0时出现该问题。

相关代码:

tfconfig = tf.ConfigProto()
tfconfig.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1
tfconfig.gpu_options.allow_growth = True
K.tensorflow_backend.set_session(tf.Session(config=tfconfig))

tensorflow版本:1.14.0

2个回答

5

郭董的代码:

os.environ["CUDA_VISIBLE_DEVICES"] = "1" 

解决了我在jupyter notebook中遇到的内核崩溃问题:
tf.keras.models.load_model(path/to/my/model)

致命信息如下:

2020年1月26日11:31:58.727326:F tensorflow/stream_executor/lib/statusor.cc:34] 尝试获取值而不是处理错误:内部错误:初始化CUDA设备顺序为0的StreamExecutor失败:内部错误:调用cuDevicePrimaryCtxRetain失败:CUDA_ERROR_UNKNOWN:未知错误

我的TF版本是2.2.0-dev20200123,此系统上有两个GPU。


我遇到了同样的问题,你的解决方案解决了它。非常感谢! - Son Nguyen

1
这可能是由于您的TF默认(即第1个)GPU的内存不足造成的。如果您有多个GPU,请将Python程序转移到其他GPU上运行。在TF中(假设使用TF-2.0-rc1),请设置以下内容:
# Specify which GPU(s) to use
os.environ["CUDA_VISIBLE_DEVICES"] = "1"  # Or 2, 3, etc. other than 0

# On CPU/GPU placement
config = tf.compat.v1.ConfigProto(allow_soft_placement=True, log_device_placement=True)
config.gpu_options.allow_growth = True
tf.compat.v1.Session(config=config)

# Note that ConfigProto disappeared in TF-2.0

假设您的环境只有一个GPU,那么也许您别无选择,只能请您的朋友停止他的程序,然后招待他一杯咖啡。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接