𝗡𝗩𝗜𝗗𝗜𝗔 𝗣𝗘𝗘𝗥𝗠𝗘𝗠 𝗜𝗡𝗩𝗔𝗟𝗜𝗗 𝗔𝗥𝗚𝗨𝗠𝗘𝗡𝗧 పరిష్కారం

Ubuntuలో sudo modprobe nvidia-peermem రన్ చేస్తున్నప్పుడు మీకు "Invalid argument" అనే ఎర్రర్ కనిపిస్తుంది.

మీరు స్టాండర్డ్ Ubuntu InfiniBand స్టాక్‌ని ఉపయోగిస్తున్నందున ఇది జరుగుతుంది. nvidia-peermem మాడ్యూల్‌కు MLNX_OFEDలో మాత్రమే ఉండే ఒక ప్రత్యేక API అవసరం. మీరు inbox rdma-core స్టాక్‌ని ఉపయోగిస్తే, ఈ మాడ్యూల్ ఎల్లప్పుడూ విఫలమవుతుంది.

దీనిని పరిష్కరించడానికి మాత్రమే MLNX_OFEDని ఇన్‌స్టాల్ చేయకండి. అది అనవసరమైన మరియు భారీ ప్రక్రియ.

మీరు NVIDIA open driverతో Hopper లేదా Blackwell GPUలను ఉపయోగిస్తుంటే, మీకు nvidia-peermem అవసరం లేదు. దానికి బదులుగా DMA-BUFని ఉపయోగించాలి. ఇది నేరుగా (natively) 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)

ఇది పనిచేస్తుందో లేదో ధృవీకరించడానికి, మీ కోడ్‌లో ఈ మూడు దశలు విజయవంతమయ్యేలా చూసుకోండి:

  1. మెమరీని కేటాయించడానికి cudaMalloc().
  2. మెమరీని DMA-BUF ఫైల్ డిస్క్రిప్టర్‌గా ఎగుమతి చేయడానికి cuMemGetHandleForAddressRange().
  3. ఆ డిస్క్రిప్టర్‌ను HCAతో రిజిస్టర్ చేయడానికి ibv_reg_dmabuf_mr().

పోలిక:

పాత పద్ధతి (Legacy - nvidia-peermem):

  • MLNX_OFED అవసరం
  • బాహ్య మాడ్యూల్ అవసరం
  • అన్ని GPUలపై పనిచేస్తుంది

ఆధునిక పద్ధతి (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