Установка Tensorflow и PyTorch GPU для видеокарт Nvidia для Ubuntu

Чтобы ускорить обучения нейронных сетей их надо делать на видеокартах. CUDA — это технология от Nvidia, которая позволяет программировать вычисления на видеокартах Nvidia.

Воспользутесь инструкцией, если вам нужно установить драйвер Nvidia в LXC или докер контейнер .

Установка драйверов Nvidia

Убедитесь, что у вас установлена видеокарта Nvidia:

_x000D_nvidia-smi

Для системы Ubuntu с видеокартой Nvidia нужно поставить драйвер. На момент написания данного поста последний драйвер 525.147.05.

Установите ядро:

_x000D_aptitude update_x000D_aptitude install linux-generic linux-headers-generic linux-image-generic

Установите драйвер Nvidia:

_x000D_aptitude install nvidia-driver-535 linux-modules-nvidia-535-generic

Для ядра hwe

_x000D_apt-get install linux-generic-hwe-22.04 linux-headers-generic-hwe-22.04 linux-tools-generic-hwe-22.04_x000D_apt-get install linux-modules-nvidia-535-generic-hwe-22.04

Удалите старый ключ от Nvidia репозитория, если он у вас был подключен до этого:

_x000D_apt-key del 7fa2af80

Подключите репозиторий Nvidia:

_x000D_wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin -O "/etc/apt/preferences.d/cuda-repository-pin-600"_x000D_echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /" > /etc/apt/sources.list.d/nvidia.list

Установите новый ключ от Nvidia репозитория:

_x000D_apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub

Установите CUDA 11:

_x000D_aptitude update_x000D_aptitude install cuda-cudart-11-7 libcublas-11-7 libcufft-11-7 libcufile-11-7 libcurand-11-7 libcusolver-11-7 libcusparse-11-7 libcudnn8 cuda-cufft-10-2

Можете также установить полный пакет CUDA:

_x000D_aptitude install cuda-11-7

Установка PyTorch

Установка:

_x000D_pip3 install torch torchvision torchaudio numpy matplotlib_x000D_

Проверьте доступность GPU в PyTorch:

_x000D_python3 -c "import torch; print(torch.cuda.is_available())"

Установка Tensorflow

Для начала, установите основные библиотеки Tensorflow GPU, Keras, Numpy, Matplotlib. В командой строке введите команды:

_x000D_pip3 install tensorflow-gpu tensorflow_probability tensorflow_addons_x000D_pip3 install keras_x000D_pip3 install numpy_x000D_pip3 install matplotlib

Проверьте версию Tensorflow:

_x000D_python3.8 -c "import tensorflow as tf; print(tf.__version__)"

Проверьте список драйверов:

_x000D_python3.8 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"_x000D_

Если без ошибок библиотека выдала список графических процессоров, значит все установилось корректно.

В начале вашей программы на python для Tensorflow должны быть следующие строки:

_x000D_import os, sys_x000D__x000D_# Устанавливает переменные окружения_x000D_#os.environ["TF_GPU_ALLOCATOR"]="cuda_malloc_async"_x000D_os.environ["TF_CPP_VMODULE"]="gpu_process_state=10,gpu_cudamallocasync_allocator=10"_x000D__x000D_import tensorflow as tf_x000D__x000D_# Устанавливает размер памяти GPU в Мбайт_x000D_gpu_memory_limit = 1024_x000D_gpus = tf.config.list_physical_devices('GPU')_x000D_tf.config.experimental.set_memory_growth(gpus[0], True)_x000D_tf.config.experimental.set_virtual_device_configuration(_x000D_ gpus[0],_x000D_ [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=gpu_memory_limit)])_x000D_logical_gpus = tf.config.experimental.list_logical_devices('GPU')

И при обучении нейронной сети ставьте batch_size не более 128. При большом batch_size потребляется много видеопамяти, и выходят ошибки, о том что CUDA не может выделить память. CUDA_ERROR_OUT_OF_MEMORY

Установка Tensorflow на CPU

Если вы хотите установить нейронную сеть на CPU, то выполните команды:

_x000D_pip3 uninstall tensorflow-gpu_x000D_pip3 install tensorflow-cpu tensorflow_probability tensorflow_addons

Это полезно, если вы используете Tensorflow JS, а пишите нейронную сеть на PyTorch.