TensorFlow:未创建XLA设备,因为tf_xla_enable_xla_devices未设置。

16

我从Code Project | 一份完整的自驾车指南中运行drive.py程序。

但是当我启动程序时,出现了错误:

Not creating XLA devices, tf_xla_enable_xla_devices not set

有谁知道我该如何解决这个问题?我应该下载或重新安装什么?

我使用的环境:

Python 3.8.7

CUDA 11.0

tensorflow 2.4.1

当访问http://0.0.0.0:4567/时,当然我什么也看不到。

输入图像描述

4个回答

30

请在您的脚本最开始的位置添加以下内容:

os.environ['TF_XLA_FLAGS'] = '--tf_xla_enable_xla_devices'

4
如果您想在命令行中设置它,可以导出TF_XLA_FLAGS=--tf_xla_enable_xla_devices。 - Karan Shah
1
我需要GPU吗?还是适用于只有CPU的机器? - PATHIK GHUGARE
1
它也适用于仅使用CPU的Linux/Mac机器(例如Heroku dynos)。 - Rafa Nogales

3

或者,可以在Windows系统设置中设置环境变量:TF_XLA_FLAGS = --tf_xla_enable_xla_devices

根据这个讨论,这有助于比简单地忽略信息更有效地使用GPU。


2
通常这个消息不应该干扰。
请尝试。
import tensorflow as tf
print("GPUs: ", len(tf.config.experimental.list_physical_devices('GPU')))

请检查它们是否被检测到。

如果需要,请在 GitHub 上查看发布说明:

XLA:CPU 和 XLA:GPU 设备不再默认注册。 如果确实需要它们,请使用 TF_XLA_FLAGS = --tf_xla_enable_xla_devices,但此标志将在随后的版本中被删除。


1
当我运行这个命令时,我得到了:"GPUs: 1"。 - Cierniostwor

0

我不确定Tensorflow的XLA:CPU和XLA:GPU是否会在后续版本中被“移除”。XLA:CPU被描述为在GPU执行Tensorflow建模代码时提供对CPU的访问。当设置其环境变量时,XLA功能允许CPU在特定的关键性能阶段“帮助”,从而加速通常需要GPU完成的进程。这在https://www.tensorflow.org/xla中有解释。

我没有找到如何在R或更具体地说是Rstudio中设置所需环境变量的清晰说明。在另一篇博客中,有人建议(a)添加一个环境路径变量以打开XLA总体功能,但然后再添加另一个变量,专门用于Tensorflow使用。

设置正确的环境变量可能因操作系统、脚本程序(Python vs R vs Windows Ubuntu)以及安装的CUDA和CUDNN版本而异。

对我来说最重要的是查看未设置的特定环境变量的输出,从而导致XLA无法激活。但同时,XLA可能需要在整个R会话或脚本中激活。

在我的情况下,我使用Ubuntu 20.04来运行Rstudio 2021.09.0,并搭配NVIDIA GPU和驱动程序版本470.57.02、CUDA-11.4以及CUDNN8_8.2.4.15(与CUDA 11.4相匹配)。以下两个R Setenv()命令使得我的Rstudio脚本输出中的“XLA错误”消失了:
Sys.setenv("XLA_FLAGS=--xla_gpu_cuda_data_dir"="/usr/local/cuda-11.4")

Sys.setenv("TF_XLA_FLAGS"="--tf_xla_enable_xla_devices")

请注意,两个环境变量都已设置,并且 xla_gpu_cuda_data 目录在 /usr/local/cuda-11.X 中正确命名。
此外,在用户的配置文件脚本中设置的环境 PATH 和 LD_LIBRARY_PATH 变量(我的是 .profile)在重新启动后(或终端中使用 source 命令)也需要指示正确的 cuda 目录。

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