Установить драйверы на облачном сервере с GPU
Это инструкция с примером установки драйверов на облачном сервере, который создан из готового образа Ubuntu 24.04 LTS 64-bit.
Для стабильной работы GPU NVIDIA® на облачном сервере с GPU нужно установить драйверы.
Если вы создали облачный сервер из готового образа с GPU-оптимизацией, драйверы на нем уже установлены, дополнительная установка не требуется. Готовые образы с GPU-оптимизацией:
- Ubuntu 24.04 LTS 64-bit GPU driver;
- Ubuntu 24.04 LTS 64-bit CUDA 11.8 Docker;
- Ubuntu 24.04 LTS 64-bit CUDA 12.8 Docker;
- Ubuntu 22.04 LTS 64-bit GPU driver;
- Ubuntu 22.04 LTS 64-bit CUDA 11.8 Docker;
- Ubuntu 22.04 LTS 64-bit CUDA 12.8 Docker;
- Data Science VM (Ubuntu 22.04 LTS 64-bit);
- Data Analytics VM (Ubuntu 22.04 LTS 64-bit).
Установить драйверы
-
Установите пакет
ubuntu-drivers-common
:sudo apt install -y ubuntu-drivers-common alsa-utils
-
Посмотрите рекомендуемую версию драйвера:
sudo ubuntu-drivers devices
В ответе появится список версий. Рекомендуемая версия будет отмечена как
recommended
. Скопируйте рекомендуемую версию.Пример для GPU NVIDIA® Tesla T4 с рекомендуемой версией
nvidia-driver-550
:== /sys/devices/pci0000:00/0000:00:06.0 ==
modalias : pci:v000010DEd00001EB8sv000010DEsd000012A2bc03sc02i00
vendor : NVIDIA Corporation
model : TU104GL [Tesla T4]
manual_install: True
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-535-server - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-550 - third-party non-free recommended
driver : nvidia-driver-418-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin -
Опционально: проверьте, что выбранная версия драйвера выше минимальной совместимой версии для архитектуры GPU облачного сервера:
sudo apt-cache search nvidia-driver-*
В ответе появится список совместимых версий драйвера. Посмотреть архитектуру GPU можно в инструкции Создать облачный сервер с GPU, а соответствие версии драйвера и архитектуры — в инструкции CUDA Compatibility документации NVIDIA®.
-
Если архитектура GPU — Pascal (например, у NVIDIA® GTX 1080), добавьте на облачный сервер репозиторий NVIDIA® Personal Package Archive:
sudo add-apt-repository ppa:graphics-drivers/ppa -y
-
Установите заголовки ядра:
sudo apt update
for kernel in $(linux-version list); do apt install -y "linux-headers-<kernel-version>"; doneУкажите
<kernel-version>
— версия ядра. Список версий ядра можно посмотреть с помощью командыapt-cache search linux-image
. -
Установите драйвер:
sudo apt install -y <driver_version>
Укажите
<driver_version>
— версия драйвера, которую вы скопировали на шаге 3.Пример установки рекомендуемой версии
nvidia-driver-550
для GPU NVIDIA® Tesla T4:sudo apt install -y nvidia-driver-550
-
Проверьте, что драйвер установлен и работает:
nvidia-smi
В ответе появятся версии NVIDIA-SMI, драйвера и версия CUDA, которая совместима с текущей версией драйвера, но не установлена в системе. CUDA Runtime API и CUDA Toolkit устанавливаются отдельно и не поставляются в пакете
nvidia-driver
. Пример ответа:+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 Tesla T4 Off | 00000000:00:06.0 Off | 0 |
| N/A 41C P8 10W / 70W | 0MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+ -
Откройте конфигурационный файл пакета
unattended-upgrades
, который работает с обновлениями безопасности:nano /etc/apt/apt.conf.d/50unattended-upgrades
-
Запретите обновление пакетов для NVIDIA®. Для этого добавьте в файл блок:
Unattended-Upgrade::Package-Blacklist {
"linux-";
"nvidia-";
}; -
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Опционально: зафиксируйте версию ядра, чтобы отключить обновление ядра. Обновление версии ядра может привести к ошибкам в работе драйверов GPU.
Зафиксировать версию ядра
В готовых образах с предустановленными драйверами, кроме Data Analytics VM (Ubuntu 22.04 LTS 64-bit) и Data Science VM (Ubuntu 22.04 LTS 64-bit), версия ядра уже зафиксирована.
Драйверы в процессе установки компилируются с исходным кодом заголовков текущей версии ядра. Изменение версии ядра приводит к неработоспособности GPU-драйвера. В таком случае в выводе команды 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.
Чтобы отключить обновление ядра, зафиксируйте версию ядра в настройках менеджера пакетов apt
. После фиксации, вы сможете обновить версию ядра.
-
Откройте CLI.
-
Создайте файл
pin-linux-kernel-nvidia-dkms
в директории/etc/apt/preferences.d
, чтобы зафиксировать версию пакетовlinux-headers
иlinux-image
:cat <<EOF > /etc/apt/preferences.d/pin-linux-kernel-nvidia-dkms
Package: linux-image-*
Pin: version *
Pin-Priority: -1
Package: linux-headers-*
pin: version *
Pin-Priority: -1
EOF
Обновить версию ядра после фиксации
После фиксации версии ядра вы не сможете его обновить. Для загрузки обновлений безопасности, улучшений производительности и добавления новых функции, удалите файл фиксации версии ядра и обновите версию.
-
Откройте CLI.
-
Удалите файл, который вы создали для фиксации версии ядра:
rm /etc/apt/preferences.d/pin-linux-kernel-nvidia-dkms
-
Обновите версию ядра:
apt install linux-image-<kernel-version>