Как настроить NVLink на VPS с несколькими GPU

NVLink – это энергоэффективный интерконнект NVIDIA с высокой пропускной способностью для соединения нескольких GPU, обеспечивающий значительно более высокую пропускную способность по сравнению с традиционным PCIe. Для специалистов по изучению данных, инженеров ML и пользователей высокопроизводительных вычислений (HPC) NVLink обеспечивает бесшовное совместное использование памяти GPU, сокращая узкие места и обеспечивая более быстрое обучение и выводы.

Но можно ли использовать NVLink в VPS? Ответ – да, но с важными оговорками. Давайте разберемся, что такое NVLink, как его настроить и что требуется для его работы в среде виртуализированного сервера.

Ограничения и предостережения

  • Не все поставщики VPS поддерживают установку NVLink.

  • Только пустые VPS или выделенные виртуальные машины с GPU и прямым проходом позволяют NVLink работать.

  • Поддержка NVLink в контейнерных средах, таких как Docker, отсутствует, если только они не запускаются непосредственно на хосте.

Что такое NVLink?

NVLink позволяет двум или более совместимым графическим процессорам NVIDIA:

  • Делить память между GPU для больших наборов данных

  • Обмениваться данными с общей пропускной способностью до 600 ГБ/с

  • Выполнять более быстрое обучение на нескольких GPU без участия CPU

Поддерживается на таких GPU, как:

  • NVIDIA A100, V100, RTX 3090, 4090, A6000 и т.д.

  • Обычно требуется физический мост NVLink

NVLink в VPS: предварительные условия

Прежде чем приступать к настройке NVLink на VPS, убедитесь в следующем:

Аппаратное обеспечение хоста

  • Физический сервер должен иметь:

    • Не менее двух NVLink-совместимых графических процессоров

    • Установлен мост(ы) NVLink

    • BIOS и встроенное ПО, поддерживающее NVLink

  • Обычные совместимые конфигурации включают два A100 или RTX 3090 с мостом NVLink.

Конфигурация VPS

  • VPS должен быть размещен на гипервизоре с поддержкой GPU passthrough, например:

    • KVM/QEMU с VFIO (PCI passthrough)

    • VMware ESXi с DirectPath I/O

    • Proxmox VE с GPU passthrough

⚠️ Примечание: NVLink не работает между виртуализированными устройствами, если оба GPU не передаются как полноценные PCIe-устройства в одну и ту же виртуальную машину.

Шаг за шагом: как настроить NVLink на VPS

Шаг 1: Обеспечьте пропуск графических процессоров

Хост должен передавать оба физических GPU непосредственно на ваш VPS.

Для KVM/QEMU с VFIO:

# Пример назначения двух GPU через vfio-pci
echo "vendor_id device_id" > /sys/bus/pci/devices/0000:65:00.0/driver/unbind
echo "vendor_id device_id" > /sys/bus/pci/devices/0000:66:00.0/driver/unbind
echo "vendor_id device_id" > /sys/bus/pci/drivers/vfio-pci/new_id

Обновите libvirt или qemu XML, чтобы пропустить оба GPU.

Шаг 2: Установка драйверов NVIDIA

Внутри VPS (гостевой ОС) установите последнюю версию драйвера NVIDIA:

sudo apt update
sudo apt install -y nvidia-driver-535

Перезагрузитесь после установки.

Шаг 3: Проверка топологии NVLink

Находясь в гостевой ОС:

nvidia-smi topo -m

Вы должны увидеть:

GPU0GPU1CPU Affinity
GPU0XNV10-15
GPU1NV1X0-15

Где NV1 означает, что NVLink активен между GPU0 и GPU1.

Шаг 4: Включите одноранговый доступ (необязательно, но рекомендуется)

nvidia-smi p2p

Убедитесь, что Peer-to-Peer и Access отмечены как Enabled.

Соображения безопасности

  • Изолированный доступ: Убедитесь, что ваш VPS не перегружен подпиской и не размещен совместно с другими при использовании полного GPU passthrough.

  • Отсутствие утечки общей памяти: NVLink создает ограниченный доступ к общему пространству памяти в доверенных средах.

  • Аудит доступа к устройствам /dev/nvidia*.

Устранение неполадок NVLink

СимптомВозможная причинаУстранение
NVLink не отображается в nvidia-smiГрафические процессоры не подключены к мосту должным образомОтключите питание хоста и переустановите физический мост NVLink
Виден только один GPUНеправильная конфигурация passthroughПроверьте настройки прохода VM XML/устройств
Одноранговая связь отключенаНесоответствие драйверов или настроек BIOSОбновите драйвер, проверьте BIOS на поддержку NVLink
Низкая пропускная способностьДорожки NVLink используются недостаточно эффективноИспользуйте nvidia-smi nvlink –status для проверки дорожек

NVLink – это революционное решение для рабочих нагрузок с интенсивным использованием GPU, обеспечивающее огромные преимущества в производительности при правильной настройке – даже в виртуальных средах. Благодаря прямому прохождению GPU и тщательной настройке вы можете использовать мощь многопроцессорных соединений на VPS, превратив его в высокопроизводительный вычислительный узел для требовательных приложений.