NVIDIA PEERMEM INVALID ARGUMENT FIX
જ્યારે તમે Ubuntu પર sudo modprobe nvidia-peermem ચલાવો છો ત્યારે તમને "Invalid argument" એરર જોવા મળે છે.
આવું એટલા માટે થાય છે કારણ કે તમે સ્ટાન્ડર્ડ Ubuntu InfiniBand સ્ટેકનો ઉપયોગ કરી રહ્યા છો. nvidia-peermem મોડ્યુલને એક ચોક્કસ API ની જરૂર હોય છે જે ફક્ત MLNX_OFED માં જ જોવા મળે છે. જો તમે inbox rdma-core સ્ટેકનો ઉપયોગ કરો છો, તો મોડ્યુલ હંમેશા નિષ્ફળ જશે.
આને ઠીક કરવા માટે ફક્ત MLNX_OFED ઇન્સ્ટોલ કરશો નહીં. તે એક ભારે અને બિનજરૂરી પગલું છે.
જો તમે NVIDIA open driver સાથે Hopper અથવા Blackwell GPUs નો ઉપયોગ કરો છો, તો તમને nvidia-peermem ની જરૂર નથી. તેના બદલે તમારે DMA-BUF નો ઉપયોગ કરવો જોઈએ. તે નેટિવલી GPUDirect RDMA પ્રદાન કરે છે.
તેને કેવી રીતે ઠીક કરવું:
તમારે nvidia-drm modeset=1 સક્ષમ કરવું આવશ્યક છે. DMA-BUF નિષ્ફળ જવાનું આ સૌથી સામાન્ય કારણ છે.
તમારી વર્તમાન સ્થિતિ તપાસો:
cat /sys/module/nvidia_drm/parameters/modeset
જો તે N બતાવે છે, તો આ પગલાં અનુસરો:
વર્તમાન સેશન માટે તેને ઠીક કરવા માટે:
sudo modprobe -r nvidia_drm
sudo modprobe nvidia_drm modeset=1
તેને કાયમી ધોરણે ઠીક કરવા માટે:
echo 'options nvidia-drm modeset=1' | sudo tee /etc/modprobe.d/nvidia-drm-modeset.conf
sudo update-initramfs -u
DMA-BUF માટેની જરૂરિયાતો: • NVIDIA open kernel driver • ODP સપોર્ટ સાથેનું HCA (ConnectX-6 અથવા ConnectX-7) • Hopper અથવા તેનાથી નવા GPU (H100, H200, અથવા B200)
તે કામ કરે છે તેની ખાતરી કરવા માટે, તમારા કોડમાં આ ત્રણ પગલાં સફળ થાય તેની ખાતરી કરો:
cudaMalloc()મેમરી ફાળવવા માટે.cuMemGetHandleForAddressRange()મેમરીને DMA-BUF ફાઇલ ડિસ્ક્રિપ્ટર તરીકે એક્સપોર્ટ કરવા માટે.ibv_reg_dmabuf_mr()તે ડિસ્ક્રિપ્ટરને HCA સાથે રજિસ્ટર કરવા માટે.
સરખામણી:
Legacy (nvidia-peermem):
- MLNX_OFED ની જરૂર છે
- બાહ્ય મોડ્યુલની જરૂર છે
- તમામ GPUs પર કામ કરે છે
Modern (DMA-BUF):
- inbox rdma-core પર કામ કરે છે
- કોઈ બાહ્ય મોડ્યુલની જરૂર નથી
- Hopper અને તેનાથી નવા પર કામ કરે છે
- NVIDIA દ્વારા પસંદ કરવામાં આવે છે
જો તમારા InfiniBand પોર્ટ્સ INIT મોડમાં રહે છે, તો કદાચ તમારી પાસે Subnet Manager નથી. આ ચલાવો:
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