我可以列出使用以下tensorflow代码的gpu设备:
import tensorflow as tf
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())结果是:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 17897160860519880862, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 9751861134541508701
physical_device_desc: "device: XLA_GPU device", name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 5368380567397471193
physical_device_desc: "device: XLA_CPU device", name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 21366299034
locality {
bus_id: 1
links {
link {
device_id: 1
type: "StreamExecutor"
strength: 1
}
}
}
incarnation: 7110958745101815531
physical_device_desc: "device: 0, name: Tesla P40, pci bus id: 0000:02:00.0, compute capability: 6.1", name: "/device:GPU:1"
device_type: "GPU"
memory_limit: 17336821351
locality {
bus_id: 1
links {
link {
type: "StreamExecutor"
strength: 1
}
}
}
incarnation: 3366465227705362600
physical_device_desc: "device: 1, name: Tesla P40, pci bus id: 0000:03:00.0, compute capability: 6.1", name: "/device:GPU:2"
device_type: "GPU"
memory_limit: 22590563943
locality {
bus_id: 2
numa_node: 1
links {
link {
device_id: 3
type: "StreamExecutor"
strength: 1
}
}
}
incarnation: 8774017944003495680
physical_device_desc: "device: 2, name: Tesla P40, pci bus id: 0000:83:00.0, compute capability: 6.1", name: "/device:GPU:3"
device_type: "GPU"
memory_limit: 22590563943
locality {
bus_id: 2
numa_node: 1
links {
link {
device_id: 2
type: "StreamExecutor"
strength: 1
}
}
}
incarnation: 2007348906807258050
physical_device_desc: "device: 3, name: Tesla P40, pci bus id: 0000:84:00.0, compute capability: 6.1"]我想知道什么是XLA_GPU和XLA_CPU
发布于 2019-10-21 21:25:53
正如文档中提到的,XLA代表“加速线性代数”。它是Tensorflow相对较新的优化编译器,通过将以前的多个CUDA内核合并为一个(简化,因为这对您的问题并不重要),可以进一步加速ML模型的GPU操作。
对于你的问题,我的理解是,XLA与默认的Tensorflow编译器足够独立,它们分别注册GPU设备,并对它们认为可见的GPU有略微不同的约束(有关这方面的更多信息,请参阅here )。查看您运行的命令的输出,似乎XLA注册了1个GPU,而普通TF注册了3个GPU。
我不确定你是有问题还是只是好奇,但如果是前者,我建议你看看我上面链接的问题和this one。Tensorflow对哪些CUDA/cuDNN版本很挑剔,它可以完美地使用这些版本,而且可能您使用的是不兼容的版本。(如果您没有问题,那么希望我的答案的第一部分就足够了。)
https://stackoverflow.com/questions/52943489
复制相似问题