Что бывает, если не следовать инструкциям
Что бывает, если не следовать инструкциям

Специалисты из сферы ИИ часто сталкиваются с задачей корректной настройки сервера с GPU. Лично я с этой задачей сталкиваюсь в последнее время даже слишком часто...

Данный материал предназначен для быстрой и последовательной установки драйверов NVIDIA, в том числе для видеокарт 50xx серии, а также настройки NVIDIA Container Toolkit. Эта инструкция актуальна для Linux-систем на базе Ubuntu и других Debian-совместимых дистрибутивов.

1. Удаление ранее установленных драйверов NVIDIA

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

sudo apt-get purge 'nvidia-*'
sudo apt-get update
sudo apt-get autoremove

После команды sudo apt-get purge обязательно сделайте глубокий вдох. В этот момент система вспоминает все ваши предыдущие попытки установить драйверы — и удаляет их вместе со старыми обидами.


2. Установка драйвера NVIDIA (актуальная версия 570+)

На май 2025 года для видеокарт серии RTX 50xx поддерживаются только драйверы nvidia-driver-570-open. Для других карт может быть достаточно любой версии nvidia-driver-xxx. Я же рекомендую ставить актуальную версию, в частности на свои сервера я ставлю версию nvidia-driver-570-server или nvidia-driver-570-open.

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

apt search nvidia-driver

Опциональная установка библиотек:

Мне данная установка не требовалась, но для каких-то версий драйверов она может быть необходима. Для установки замените xxx на номер вашего драйвера.

sudo apt install libnvidia-common-xxx
sudo apt install libnvidia-gl-xxx

Установка драйвера (пример для 570-open):

sudo apt install nvidia-driver-570-open

3. Перезагрузка и проверка корректной установки

После завершения установки драйвера выполните перезагрузку системы:

Перезагрузка после установки драйвера — как кнопка «Сохранить» для всей вашей нервной системы. Рекомендуется, чтобы после неё заработало всё, кроме вашей паранойи.

sudo reboot

Проверьте, что драйвер установлен и GPU корректно определяется:

nvidia-smi

Ожидается вывод информации о вашей видеокарте и версии драйвера. Если вывод отсутствует или возникает ошибка, проверьте логи и отключите Secure Boot в BIOS, так как он может блокировать загрузку модулей NVIDIA.

Пример вывода информации командой nvidia-smi
Пример вывода информации командой nvidia-smi

4. Установка NVIDIA Container Toolkit для Docker

Для работы контейнеров с GPU необходим NVIDIA Container Toolkit. Он позволяет Docker-контейнерам использовать CUDA, cuDNN и связанные библиотеки.

Добавление репозитория и установка Toolkit:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

5. Конфигурация Docker для работы с GPU

Для интеграции GPU в Docker необходимо настроить runtime.

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Данная команда автоматически обновит конфигурацию Docker для работы с NVIDIA runtime.


6. Проверка работы GPU в контейнере

Для проверки запускаем контейнер с поддержкой GPU и исполняем утилиту nvidia-smi внутри:

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

В случае корректной настройки вы увидите информацию о вашей видеокарте изнутри контейнера. Это подтверждает правильную интеграцию GPU-драйвера, NVIDIA Container Toolkit и Docker.

Пример вывода, если Docker корректно увидел GPU.
Пример вывода, если Docker корректно увидел GPU.

7. Примечания

  • Для систем с Fedora, CentOS, RHEL и OpenSUSE инструкции по установке NVIDIA Container Toolkit отличаются, но общий принцип остаётся тем же: установка драйвера и toolkit, настройка контейнерного рантайма, перезапуск сервиса. Документацию по установке можно найти на официальном сайте NVIDIA.

  • Для Kubernetes следует использовать containerd и соответствующую конфигурацию через nvidia-ctk runtime configure --runtime=containerd.

  • Если драйвер NVIDIA так и не устанавливается, несмотря на все предпринятые шаги, рекомендуется попробовать другую версию драйвера, полностью повторяя весь алгоритм: очистка системы от старых пакетов, установка необходимых зависимостей и самого драйвера.

  • В случае, если повторные попытки не приводят к успеху и установка по-прежнему завершается с ошибками, оптимальным решением может стать переустановка операционной системы (например, Ubuntu) и повторное прохождение всех шагов инструкции. На практике, в сложных случаях именно этот подход помогал добиться стабильной работы драйверов и корректной интеграции с CUDA и контейнерной инфраструктурой.


8. Вывод

Правильная установка драйвера NVIDIA и последующая интеграция с контейнерной инфраструктурой является обязательным этапом при работе с задачами, требующими аппаратного ускорения. Следуя приведённой последовательности, можно гарантировать стабильную работу приложений, использующих CUDA и GPU.

Комментарии (0)