𝗡𝗩𝗜𝗗𝗜𝗔 𝗣𝗘𝗘𝗥𝗠𝗘𝗠 𝗜𝗡𝗩𝗔𝗟𝗜𝗗 𝗔𝗥𝗚𝗨𝗠𝗘𝗡𝗧 𝗙𝗜𝗫
Podczas uruchamiania sudo modprobe nvidia-peermem na systemie Ubuntu pojawia się błąd „Invalid argument”.
Dzieje się tak, ponieważ używasz standardowego stosu InfiniBand w Ubuntu. Moduł nvidia-peermem wymaga specyficznego API, które znajduje się wyłącznie w MLNX_OFED. Jeśli korzystasz ze stosu rdma-core (inbox), moduł zawsze zakończy się niepowodzeniem.
Nie instaluj MLNX_OFED tylko po to, aby to naprawić. Jest to krok ciężki i niepotrzebny.
Jeśli używasz procesorów GPU Hopper lub Blackwell z otwartym sterownikiem NVIDIA (NVIDIA open driver), nie potrzebujesz nvidia-peermem. Powinieneś zamiast tego użyć DMA-BUF. Zapewnia on natywną obsługę GPUDirect RDMA.
Jak to naprawić:
Musisz włączyć nvidia-drm modeset=1. Jest to najczęstsza przyczyna błędów DMA-BUF.
Sprawdź aktualny status:
cat /sys/module/nvidia_drm/parameters/modeset
Jeśli wyświetla „N”, wykonaj poniższe kroki:
Aby naprawić to w bieżącej sesji:
sudo modprobe -r nvidia_drm
sudo modprobe nvidia_drm modeset=1
Aby naprawić to na stałe:
echo 'options nvidia-drm modeset=1' | sudo tee /etc/modprobe.d/nvidia-drm-modeset.conf
sudo update-initramfs -u
Wymagania dla DMA-BUF: • Otwarty sterownik jądra NVIDIA • HCA z obsługą ODP (ConnectX-6 lub ConnectX-7) • GPU architektury Hopper lub nowszej (H100, H200 lub B200)
Aby zweryfikować, czy działa, upewnij się, że te trzy kroki w kodzie zakończą się sukcesem:
cudaMalloc()w celu alokacji pamięci.cuMemGetHandleForAddressRange()w celu wyeksportowania pamięci jako deskryptora pliku DMA-BUF.ibv_reg_dmabuf_mr()w celu zarejestrowania tego deskryptora w HCA.
Porównanie:
Starsze rozwiązanie (nvidia-peermem):
- Wymaga MLNX_OFED
- Wymaga zewnętrznego modułu
- Działa na wszystkich GPU
Nowoczesne rozwiązanie (DMA-BUF):
- Działa na stosie
rdma-core(inbox) - Nie wymaga zewnętrznego modułu
- Działa na architekturze Hopper i nowszych
- Rekomendowane przez NVIDIA
Jeśli porty InfiniBand pozostają w trybie INIT, prawdopodobnie brakuje Subnet Managera. Uruchom:
sudo apt install opensm
sudo systemctl start opensm
Źródło: https://dev.to/fpolica91/nvidia-peermem-invalid-argument-fix-2b3n
Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi