Эта короткая заметка описывает решение возможных проблем, связанных с установкой TensoFlow + Keras и соответствующих пакетов для R с поддержкой CUDA + cuDNN в ОС Ubuntu 18 (большая часть актуальна и для тех, кто R не использует). Все из личного опыта установки и настройки практически сразу после выхода Ubuntu 18; на момент написания и в будущем эти проблемы могут быть уже не актуальны.
Рекомендуется ознакомиться:
1) How to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux
1) How to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux
Последовательность действий:
1) Добавляем репозиторий:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo add-apt-repository ppa:graphics-drivers/ppa
2) Смотрим, какие драйвера доступны для установки:
ubuntu-drivers devices
3) Ставим подходящие драйвера, например, отмеченные как recommended (у меня на момент установки это был вариант nvidia-390):
sudo apt-get install nvidia-390 nvidia-settings
2. Установка CUDA 9.0 + cuDNN 7
Последовательность действий:
1) Устанавливаем по официальной инструкции. TensorFlow 1.9 требует CUDA 9.0, в то время как уже давно доступны версии 9.1 и 9.2. TensorFlow с поддержкой новейших версий можно собрать из исходников, но мы этого делать не будем. На https://www.paperspace.com/ есть готовый образ с такой сборкой.
2) В случае проблем с версией компилятора используем совет из Installing Nvidia CUDA 8.0 on Ubuntu 16.04 for Linux GPU Computing (New Troubleshooting Guide):
sudo sh cuda_9.0.176_384.81_linux.run --override
Разумеется, если планируется компиляция кода на C++, придется совместимый компилятор все же установить, причем так, чтобы он не конфликтовал с системным.
После установки увидим лог вида
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.0
Samples: Installed in /home/andrey, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-9.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
Logfile is /tmp/cuda_install_2291.log
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.0
Samples: Installed in /home/andrey, but missing recommended libraries
Please make sure that
- PATH includes /usr/local/cuda-9.0/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
Logfile is /tmp/cuda_install_2291.log
3) Остается распаковать и переместить файлы cuDNN:
tar -xzvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
3. Переменные среды
Рекомендуется ознакомиться:
2) Local GPU
3) Deep learning с использованием языка R и библиотеки mxnet. Установка и начало работы
4) ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
5) Problems with tensorflow-gpu
4) ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
5) Problems with tensorflow-gpu
Последовательность действий:
1) Редактируем ~/.bashrc:
sudo nano ~/.bashrc
Добавляем
export CUDA_HOME=/usr/local/cuda-9.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
PATH=${CUDA_HOME}/bin:${PATH}
export PATH
2) На всякий случай редактируем ~/.profile:
sudo nano ~/.profile
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
PATH=${CUDA_HOME}/bin:${PATH}
export PATH
2) На всякий случай редактируем ~/.profile:
sudo nano ~/.profile
Добавляем
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64
PATH=${CUDA_HOME}/bin:${PATH}
export PATH
3) Если после этого установленный в окружении Anaconda или иным способом Tensorflow работает нормально под Питоном, но отказывается работать в R, редактируем /usr/lib/R/etc/ldpaths:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${CUDA_HOME}/lib64
PATH=${CUDA_HOME}/bin:${PATH}
export PATH
3) Если после этого установленный в окружении Anaconda или иным способом Tensorflow работает нормально под Питоном, но отказывается работать в R, редактируем /usr/lib/R/etc/ldpaths:
sudo nano /usr/lib/R/etc/ldpaths
Добавляем
export CUDA_HOME=/usr/local/cudaexport
LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
4. Использование окружений Anaconda
Установить TensorFlow из R получается не всегда даже при использовании актуальных версий соответствующих пакетов с GitHub (например, TensorFlow уже обновился, а пакет для R - еще нет). Если что-то пошло не так, можно создать окружение
conda create -n tensorflow pip python=3.6
и установить в него TensorFlow и Keras со всеми зависимостями. Затем в R перед началом работы вводим reticulate::use_condaenv("tensorflow"), чтобы использовать созданное нами окружение.
Комментариев нет:
Отправить комментарий