Tensorflow идентифицирует графические процессоры, но не распознает их в списке устройств - PullRequest
1 голос
/ 05 мая 2020

Я установил tenorflow-gpu версии 1.15 в своем профиле в кластере, который имеет доступ к 2 графическим процессорам. Я смог проверить это, запустив

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

Приведенные выше операторы дают список локальных устройств как:

[name: "/device:CPU:0"
 device_type: "CPU"
 memory_limit: 268435456
 locality {
 }
 incarnation: 17161457237421390575,
 name: "/device:XLA_CPU:0"
 device_type: "XLA_CPU"
 memory_limit: 17179869184
 locality {
 }
 incarnation: 2136131381156225295
 physical_device_desc: "device: XLA_CPU device",
 name: "/device:XLA_GPU:0"
 device_type: "XLA_GPU"
 memory_limit: 17179869184
 locality {
 }
 incarnation: 5626920946153973344
 physical_device_desc: "device: XLA_GPU device",
 name: "/device:XLA_GPU:1"
 device_type: "XLA_GPU"
 memory_limit: 17179869184
 locality {
 }
 incarnation: 1069390960246559975
 physical_device_desc: "device: XLA_GPU device"]

, который четко показывает перечисленные устройства GPU. При дальнейшем поиске я узнал, что XLA_GPU коррелирует с графическим процессором, способным поддерживать процедуры линейной алгебры тензорного потока. Однако, когда я запускаю тестовую функцию графического процессора

tf.test.is_gpu_available()

, вывод будет False. Я не понимаю, не обнаруживается ли здесь графический процессор, или есть проблема с установкой tensorflow-gpu (которая была через pip). Мы будем благодарны за любые комментарии по этому поводу.

1 Ответ

1 голос
/ 11 мая 2020

Рекомендуемый способ - проверить, использует ли TensorFlow графический процессор:

tf.config.list_physical_devices('GPU') 

Вывод:

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Следующее также возвращает имена ваших устройств графического процессора.

import tensorflow as tf
tf.test.gpu_device_name()

Если установлена ​​версия пакета non-GPU, функция также вернет False. Используйте tf.test.is_built_with_cuda, чтобы проверить, был ли TensorFlow собран с поддержкой CUDA.

Примечание. : tf.test.is_gpu_available устарело. Пожалуйста, обратитесь сюда

Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Он будет удален в будущей версии. Инструкции по обновлению: используйте вместо этого tf.config.list_physical_devices ('GPU').

Лучший способ протестировать - запустить код и проверить, используется ли GPU с nvidia-smi, как указано Матиасом Вальденегро или запустите простой код, как показано ниже

import tensorflow as tf
with tf.device('/GPU:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.compat.v1.Session() as sess:
    print (sess.run(c))

Вывод:

[[22. 28.]
 [49. 64.]]
...