Перейти к основному содержимому
Установить драйверы на облачном сервере с GPU
Последнее изменение:

Установить драйверы на облачном сервере с 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).

Установить драйверы

  1. Подключитесь к облачному серверу с GPU.

  2. Установите пакет ubuntu-drivers-common:

    sudo apt install -y ubuntu-drivers-common alsa-utils
  3. Посмотрите рекомендуемую версию драйвера:

    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
  4. Опционально: проверьте, что выбранная версия драйвера выше минимальной совместимой версии для архитектуры GPU облачного сервера:

    sudo apt-cache search nvidia-driver-*

    В ответе появится список совместимых версий драйвера. Посмотреть архитектуру GPU можно в инструкции Создать облачный сервер с GPU, а соответствие версии драйвера и архитектуры — в инструкции CUDA Compatibility документации NVIDIA®.

  5. Если архитектура GPU — Pascal (например, у NVIDIA® GTX 1080⁠), добавьте на облачный сервер репозиторий NVIDIA® Personal Package Archive:

    sudo add-apt-repository ppa:graphics-drivers/ppa -y
  6. Установите заголовки ядра:

    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.

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

    sudo apt install -y <driver_version>

    Укажите <driver_version> — версия драйвера, которую вы скопировали на шаге 3.

    Пример установки рекомендуемой версии nvidia-driver-550 для GPU NVIDIA® Tesla T4:

    sudo apt install -y nvidia-driver-550
  8. Проверьте, что драйвер установлен и работает:

    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 |
    +-----------------------------------------------------------------------------------------+
  9. Откройте конфигурационный файл пакета unattended-upgrades, который работает с обновлениями безопасности:

    nano /etc/apt/apt.conf.d/50unattended-upgrades
  10. Запретите обновление пакетов для NVIDIA®. Для этого добавьте в файл блок:

    Unattended-Upgrade::Package-Blacklist {
    "linux-";
    "nvidia-";
    };
  11. Выйдите из текстового редактора nano с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter.

  12. Опционально: зафиксируйте версию ядра, чтобы отключить обновление ядра. Обновление версии ядра может привести к ошибкам в работе драйверов 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. После фиксации, вы сможете обновить версию ядра.

  1. Откройте CLI.

  2. Создайте файл 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

Обновить версию ядра после фиксации

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

  1. Откройте CLI.

  2. Удалите файл, который вы создали для фиксации версии ядра:

    rm /etc/apt/preferences.d/pin-linux-kernel-nvidia-dkms
  3. Обновите версию ядра:

    apt install linux-image-<kernel-version>

    Укажите <kernel-version> — версия ядра. Список версий ядра можно посмотреть с помощью команды apt-cache search linux-image.

  4. Перезагрузите облачный сервер.

  5. Установите заголовки ядра:

    apt install linux-headers-$(uname -r)

    После установки заголовков ядра запустится утилита dkms, которая автоматически пересоберет модули NVIDIA для новой версии ядра.