Подготовка виртуальной машины
Порядок одинаковый для всех профилей: создать машину с подключённым 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. Значения могут различаться, и это нормально.