SOLUCIÓN AL ERROR "INVALID ARGUMENT" DE NVIDIA PEERMEM

Ves el error "Invalid argument" al ejecutar sudo modprobe nvidia-peermem en Ubuntu.

Esto sucede porque utilizas el stack estándar de InfiniBand de Ubuntu. El módulo nvidia-peermem requiere una API específica que solo se encuentra en MLNX_OFED. Si utilizas el stack rdma-core (inbox), el módulo siempre fallará.

No instales MLNX_OFED solo para solucionar esto. Es un paso pesado e innecesario.

Si utilizas GPUs Hopper o Blackwell con el driver abierto de NVIDIA, no necesitas nvidia-peermem. En su lugar, debes usar DMA-BUF. Este proporciona GPUDirect RDMA de forma nativa.

Cómo solucionarlo:

Debes habilitar nvidia-drm modeset=1. Esta es la razón más común por la que falla DMA-BUF.

Comprueba tu estado actual: cat /sys/module/nvidia_drm/parameters/modeset

Si muestra N, sigue estos pasos:

Para solucionarlo en la sesión actual: sudo modprobe -r nvidia_drm sudo modprobe nvidia_drm modeset=1

Para solucionarlo de forma permanente: echo 'options nvidia-drm modeset=1' | sudo tee /etc/modprobe.d/nvidia-drm-modeset.conf sudo update-initramfs -u

Requisitos para DMA-BUF: • Driver de kernel abierto de NVIDIA • HCA con soporte ODP (ConnectX-6 o ConnectX-7) • GPU Hopper o más reciente (H100, H200 o B200)

Para verificar que funciona, asegúrate de que estos tres pasos se completen correctamente en tu código:

  1. cudaMalloc() para asignar memoria.
  2. cuMemGetHandleForAddressRange() para exportar la memoria como un descriptor de archivo DMA-BUF.
  3. ibv_reg_dmabuf_mr() para registrar ese descriptor con la HCA.

Comparación:

Legacy (nvidia-peermem):

  • Requiere MLNX_OFED
  • Requiere un módulo externo
  • Funciona en todas las GPUs

Moderno (DMA-BUF):

  • Funciona con el stack rdma-core (inbox)
  • No requiere módulos externos
  • Funciona en Hopper y versiones posteriores
  • Preferido por NVIDIA

Si tus puertos InfiniBand permanecen en modo INIT, es probable que te falte un Subnet Manager. Ejecuta: sudo apt install opensm sudo systemctl start opensm

Fuente: https://dev.to/fpolica91/nvidia-peermem-invalid-argument-fix-2b3n

Comunidad de aprendizaje opcional: https://t.me/GyaanSetuAi