Перейти к содержанию

Пример использования NVIDIA GRID

Список поддерживаемого оборудования в режиме vGPU

  • A100;

  • A40;

  • M6, M10, M60;

  • P4, P6, P40, P100, P100 12GB;

  • T4;

  • V100;

  • RTX 6000, RTX 6000 passive, RTX 8000, RTX 8000 passive.

Решение FreeGRID апробировано на моделях видеокарт:

  • NVIDIA A100;

  • NVIDIA A40;

  • NVIDIA А16.

При необходимости, Вендор готов провести апробацию при условии совместной организации стенда для испытаний.

A100

Архитектура параллельных вычислений позволяет существенно увеличивают вычислительную производительность благодаря использованию графических процессоров фирмы NVIDIA.

Адаптеры с архитектурой Ampere

Данные адаптеры обладают поддержкой SR-IOV. Для возможности распределения vGPU необходимо включить поддержку данной технологии для видеоадаптеров на хосте:
1. Получить идентификатор шины, состоящий из 16 символов, командой nvidia vgpu_list.
2. Включить поддержку командой nvidia sriov enable 0000:5E:00.0, где 0000:5E:00.0 - идентификатор шины, сокращенный до 12 символов (убраны первые четыре "0").

Внимание

Поддерживаются только 64-битные гостевые ОС. Подробные примечания и сведения об актуальных версиях ПО.


Описание

Использование видеокарт NVIDIA GRID требует драйверы на узле и на ВМ, на которые распределены vGPU.

Linux драйверы

Не следует использовать драйверы, предлагающиеся пакетным менеджером ВМ!

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

Драйверы для хоста и ВМ должны соответствовать по версии. Следует устанавливать драйверы для ВМ и хоста из пакета, скачанного с сайта NVIDIA https://nvid.nvidia.com/dashboard/. Следует зарегистрироваться и выбрать последние драйверы для Linux KVM. Архив содержит документацию, драйверы под Linux хост, Linux ВМ и Windows ВМ.

Пример содержания архива
архив ПО: **NVIDIA-GRID-Linux-KVM-440.43-441.66.zip**
В нём содержится:
- драйвер для хоста: **NVIDIA-Linux-x86_64-440.43-vgpu-kvm.run**
- драйвер для ВМ Windows 7, 8, Win server 2008R2, 2012R2: **441.66_grid_win7_win8_server2008R2_server2012R2_64bit_international.exe**
- драйвер для ВМ Windows 10, Win server 2016, Win server 2019: **441.66_grid_win10_server2016_server2019_64bit_international.exe**
- драйвер для Linux ВМ: **NVIDIA-Linux-x86_64-440.43-grid.run**

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

  • Загрузить файл драйвера на узел через Web-интерфейс, ssh или ftp.

    Для загрузки используя Web-интерфейс необходимо перейти в раздел Хранилища - Пулы данных - <Пул данных> - Файлы и нажать кнопку Загрузить из файловой системы.

  • Установить драйвера командой:

    install-run --nv /storages/local/default/_LIBRARY/NVIDIA-Linux-x86_64-470.63.01-vgpu-kvm.run
    
  • Перейти в shell.

  • Выполнить команды:

    modprobe -r nouveau
    sh ./NVIDIA-Linux-x86_64-440.43-vgpu-kvm.run --disable-nouveau
    mkdir /usr/lib64
    ln -s /usr/lib/x86_64-linux-gnu/libnvidia-vgpu.so /usr/lib64
    ln -s /usr/lib/x86_64-linux-gnu/libnvidia-vgxcfg.so /usr/lib64
    ln -s /usr/lib/x86_64-linux-gnu/libnvidia-ml.so /usr/lib64
    ln -s /usr/lib/x86_64-linux-gnu/libnvidia-cfg.so /usr/lib64
    

    DKMS

    В процессе установки инсталлятор предложит установить драйверы через DKMS, следует отказаться.

  • Перезагрузить узел.

Ошибка установки драйвера

"Невозможно установить nvidia.ko", сообщение об ошибке содержит 64-bit BAR/нулевой размер BAR. Для решения проблемы необходимо включить поддержку Above 4G Decoding=Enabled, на T-platform и PCI 64-Bit Resource Allocation=Enabled.


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

Общие требования:

  • Модель vCPU. Необходимо установить host-passthrough.
  • Совместимость версии драйверов на ВМ и на хосте.
  • Установлены пакеты linux-headers, gcc, make.
sudo apt update
apt install linux-headers-$(uname -r)

Следует учитывать, что ВМ с Mediated-устройствами не могут мигрировать между узлами.

Рекомендуем включить опцию для ВМ с ОС Windows Оптимизацию vgpu во вкладке Информация.

Опции для модели процессора:

<feature policy="require" name="invtsc"/>
<feature policy="disable" name="hypervisor"/>

Опции для vCPU:

{% for vcpu in cpu_count_range %}
    <vcpusched vcpus="{{ vcpu }}" scheduler="fifo" priority="1"/>
{% endfor %}  

Опции настройки времени:

<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
<timer name="kvmclock" present="no"/>
<timer name="hypervclock" present="no"/>
<timer name="tsc" present="yes" mode="native"/>

Linux

Установка

Рекомендуем настроить доступ по SSH на ВМ на этапе настройки.

  1. Установить драйвера видеоадаптера командой:

    sudo sh /path/NVIDIA-Linux-x86_64-xxx.xx-grid.run
    
  2. Указать ключ --no-x-check. В процессе установки ответить на вопросы:

    • Install NVIDIA's 32-bit compatibility libraries? - NO
    • An incomplete installation of libglvnd was found.... Don't install
    • Unable to determine the path to install the libglvnd EGL vendor library config files. - OK
    • Would you like to run the nvidia-xconfig utility ... - Yes
  3. После завершения установки перезапустить ВМ.

Более одного видеоадаптера или проблема с получением изображения после перезагрузки

Рассмотрим на примере qxl + NVIDIA
1. Вводим команду lspci, в списке необходимо найти видеоадаптер;
2. Исправить /etc/X11/xorg.conf в секции "Device", если PCI адрес MDEV равен 00:000a:00.0:

# необходимо перевести hex в dec!
BusID          "PCI:0:10:0"
3. Перезапустить ВМ.


Лицензирование

При установке файл /etc/nvidia/gridd.conf отсутствует, в каталоге имеется gridd.conf.template.

  1. Скопировать gridd.conf.template в файл gridd.conf.
  2. Ввести адрес и порт сервера лицензий в строки ServerAddress= и ServerPort=.
  3. Перезапустить службу клиента лицензии на ВМ:
    sudo systemctl restart nvidia-gridd.service
    

    Лицензионные ограничения снимаются, если сервер доступен и имеет доступные лицензии.

Через графическое приложение NVIDIA имеется возможность управления лицензиями. Для этого необходимо повторить все действия с файлами конфигурации. В файле gridd.conf раскомментировать строку EnableUI=True, после чего перезапустить службу nvidia-gridd.service.

Общие замечания о лицензировании

Тип лицензии, получаемой ВМ, зависит от выделенной ей конфигурации vGPU. Например, если сервер лицензий в состоянии отдать лицензию Quadro vDWS, а vGPU выделена лишь в конфигурации -xB, то лицензия будет получена на virtual PC. Если на такой лицензии сервера конфигурацию vGPU клиента -xQ, то лицензия будет выдана на Quadro vDWS. При этом в обоих случаях сервер будет рапортовать о выданных лицензиях Quadro vDWS.

Установка и настройка сервера лицензий

Документация находится на сайте NVIDIA по ссылке.

Получение бесплатной 90-дневной оценочной лицензии

Для оценки и тестирования технологии vGPU NVIDIA предлагает воспользоваться временной лицензией, которая действительна 90 дней с момента первого запуска. Для получения лицензии необходима регистрация на сайте NVIDIA по ссылке.


Программное обеспечение

Рекомендуется использовать следующее программное обеспечение для разработки с поддержкой GPU:

  • CUDA Toolkit - документация доступна на официальном ресурсе по ссылке.
  • Deepo - документация и дистрибутив доступны на официальном ресурсе по ссылке.
  • NVIDIA GRID - техническое описание доступно на официальном ресурсе по ссылке.

Проверка возможности добавления в ВМ виртуальных графических адаптеров на базе nVidia Tesla

Перед проверкой необходимо иметь: - установленную на вычислительном узле видеокарту NVIDIA GRID, подключенную к сигнальным и силовым интерфейсам согласно документации на данную карту; - установленные на данном узле драйверы к видеокарте; - образ LiveCD с ОС семейства Linux для загрузки ВМ и проверки наличия vGPU среди PCI устройств ВМ. Данный образ должен позволять запуск консоли и содержать команду lspci. В частности, подходит и обладает сравнительно малым размером образ сборки Clonezilla (https://clonezilla.org/downloads/download.php?branch=stable). Этот или любой подходящий образ следует скопировать на пул данных вычислительного узла с видеокартой NVIDIA.

Необходимо убедиться, что драйверы для видеокарты установлены и корректно опознают видеокарту. Для этого в CLI узла необходимо ввести команду nvidia status. Должна быть выведена таблица с параметрами имеющихся на узле адаптеров NVIDIA.

  • В случае, если выводится сообщение об ошибке '''Unable to find nvidia-smi utility. Is NVIDIA driver installed?''', необходимо произвести установку драйверов видеокарты. При этом файл пакета драйвера не обязательно брать с сайта NVIDIA, возможно использовать драйвер.
  • Если выводится иное сообщение об ошибке, следует проверить правильность подключения к шине PCI-E и интерфейсов питания, настроек BIOS и исправность видеокарты.

Для проверки следует создать ВМ, подключить к ней устройство vGPU, загрузить ВМ и проконтролировать наличие устройства vGPU среди PCI устройств ВМ:

  • перейти в пункт меню Virtual machines, нажать кнопку Create;
  • выбрать вручную узел, на котором установлена видеокарта NVIDIA GRID;
  • размер ОЗУ указать примерно 1000 Мбайт для избежания проблем при запуске LiveCD;
  • тип ОС выбрать Linux;
  • подтип ОС выбрать согласно LiveCD или Other Linux (32/64 бит согласно разрядности ОС LiveCD);
  • имя ВМ произвольно, прочие параметры оставить по умолчанию;
  • создание виртуального диска пропустить;
  • к виртуальному CD-ROM подключить образ нашего LiveCD;
  • виртуальные интерфейсы пропустить;
  • завершить шаги создания ВМ, питание ВМ не включать.

Переход в свойства созданной ВМ:

  • перейти в пункт меню Mediated devices;
  • нажать кнопку Attach;
  • выбрать тип Mediated Device так, чтобы во второй строке формы был хотя бы один PCI контроллер с ненулевым количеством Mediated Devices такого типа;
  • выбрать любой из доступных PCI контроллеров;
  • установить параметры: Display = 'on', Ramfb = 'off'. Сохранить изменения кнопкой OK;
  • в пункте меню ВМ Information выбрать тип видеоадаптера VGA.

Включить питание ВМ.

После включения ВМ выполнить команду nvidia status на узле и убедиться, что её вывод содержит строку в разделе таблицы Processes: с именем процесса, равным vgpu.

Подключиться к экрану ВМ через SPICE HTML5 клиент Space, дождаться загрузки LiveCD.

Запустить терминал в ВМ, выполнить команду lspci и убедиться, что вывод команды содержит строку с VGA адаптером NVIDIA.