有没有办法将我的所有 GPU 设置为非 XLA,这样我就可以使用多个 gpu 而不是一个 gpu 进行训练?

use*_*311 5 gpu nvidia keras tensorflow

我想使用多个 GPU 训练 keras 模型。我的理解是您目前无法使用 XLA 训练多个 GPU。问题是我不知道如何关闭 XLA。每个 GPU 都被列为 xla gpu。

作为参考,我在最新的 Ubuntu 桌面上使用了 3 个 RTX2070。nvidia-smi 确实显示了所有 3 个 gpu。

我试过卸载并重新安装tensorflow-gpu。那没有帮助。

keras.utils.training_utils import multi_gpu_model
model = multi_gpu_model(model,gpus=3)
Run Code Online (Sandbox Code Playgroud)

值错误:

 To call `multi_gpu_model` with `gpus=3`, we expect the following devices to be available: ['/cpu:0', '/gpu:0', '/gpu:1', '/gpu:2']. However this machine only has: ['/cpu:0', '/xla_cpu:0', '/xla_gpu:0', '/xla_gpu:1', '/xla_gpu:2']. Try reducing `gpus`.
Run Code Online (Sandbox Code Playgroud)

编辑:我正在使用tensorflow-gpu,实际上我刚刚确认它甚至没有使用一个 gpu。我通过将批量大小提高到 10,000 来确认这一点,并且没有看到 nvidia-smi 的变化,但我确实通过 htop 看到了 CPU/内存使用的变化。

编辑2:

tf.test.gpu_device_name()
Run Code Online (Sandbox Code Playgroud)

只打印一个空字符串

然而

    from tensorflow.python.client import device_lib
    print(device_lib.list_local_devices())

prints all of my devices...
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 7781250607362587360
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 12317810384332135154
physical_device_desc: "device: XLA_CPU device"
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 1761593194774305176
physical_device_desc: "device: XLA_GPU device"
, name: "/device:XLA_GPU:1"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 11323027499711415341
physical_device_desc: "device: XLA_GPU device"
, name: "/device:XLA_GPU:2"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 3573490477127930095
physical_device_desc: "device: XLA_GPU device"
]
Run Code Online (Sandbox Code Playgroud)

小智 0

我也遇到这个问题。

有时我通过重新安装tensorflow-gpu包来修复它。

pip uninstall tensorflow-gpu
pip install tensorflow-gpu
Run Code Online (Sandbox Code Playgroud)

然而,有时这些命令不起作用。所以我尝试了以下方法,结果令人惊讶。

conda install -c anaconda tensorflow-gpu
Run Code Online (Sandbox Code Playgroud)