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

Пример использования 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

A100

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

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

Данные адаптеры обладают поддержкой SR-IOV. Для возможности распределения vGPU необходимо включить поддержку данной технологии для видеоадаптеров на хосте: 1. Получить идентификатор контейнера командой nvidia vgpu_list. 2. Включить поддержку командой nvidia sriov enable 0000:5E:00.0, где 0000:5E:00.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:


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

<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. В процессе установки ответить на вопросы:
  3. Install NVIDIA's 32-bit compatibility libraries? - NO
  4. An incomplete installation of libglvnd was found.... Don't install
  5. Unable to determine the path to install the libglvnd EGL vendor library config files. - OK
  6. Would you like to run the nvidia-xconfig utility ... - Yes

  7. После завершения установки перезапустить ВМ.

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

Рассмотрим на примере 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.