Пример использования 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 на ВМ на этапе настройки.
- Установить драйвера видеоадаптера командой:
sudo sh /path/NVIDIA-Linux-x86_64-xxx.xx-grid.run
-
Указать ключ
--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
-
После завершения установки перезапустить ВМ.
Более одного видеоадаптера или проблема с получением изображения после перезагрузки
Рассмотрим на примере qxl + NVIDIA
1. Вводим команду lspci
, в списке необходимо найти видеоадаптер;
2. Исправить /etc/X11/xorg.conf
в секции "Device", если PCI адрес MDEV равен 00:000a:00.0:
# необходимо перевести hex в dec!
BusID "PCI:0:10:0"
Лицензирование
При установке файл
/etc/nvidia/gridd.conf
отсутствует, в каталоге имеетсяgridd.conf.template
.
- Скопировать
gridd.conf.template
в файлgridd.conf
. - Ввести адрес и порт сервера лицензий в строки
ServerAddress=
иServerPort=
. - Перезапустить службу клиента лицензии на ВМ:
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.