𝗡𝗩𝗜𝗗𝗜𝗔 𝗣𝗘𝗘𝗥𝗠𝗘𝗠 𝗜𝗡𝗩𝗔𝗟𝗜𝗗 𝗔𝗥𝗚𝗨𝗠𝗘𝗡𝗧 ਠੀਕ ਕਰਨ ਦਾ ਤਰੀਕਾ
ਜਦੋਂ ਤੁਸੀਂ Ubuntu 'ਤੇ sudo modprobe nvidia-peermem ਚਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ "Invalid argument" ਦੀ ਗਲਤੀ (error) ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ।
ਇਹ ਇਸ ਲਈ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ ਤੁਸੀਂ ਸਟੈਂਡਰਡ Ubuntu InfiniBand stack ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ। nvidia-peermem ਮੋਡਿਊਲ ਨੂੰ ਇੱਕ ਖਾਸ API ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜੋ ਸਿਰਫ਼ MLNX_OFED ਵਿੱਚ ਮਿਲਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ inbox rdma-core stack ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਮੋਡਿਊਲ ਹਮੇਸ਼ਾ ਫੇਲ ਹੋ ਜਾਵੇਗਾ।
ਇਸ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਸਿਰਫ਼ MLNX_OFED ਇੰਸਟਾਲ ਨਾ ਕਰੋ। ਇਹ ਇੱਕ ਭਾਰੀ ਅਤੇ ਬੇਲੋੜਾ ਕਦਮ ਹੈ।
ਜੇਕਰ ਤੁਸੀਂ NVIDIA open driver ਦੇ ਨਾਲ Hopper ਜਾਂ Blackwell GPUs ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ nvidia-peermem ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਇਸ ਦੀ ਬਜਾਏ ਤੁਹਾਨੂੰ DMA-BUF ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਇਹ ਨੈਟਿਵਲੀ (natively) GPUDirect RDMA ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
ਇਸ ਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕਰੀਏ:
ਤੁਹਾਨੂੰ nvidia-drm modeset=1 ਨੂੰ ਇਨੇਬਲ (enable) ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। DMA-BUF ਦੇ ਫੇਲ ਹੋਣ ਦਾ ਇਹ ਸਭ ਤੋਂ ਆਮ ਕਾਰਨ ਹੈ।
ਆਪਣੀ ਮੌਜੂਦਾ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰੋ:
cat /sys/module/nvidia_drm/parameters/modeset
ਜੇਕਰ ਇਹ N ਦਿਖਾਉਂਦਾ ਹੈ, ਤਾਂ ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ:
ਮੌਜੂਦਾ ਸੈਸ਼ਨ (session) ਲਈ ਠੀਕ ਕਰਨ ਲਈ:
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()। - ਮੈਮੋਰੀ ਨੂੰ DMA-BUF ਫਾਈਲ ਡਿਸਕ੍ਰਿਪਟਰ ਵਜੋਂ ਐਕਸਪੋਰਟ ਕਰਨ ਲਈ
cuMemGetHandleForAddressRange()। - ਉਸ ਡਿਸਕ੍ਰਿਪਟਰ ਨੂੰ HCA ਨਾਲ ਰਜਿਸਟਰ ਕਰਨ ਲਈ
ibv_reg_dmabuf_mr()।
ਤੁਲਨਾ:
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
ਸਰੋਤ: https://dev.to/fpolica91/nvidia-peermem-invalid-argument-fix-2b3n
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi