𝗡𝗩𝗜𝗗𝗜𝗔 𝗣𝗘𝗘𝗥𝗠𝗘𝗠 𝗜𝗡𝗩𝗔𝗟𝗜𝗗 𝗔𝗥𝗚𝗨𝗠𝗘𝗡𝗧 𝗢𝗣𝗟𝗢𝗦𝗦𝗜𝗡𝗚
Je krijgt de foutmelding "Invalid argument" wanneer je sudo modprobe nvidia-peermem uitvoert op Ubuntu.
Dit gebeurt omdat je de standaard Ubuntu InfiniBand-stack gebruikt. De nvidia-peermem-module heeft een specifieke API nodig die alleen in MLNX_OFED aanwezig is. Als je de inbox rdma-core-stack gebruikt, zal de module altijd falen.
Installeer MLNX_OFED niet alleen om dit op te lossen. Dat is een zware en onnodige stap.
Als je Hopper- of Blackwell-GPU's gebruikt met de NVIDIA open driver, heb je nvidia-peermem niet nodig. Gebruik in plaats daarvan DMA-BUF. Dit biedt native ondersteuning voor GPUDirect RDMA.
Hoe het op te lossen:
Je moet nvidia-drm modeset=1 inschakelen. Dit is de meest voorkomende reden waarom DMA-BUF faalt.
Controleer de huidige status: cat /sys/module/nvidia_drm/parameters/modeset
Als er N staat, volg dan deze stappen:
Om het voor de huidige sessie op te lossen: sudo modprobe -r nvidia_drm sudo modprobe nvidia_drm modeset=1
Om het permanent op te lossen: echo 'options nvidia-drm modeset=1' | sudo tee /etc/modprobe.d/nvidia-drm-modeset.conf sudo update-initramfs -u
Vereisten voor DMA-BUF: • NVIDIA open kernel driver • HCA met ODP-ondersteuning (ConnectX-6 of ConnectX-7) • Hopper- of nieuwere GPU (H100, H200 of B200)
Om te verifiëren of het werkt, moet je ervoor zorgen dat deze drie stappen in je code slagen:
- cudaMalloc() om geheugen toe te wijzen.
- cuMemGetHandleForAddressRange() om geheugen te exporteren als een DMA-BUF-file descriptor.
- ibv_reg_dmabuf_mr() om die descriptor bij de HCA te registreren.
Vergelijking:
Legacy (nvidia-peermem):
- Heeft MLNX_OFED nodig
- Heeft een externe module nodig
- Werkt op alle GPU's
Modern (DMA-BUF):
- Werkt op inbox
rdma-core - Geen externe module nodig
- Werkt op Hopper en nieuwer
- Voorkeur van NVIDIA
Als je InfiniBand-poorten in de INIT-modus blijven staan, ontbreekt waarschijnlijk een Subnet Manager. Voer uit: sudo apt install opensm sudo systemctl start opensm
Source: https://dev.to/fpolica91/nvidia-peermem-invalid-argument-fix-2b3n
Optional learning community: https://t.me/GyaanSetuAi