𝗣𝗘𝗥𝗕𝗔𝗜𝗞𝗔𝗡 𝗡𝗩𝗜𝗗𝗜𝗔 𝗣𝗘𝗘𝗥𝗠𝗘𝗠 𝗜𝗡𝗩𝗔𝗟𝗜𝗗 𝗔𝗥𝗚𝗨𝗠𝗘𝗡𝗧
Anda melihat kesalahan "Invalid argument" saat menjalankan sudo modprobe nvidia-peermem di Ubuntu.
Hal ini terjadi karena Anda menggunakan stack InfiniBand standar Ubuntu. Modul nvidia-peermem memerlukan API khusus yang hanya ditemukan di MLNX_OFED. Jika Anda menggunakan stack rdma-core inbox, modul tersebut akan selalu gagal.
Jangan menginstal MLNX_OFED hanya untuk memperbaiki ini. Itu adalah langkah yang berat dan tidak perlu.
Jika Anda menggunakan GPU Hopper atau Blackwell dengan driver NVIDIA open, Anda tidak memerlukan nvidia-peermem. Anda sebaiknya menggunakan DMA-BUF sebagai gantinya. Ini menyediakan GPUDirect RDMA secara native.
Cara memperbaikinya:
Anda harus mengaktifkan nvidia-drm modeset=1. Ini adalah alasan paling umum mengapa DMA-BUF gagal.
Periksa status Anda saat ini:
cat /sys/module/nvidia_drm/parameters/modeset
Jika menunjukkan N, ikuti langkah-langkah berikut:
Untuk memperbaikinya pada sesi saat ini:
sudo modprobe -r nvidia_drm
sudo modprobe nvidia_drm modeset=1
Untuk memperbaikinya secara permanen:
echo 'options nvidia-drm modeset=1' | sudo tee /etc/modprobe.d/nvidia-drm-modeset.conf
sudo update-initramfs -u
Persyaratan untuk DMA-BUF: • Driver kernel NVIDIA open • HCA dengan dukungan ODP (ConnectX-6 atau ConnectX-7) • GPU Hopper atau yang lebih baru (H100, H200, atau B200)
Untuk memverifikasi bahwa ini berfungsi, pastikan ketiga langkah ini berhasil dalam kode Anda:
cudaMalloc()untuk mengalokasikan memori.cuMemGetHandleForAddressRange()untuk mengekspor memori sebagai file descriptor DMA-BUF.ibv_reg_dmabuf_mr()untuk mendaftarkan descriptor tersebut ke HCA.
Perbandingan:
Legacy (nvidia-peermem):
- Memerlukan MLNX_OFED
- Memerlukan modul eksternal
- Berjalan di semua GPU
Modern (DMA-BUF):
- Berjalan pada inbox rdma-core
- Tidak memerlukan modul eksternal
- Berjalan pada Hopper dan yang lebih baru
- Lebih disukai oleh NVIDIA
Jika port InfiniBand Anda tetap dalam mode INIT, kemungkinan Anda kekurangan Subnet Manager. Jalankan:
sudo apt install opensm
sudo systemctl start opensm
Sumber: https://dev.to/fpolica91/nvidia-peermem-invalid-argument-fix-2b3n
Komunitas belajar opsional: https://t.me/GyaanSetuAi