Konfigurowanie NVLink na VPS z konfiguracją Multi-GPU

NVLink, wysokoprzepustowy interfejs GPU firmy NVIDIA, rewolucjonizuje obciążenia multi-GPU, umożliwiając szybkie dzielenie pamięci i transfer danych, znacznie przewyższając ograniczenia PCIe. Dla naukowców zajmujących się danymi, inżynierów ML lub użytkowników HPC, NVLink może przyspieszyć zadania takie jak trening modeli głębokiego uczenia lub symulacje na dużą skalę. Na przykład, możesz użyć NVLink z podwójnymi GPU A100, aby szybciej trenować duży model językowy, łącząc pamięć GPU. Jednak konfigurowanie NVLink w wirtualnym środowisku jest skomplikowane i wymaga specyficznego sprzętu oraz ustawień. Ten przewodnik wyjaśnia NVLink, jego ograniczenia w VPS oraz jak skonfigurować go dla optymalnej wydajności.

Ograniczenia i uwagi

  • Nie wszyscy dostawcy VPS obsługują konfiguracje NVLink.

  • Tylko VPS oparte na serwerach dedykowanych lub dedykowane maszyny wirtualne GPU z bezpośrednim przekazywaniem pozwalają na działanie NVLink.

  • Brak wsparcia dla NVLink w środowiskach kontenerowych, takich jak Docker, chyba że uruchomione bezpośrednio na hoście.

Czym jest NVLink?

NVLink pozwala na połączenie dwóch lub więcej kompatybilnych GPU NVIDIA w celu:

  • Dzielenia pamięci między GPU dla dużych zbiorów danych

  • Wymiany danych z prędkością do 600 GB/s całkowitej przepustowości

  • Szybszego treningu multi-GPU bez udziału CPU

Obsługiwane na GPU takich jak:

  • NVIDIA A100, V100, RTX 3090, 4090, A6000 itp.

  • Zazwyczaj wymaga fizycznego mostu NVLink

NVLink w VPS: Wymagania wstępne

Przed próbą skonfigurowania NVLink na VPS upewnij się, że spełnione są następujące warunki:

Sprzęt hosta

  • Serwer fizyczny musi mieć:

    • Co najmniej dwa GPU zgodne z NVLink

    • Zainstalowane mosty NVLink

    • BIOS i oprogramowanie układowe, które obsługują NVLink

  • Typowe kompatybilne konfiguracje to podwójne A100 lub RTX 3090 z mostem NVLink.

Konfiguracja VPS

  • VPS musi być uruchomiony na hypervisorze z obsługą GPU passthrough, takim jak:

    • KVM/QEMU z VFIO (PCI passthrough)

    • VMware ESXi z DirectPath I/O

    • Proxmox VE z GPU passthrough

⚠️ Uwaga: NVLink nie działa w przypadku wirtualizowanych urządzeń, chyba że oba GPU są przekazywane jako pełne urządzenia PCIe do tej samej maszyny wirtualnej.

Krok po kroku: Jak skonfigurować NVLink na VPS

Krok 1: Upewnij się, że GPU są przekazywane

Host musi bezpośrednio przekazać oba fizyczne GPU do twojego VPS.

Dla KVM/QEMU z VFIO:

# Przykład przypisania dwóch GPU za pomocą 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

Zaktualizuj libvirt lub qemu XML, aby przekazać oba GPU.

Krok 2: Zainstaluj sterowniki NVIDIA

Wewnątrz VPS (system operacyjny gościa) zainstaluj najnowszy sterownik NVIDIA:

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

Uruchom ponownie po instalacji.

Krok 3: Zweryfikuj topologię NVLink

Po wejściu do systemu operacyjnego gościa:

nvidia-smi topo -m

Powinieneś zobaczyć:

GPU0GPU1Przywiązanie CPU
GPU0XNV10-15
GPU1NV1X0-15

Gdzie NV1 oznacza, że NVLink jest aktywny między GPU0 a GPU1.

Krok 4: Włącz dostęp Peer-to-Peer (opcjonalnie, ale zalecane)

nvidia-smi p2p

Upewnij się, że Peer-to-Peer i Dostęp są oznaczone jako Włączone.

Rozważania dotyczące bezpieczeństwa

  • Izolowany dostęp: Upewnij się, że twój VPS nie jest nadmiernie obciążony ani współdzielony z innymi podczas korzystania z pełnego przekazywania GPU.

  • Brak wycieku pamięci współdzielonej: NVLink tworzy przestrzeń pamięci współdzielonej—ogranicz dostęp do zaufanych środowisk.

  • Audytuj dostęp do urządzeń /dev/nvidia*.

Rozwiązywanie problemów z NVLink

 

ObjawMożliwa przyczynaNaprawa
NVLink nie wyświetla się w nvidia-smiGPU nie są prawidłowo połączoneWyłącz hosta i ponownie zainstaluj fizyczny most NVLink
Widoczny tylko jeden GPUBłędna konfiguracja przekazywaniaSprawdź ustawienia XML/urządzenia maszyny wirtualnej
Peer-to-peer wyłączoneNiezgodność sterowników lub ustawienia BIOSZaktualizuj sterownik, sprawdź BIOS pod kątem wsparcia NVLink
Niska przepustowośćLanes NVLink są niedostatecznie wykorzystywaneUżyj nvidia-smi nvlink –status, aby zweryfikować lanes

 

NVLink to przełomowe rozwiązanie dla obciążeń intensywnie wykorzystujących GPU, oferujące ogromne korzyści wydajnościowe przy odpowiedniej konfiguracji—nawet w środowiskach wirtualnych. Dzięki bezpośredniemu przekazywaniu GPU i starannej konfiguracji możesz wykorzystać moc interfejsów multi-GPU na VPS, przekształcając go w węzeł obliczeniowy o wysokiej wydajności dla wymagających aplikacji.