Установка и настройка графического процессора NVIDIA (GPU) на виртуальной машине Ubuntu (VM) может быть сложной задачей, особенно для тех, кто плохо знаком с этим процессом. Однако, проявив немного терпения и выполнив правильные действия, вы сможете быстро настроить и запустить свой графический процессор NVIDIA. В этой статье мы рассмотрим процесс установки и настройки графического процессора NVIDIA на компьютере с Ubuntu для моделей глубокого обучения, охватывая все, начиная от загрузки необходимых драйверов и заканчивая настройкой графического процессора для использования.
Чтобы установить и настроить среду виртуальной машины для обнаружения вашего графического процессора, а также заставить графический процессор работать с набором инструментов CUDA, можно выполнить следующие шаги:
Шаг 1. Проверьте и удалите существующие драйверы
Перед установкой новых драйверов для графического процессора NVIDIA важно проверить, установлены ли уже существующие драйверы на вашем компьютере с Ubuntu. Откройте окно терминала и введите следующую команду: lspci | grep -i nvidia
Эта команда выяснит, присутствуют ли какие-либо графические устройства NVIDIA на виртуальной машине. Если они есть в списке, удалите драйверы, а также CUDA, используя:
sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*" sudo apt-get --purge remove "*nvidia*"
Если вы установили CUDA через исходные файлы, найдите место установки (например, /usr/local) и удалите его, используя:
sudo rm -rf /usr/local/cuda*
Затем перейдите к строке, содержащей ссылку на репозиторий NVIDIA.
sudo vim /etc/apt/sources.list
и прокомментируйте это
#deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/
Наконец, запустите:
sudo apt update
Шаг 2: Начните установку
Поскольку мы успешно удалили все следы существующих NVIDIA и CUDA на виртуальной машине, давайте приступим к новой установке. Первое действие, которое нужно выполнить, — это добавить персональный архив пакетов (PPA), что позволит нам создать собственный репозиторий для распространения программного обеспечения. Следовательно, мы запускаем:
sudo add-apt-repository ppa:graphics-drivers/ppa --yes sudo apt update
Затем драйвер NVIDIA можно установить, используя:
sudo apt install nvidia-driver-450-server
На этом этапе важно получить некоторое представление о том, какие драйверы следует устанавливать, проверив эту матрицу совместимости: https://docs.nvidia.com/deploy/cuda-compatibility/index.html.
Для нашей задачи мы выбрали nvidia-driver-450
, потому что он совместим. Далее мы установим CUDA, что обычно можно сделать с помощью:
sudo apt install nvidia-cuda-toolkit
Однако, поскольку нас интересует конкретная версия (11.3), необходимо перейти на страницу разработчика NVIDIA, чтобы загрузить нужную сборку CUDA.
На странице можно заметить, что простое нажатие на предоставленные кнопки приведет вас к правильной архитектуре ОС, дистрибутиву, версии и что более важно, тип установщика интересующего вас CUDA. Можно выбрать любой из типов установщика, однако мы просто выберем файл runfile (local) для облегчить установку.
Следовательно, для этой настройки мы используем эту ссылку, которая найдет CUDA версии 11.3 для машины Ubuntu 20.04:
Нам нужно следовать инструкциям по установке с небольшой модификацией, т.е. запустить:
wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run --toolkit --silent --override
Флаги --toolkit --silent --override
гарантируют, что будут установлены только пакеты, принадлежащие CUDA, а не NVIDIA. Без флагов вы можете получить эту ошибку:
Теперь, когда установка завершена, сервер можно перезапустить sudo reboot
для правильной настройки всех конфигураций.
Чтобы подтвердить это, эти две команды nvidia-smi
и nvcc --version
можно запустить для проверки драйверов графического процессора и версии CUDA соответственно.
Если вы не перезагрузите компьютер, вы можете получить эту ошибку для nvidia-smi
:
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Кроме того, если nvcc --version
продолжает выдавать ошибку, вам может потребоваться добавить путь CUDA к bashrc
.
Сначала откройте bashrc
sudo nano /home/$USER/.bashrc
Внутри добавляем следующее:
export PATH="/usr/local/cuda-11.3/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH"
Наконец, запустите source .bashrc
и откройте новый терминал, чтобы снова протестировать nvcc --version
.
Наши вернули следующую информацию:
Шаг 3. Установите драйверы Torch для DNN
Torch — одна из основных библиотек, используемых для построения глубоких нейронных сетей, и есть несколько ресурсов о том, как ее использовать.
Последний набор настроек, который необходимо выполнить, — это установка torch
, torchvision
и torchaudio
(если требуется).
Это можно выполнить, просто запустив:
pip3 install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra -index-url https://download.pytorch.org/whl/cu113
Это установит torch
версии 1.11.0
, созданной с помощью CUDA 11.3
и torchvision
версии 0.12
с аналогичной версией CUDA, и torchaudio
Допустим, нужна другая torch
версия, проверить совместимость CUDA и Torch можно здесь и выбрать нужную.
Наконец, давайте выполним тест, чтобы проверить, прошла ли наша установка успешно. Мы попробуем код ниже:
import torch from torch import nn class BuildSimpleNet(nn.Module): def __init__(self): super().__init__() self.l1 = nn.Linear(1,2) def forward(self, x): x = self.l1(x) return x if __name__ == "__main__": print(torch.cuda.is_available()) print(torch.cuda.device_count()) print(torch.cuda.current_device()) print(torch.cuda.get_device_name(0)) device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") model = BuildSimpleNet() model.to(device) print(next(model.parameters()).is_cuda)
Вот результаты:
True 1 0 Tesla V100-SXM2-16GB True
В заключение в этой статье продемонстрировано пошаговое руководство по установке драйверов графического процессора NVIDIA, CUDA и Torch для обучения моделей глубокого обучения. Кроме того, выполняется простой тест, чтобы убедиться, что вся установка прошла успешно. В последующих статьях мы покажем, как настроить графический процессор NVIDIA для бесперебойной работы с Docker, в основном для логического вывода.