Установка GRID-драйвера на ECS с GPU

Инструкция описывает установку и настройку рабочего стола Linux и GRID-драйвера для виртуальной машины с GPU-ускорением.

Для работы драйвера предварительно необходимо развернуть и настроить сервер лицензий.

Создание виртуальной машины

  1. Создайте виртуальную машину со следующими параметрами:

    • Тип GPU-accelerated в блоке Specifications.

    • Образ Ubuntu 16.04 server 64bit with Tesla Driver 450.51.06 and CUDA 11.0 в блоке Image.

      Примечание

      Версия драйверов Tesla® и CUDA® может отличаться на момент создания ECS.

  2. Убедитесь, что правила группы безопасности разрешают подключение ВМ к интернету.

Обновление операционной системы

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

  2. Обновите списки пакетов:

    sudo apt update && sudo apt upgrade -y
  3. Перезапустите ВМ после обновления списка пакетов:

    sudo reboot
  4. Подключитесь к ВМ после перезапуска.

  5. Обновите версию ОС:

    sudo do -release-upgrade
  6. Перезапустите ВМ после прохождения всех шагов обновления. Версия ОС изменится на Ubuntu LTS 18.04.

Подготовка к установке драйвера

  1. Выполните команду:

    lspci
  2. Запишите ID — идентификатор PCI карты. Это значение пригодится в следующих шагах.

    Примечание

    ID записан в шестнадцатиричном формате и находится в выводе команды lspci в начале строки с информацией о карте.

    Пример: 21:01:0 3D controller: NVIDIA Corporation GV100GL [Tesla V100 PCIe 32GB] (rev a1)

    В этом примере ID PCI карты равен 21:01:0.

Установка рабочего стола и утилит для установки драйвера

  1. Отключите драйвер nouveau:

    sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
    sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
  2. Проверьте, что драйвер nouveau появился в черном списке. Запустите команду:

    cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf

    Убедитесь, что в ответе команды содержится следующие строки:

    blacklist nouveau
    options nouveau modeset = 0
  3. Обновите initramfs-образы — выполните команду:

    sudo update-initramfs -u
  4. После выполнения предыдущей команды перезапустите ВМ:

    sudo reboot now
  5. Установите дополнительное программное обеспечение:

    • mesa-utils — набор утилит для теста графики;

    • pkg-config — вспомогательный пакет, который потребуется позже при установке драйвера;

    • libglvnd-dev — набор библиотек для драйвера;

    • dkms — утилита для сборки модуля ядра;

    • gcc и build-essential — наборы полезных утилит для сборки.

    Для установки выполните команду:

    sudo apt install mesa-utils pkg-config libglvnd-dev dkms gcc build-essential
  6. Установите рабочий стол — выполните команду:

    sudo apt install lightdm
    Примечание

    Рекомендуем устанавливать рабочий стол «lightdm». С другими рабочими столами драйвер GRID по этой инструкции может не установиться.

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

  1. Скачайте драйвер NVIDIA GRID с официального сайта NVIDIA.

  2. Загрузите файл драйвера на ВМ.

  3. Добавьте права на выполнение файла:

    chmod +x NVIDIA-Linux-x86_64-***-grid.run
  4. Запустите установку драйвера:

    ./NVIDIA-Linux-x86_64-***-grid.run

Настройка драйвера

  1. Перейдите в каталог /etc/nvidia:

    cd /etc/nvidia
  2. Отредактируйте конфигурационные файлы:

    sudo cp gridd.conf.template gridd.conf
    sudo nano gridd.conf

    Измените следующие строки:

    ServerAddress = 10 .250.10.200 # вместо 10.250.10.200 укажите адрес вашего сервера лицензий
    ServerPort = 7070 # вместо 7070 укажите порт вашего сервера лицензий
    FeatureType = 2 # включите режим виртуализации карты
    EnableUI = TRUE # включите возможность открыть настройки карты с помощью графического интерфейса

    Сохраните изменения.

  3. Перезапустите ВМ:

    sudo reboot now

На этом настройка и установка драйвера завершена.

Настройка запуска рабочего стола

  1. Выполните команду:

    sudo nvidia-xconfig -a --allow-empty-initial-configuration --virtual = 1920x1200 --busid PCI:33:1:0
    Примечание
    • В качестве идентификатора PCI укажите ID, записанный на этапе Подготовка к установке драйвера.

    • Каждое число в идентификаторе предварительно преобразуйте из шестнадцатиричного формата в десятеричный. В примере выше идентификатор до преобразования был «21:01:0», а после преобразования стал «33:1:0».

  2. Отредактируйте файл /etc/X11/xorg.conf:

    sudo nano /etc/X11/xorg.conf

    В секции «Device» допишите параметр Option "HardDPMS" "false" и сохраните файл конфигурации.

  3. Загрузите .deb-пакет virtualgl на ВМ.

  4. Установите пакет virtualgl:

    sudo dpkg -i virtualgl**.deb
  5. Выполните настройку пакета. Запустите команду:

    /opt/VirtualGL/bin/vglserver_config

    Задайте параметры:

    • «Configure server for use with VirtualGL» — «1»;

    • «Restrict 3D X server access to vglusers group (recommended)?» — «n»;

    • «Restrict framebuffer device access to vglusers group (recommended)?» — «n»;

    • «Disable XTEST extension (recommended)?» — «Y».

  6. Загрузите .deb-пакет TurboVNC на ВМ.

  7. Установите пакет turbovnc:

    sudo dpkg -i turbovnc***.deb
  8. Перезапустите ВМ, чтобы применить конфигурацию рабочего стола:

    sudo reboot now
  9. Подключитесь к ВМ по SSH. В фоновом режиме должен запуститься рабочий стол.

  10. Выполните команду:

    startx

    В консоли появится вывод команды:

    root@grid:/opt/VirtualGL/bin# startx
    X.Org X Server 1 .19.6
    Release Date: 2017 -12-20
    X Protocol Version 11 , Revision 0
    Build Operating System: Linux 4 .15.0-140-generic x86_64 Ubuntu
    Current Operating System: Linux ecs-gpu-keep-it 4 .15.0-142-generic #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021 x86_64
    Kernel command line: BOOT_IMAGE = /boot/vmlinuz-4.15.0-142-generic root = UUID = 42149824 -7843-457f-8560-066302a3b7fd ro net.ifnames = 0 nospectre_v2 nopti noibrs noibpb
    Build Date: 08 April 2021 01 :57:21PM
    xorg-server 2 :1.19.6-1ubuntu4.9 ( For technical support please see http://www.ubuntu.com/support )
    Current version of pixman: 0 .34.0
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: ( -- ) probed, ( ** ) from config file, (==) default setting,
    ( ++ ) from command line, ( !! ) notice, ( II ) informational,
    ( WW ) warning, ( EE ) error, ( NI ) not implemented, ( ?? ) unknown.
    (==) Log file: "/var/log/Xorg.0.log" , Time: Thu Apr 29 09 :39:06 2021
    (==) Using config file: "/etc/X11/xorg.conf"
    (==) Using system config directory "/usr/share/X11/xorg.conf.d"
  11. Откройте новое SSH-подключение к ВМ и запустите VNC:

    /opt/TurboVNC/bin/vncserver

    VNC попросит настроить пароль для подключения. После настройки пароля вы увидите лог команды:

    Desktop 'TurboVNC: grid:1 (root)' started on display grid:1
    Starting applications specified in /root/.vnc/xstartup.turbovnc
    Log file is /root/.vnc/grid:1.log
  12. Откройте порт 5901 к ВМ.

    См.также
  13. Установите на свой компьютер VNC-клиент. Рекомендуем использовать VNC Viewer от RealVNC.

  14. С помощью установленного VNC-клиента подключитесь к ВМ по IP-адресу и порту. Если виден курсор мыши и рабочий стол, настройка прошла успешна.

Тестирование работы драйвера

  1. Откройте терминал с помощью интерфейса Linux.

  2. В терминале выполните команду тестового приложения «vglrun glxgears».

    vglrun glxgears

    Вы увидите, как начнут крутиться шестеренки.

  3. Чтобы проверить, что отрисовка происходит ресурсами карты, а не процессора, в терминале Linux запустите команду:

    nvidia-smi

    Убедитесь, что есть процессы, которые обрабатываются через карту.

    ../_images/s__gpu-demo.png
  4. Все следующие процессы запускайте с помощью команды:

    vglrun <название приложения>
Advanced