Перейти к основному содержимому

Подготовка виртуальной машины

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

Последний шаг пропускать нельзя — без него ближайшее обновление системы оставит машину без работающего GPU. Подробности в решении проблем.

1. Создание машины

При создании виртуальной машины в Cloud Director включите vGPU и выберите профиль. Если vGPU не подключён на этом шаге, драйвер внутри машины устройства не найдёт.

Для машин с большим объёмом видеопамяти нужны параметры расширенной адресации. В настройках виртуальной машины:

  • тип загрузки — EFI;
  • в дополнительных параметрах:
pciPassthru.use64bitMMIO = TRUE
pciPassthru.64bitMMIOSizeGB = <объём>

Значение 64bitMMIOSizeGB должно быть не меньше объёма видеопамяти профиля, а при нескольких картах — суммарного объёма с запасом. Если параметры заданы неверно, машина не включится.

примечание

В типовых шаблонах GPU Cloud эти параметры уже заданы. Настраивать вручную нужно, только если вы разворачиваете машину из собственного образа.

2. Подготовка операционной системы

Ниже — порядок для Ubuntu. Для других дистрибутивов отличаются имена пакетов, логика та же.

Установите инструменты сборки — они нужны установщику драйвера:

apt install make gcc

Отключите штатный открытый драйвер nouveau, иначе он займёт карту. Создайте файл /etc/modprobe.d/blacklist-nouveau.conf:

blacklist nouveau
options nouveau modeset=0

Примените и перезагрузитесь:

update-initramfs -u
reboot

Убедитесь, что драйвер не загружен — вывод должен быть пустым:

lsmod | grep nouveau

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

к сведению

Драйвер для vGPU распространяется NVIDIA только вместе с лицензией и в свободном доступе его нет — версия драйвера в гостевой системе должна соответствовать версии на стороне гипервизора. Запросите установочный файл в поддержке ITGLOBAL.COM, указав операционную систему машины и выбранный vGPU-профиль.

Скопируйте полученный файл на машину, сделайте исполняемым и запустите:

chmod +x NVIDIA-Linux-x86_64-<версия>-grid.run
./NVIDIA-Linux-x86_64-<версия>-grid.run

Установщик задаёт несколько вопросов — соглашайтесь с предложенными вариантами и на последнем шаге разрешите пересборку initramfs. После установки перезагрузите машину.

4. Проверка

nvidia-smi

В выводе должны быть версия драйвера, модель адаптера и объём памяти, совпадающий с профилем. Если команда ничего не вернула или сообщила об ошибке связи с драйвером — см. решение проблем.

Состояние лицензии проверяется отдельно:

nvidia-smi -q | grep -i licen

Разбор значений — на странице лицензирования NVIDIA.

5. Блокировка обновления ядра

Драйвер NVIDIA собирается под конкретную версию ядра. После обновления ядра драйвер перестаёт загружаться, и GPU в машине пропадает.

Зафиксируйте текущее ядро:

apt-mark hold linux-image-$(uname -r) linux-headers-$(uname -r)

Обновлять ядро на машине с GPU можно, но каждый раз это означает переустановку драйвера. Планируйте такие работы отдельно и делайте снимок машины перед ними.

6. CUDA Toolkit — по необходимости

CUDA Toolkit ставится после драйвера и только если он действительно нужен: он тянет за собой зависимости, которые в большинстве случаев не требуются. Многие фреймворки — PyTorch, TensorFlow — поставляются со своими сборками CUDA-библиотек, и отдельный Toolkit им не нужен.

Версия из nvidia-smi показывает максимальную версию CUDA, поддерживаемую драйвером, а nvcc -V — версию установленного Toolkit. Значения могут различаться, и это нормально.