#tensorflow #jupyter-notebook #jupyter-lab
#tensorflow #jupyter-ноутбук #jupyter-lab
Вопрос:
У меня установлена лаборатория jupyter на сервере ubuntu 18.04. Я установил видеокарту и установил tenserflow 2.3.1 (согласно этим инструкциям: https://www.tensorflow.org/install/gpu ) используя python 3.6.9. Мне пришлось добавить следующую переменную среды в /etc/environment, чтобы заставить ее работать:
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64
Однако лаборатория Jupyter не видит мой графический процессор! Когда я запускаю следующие команды в записной книжке jupyter lab
import tensorflow as tf
tf.config.experimental.list_physical_devices()
он возвращает следующее:
ВЫВОД ИЗ JUPYTER LAB NOTBOOK
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU')]
Но, когда я запускаю те же две строки в записной книжке ipython (или интерактивной оболочке python3 или с терминала в лаборатории jupyter) Я получаю следующий вывод:
ВЫВОД ИЗ ОБОЛОЧКИ IPYTHON
2020-11-28 13:21:39.005815: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcuda.so.1 2020-11-28
13:21:39.083058: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc: 982] успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возврат нулевого узла NUMA 2020-11-28
13:21:39.083573: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Найдено устройство 0 со свойствами: pciBusID: 0000:01:00.0 имя: GeForce RTX 2060 Вычислительная мощность: 7,5 Частота ядра: 1,68 ГГц Количество ядер: 30 Размер памяти устройства: 5,79 Гигабайт Ширина полосы пропускания памяти устройства: 312,97 Гигабайт / с
2020-11-28 13:21:39.083610: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcudart.so.10.1 2020-11-28
13:21:39.142212: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcublas.so.10 2020-11-28
13:21:39.172917: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcufft.so.10 2020-11-28
13:21:39.180484: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcurand.so.10 2020-11-28
13:21:39.244521: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcusolver.so.10 2020-11-28
13:21:39.259263: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcusparse.so.10 2020-11-28
13:21:39.370126: Я tensorflow/stream_executor/platform/default/dso_loader.cc:48] Успешно открыл динамическую библиотеку libcudnn.so.7 2020-11-28
13:21:39.370414: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возврат нулевого узла NUMA 2020-11-28
13:21:39.371750: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] успешное чтение узла NUMA из SysFS имело отрицательное значение (-1), но должен быть хотя бы один узел NUMA, поэтому возврат нулевого узла NUMA 2020-11-28
13:21:39.372808: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Добавление видимых устройств gpu: 0
Выход [3]: [Физическое устройство (name= ‘/ physical_device:CPU: 0′, device_type=’CPU’), физическое устройство (name= ‘/ physical_device: XLA_CPU:0’, device_type= ‘XLA_CPU’), Физическое устройство (name= ‘/ physical_device: XLA_GPU:0’, device_type= ‘XLA_GPU’), физическое устройство (name= ‘/ physical_device: GPU:0’, device_type = ‘GPU’)]
Очевидно, что оболочка ipython / python3 видит это, а лаборатория jupyter — нет.
Я даже пытаюсь установить LD_LIBRARY_PATH в лаборатории jupyter через:
import os
os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda-10.2/lib64'
По-прежнему не работает!
Как я могу заставить jupyter lab видеть мой графический процессор, чтобы я мог обучать свои сети на графическом процессоре, а не на процессоре?
редактирование 1: добавлена четкость вывода
Комментарии:
1. Вывод показывает, что лаборатория jupyter видит графический процессор, я не уверен, в чем именно проблема. Какая часть вывода «ясно» показывает, что лаборатория jupyter не видит его?
2. Выход [3] сверху использует интерактивную оболочку ipython, а не вывод из ноутбука jupyter lab. Провел небольшое исследование, и ‘XLA_GPU: 0’ не является графическим процессором
Ответ №1:
У меня была такая же проблема в Jupyter notebook, потому что я устанавливаю tensorflow через conda, и мне нужно добавить переменную path вручную. Я также не могу добавить переменные среды в записную книжку, поэтому вместо этого я попытался добавить переменные в kernel.json
jupyter, и это сработало для меня. Это выглядит так:
{
"argv": [
...
],
"env": {
"LD_LIBRARY_PATH":"your_lib_path"
},
...
}