डॉकर मॉडल रनर में NVIDIA GPU समर्थन जोड़ना

डॉकर मॉडल रनर के लिए एनवीडिया CUDA समर्थन के साथ GPU त्वरण सक्षम करें

डॉकर मॉडल रनर डॉकर का आधिकारिक टूल है जो स्थानीय रूप से AI मॉडल चलाने के लिए है, लेकिन डॉकर मॉडल रनर में NVidia GPU त्वरक सक्षम करना के लिए विशेष कॉन्फ़िगरेशन की आवश्यकता होती है।

सामान्य docker run कमांड्स के विपरीत, docker model run --gpus या -e फ्लैग्स का समर्थन नहीं करता है, इसलिए GPU समर्थन को Docker daemon स्तर पर और रनर इंस्टॉलेशन के दौरान कॉन्फ़िगर करना होगा।

अगर आप एक आसान GPU कॉन्फ़िगरेशन वाले विकल्प LLM होस्टिंग समाधान की तलाश कर रहे हैं, तो Ollama पर विचार करें, जिसमें बिल्ट-इन GPU समर्थन और सरल सेटअप है। हालांकि, Docker Model Runner Docker के पारिस्थितिकी तंत्र और OCI आर्टिफैक्ट वितरण के साथ बेहतर एकीकरण प्रदान करता है।

डॉकर मॉडल रनर के साथ NVIDIA GPU समर्थन यह सुंदर छवि AI मॉडल Flux 1 dev द्वारा उत्पन्न की गई है।

पूर्वापेक्षाएँ

GPU समर्थन कॉन्फ़िगर करने से पहले, सुनिश्चित करें कि आपके पास है:

अपने GPU की पहुंच की पुष्टि करें:

nvidia-smi

डॉकर GPU पहुंच का परीक्षण करें:

docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi

अधिक डॉकर कमांड्स और कॉन्फ़िगरेशन विकल्पों के लिए, हमारी डॉकर चीटशीट देखें।

चरण 1: डॉकर डेमन को NVIDIA रनटाइम के लिए कॉन्फ़िगर करें

डॉकर मॉडल रनर को डॉकर डेमन कॉन्फ़िगरेशन में NVIDIA रनटाइम को डिफ़ॉल्ट रनटाइम के रूप में सेट करने की आवश्यकता होती है।

NVIDIA कंटेनर रनटाइम पथ ढूँढें

पहले, यह पता लगाएं कि nvidia-container-runtime कहाँ इंस्टॉल किया गया है:

which nvidia-container-runtime

यह आमतौर पर /usr/bin/nvidia-container-runtime आउटपुट करता है। अगले चरण के लिए इस पथ को नोट करें।

डॉकर डेमन को कॉन्फ़िगर करें

/etc/docker/daemon.json बनाएं या अपडेट करें ताकि NVIDIA को डिफ़ॉल्ट रनटाइम के रूप में सेट किया जा सके:

sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
  "default-runtime": "nvidia",
  "runtimes": {
    "nvidia": {
      "path": "/usr/bin/nvidia-container-runtime",
      "runtimeArgs": []
    }
  }
}
EOF

महत्वपूर्ण: अगर which nvidia-container-runtime ने अलग पथ रिटर्न किया है, तो JSON कॉन्फ़िगरेशन में "path" मान को अनुरूप अपडेट करें।

डॉकर सर्विस को रीस्टार्ट करें

कॉन्फ़िगरेशन लागू करने के लिए डॉकर को रीस्टार्ट करें:

sudo systemctl restart docker

कॉन्फ़िगरेशन की पुष्टि करें

सुनिश्चित करें कि NVIDIA रनटाइम कॉन्फ़िगर किया गया है:

docker info | grep -i runtime

आउटपुट में Default Runtime: nvidia दिखना चाहिए।

चरण 2: GPU समर्थन के साथ डॉकर मॉडल रनर इंस्टॉल करें

डॉकर मॉडल रनर को GPU समर्थन के साथ इंस्टॉल या पुनः इंस्टॉल करना होगा। रनर कंटेनर को CUDA-सक्षम संस्करण होना चाहिए।

चल रहे रनर को रोकें (अगर चल रहा है)

अगर डॉकर मॉडल रनर पहले से इंस्टॉल है, तो पहले इसे रोकें:

docker model stop-runner

CUDA समर्थन के साथ इंस्टॉल/पुनः इंस्टॉल करें

CUDA GPU समर्थन के साथ डॉकर मॉडल रनर को इंस्टॉल या पुनः इंस्टॉल करें:

docker model reinstall-runner --gpu cuda

इस कमांड का कार्य है:

  • CUDA-सक्षम संस्करण (docker/model-runner:latest-cuda) को CPU-केवल संस्करण के बजाय पुल करता है
  • रनर कंटेनर को NVIDIA रनटाइम का उपयोग करने के लिए कॉन्फ़िगर करता है
  • सभी मॉडल के लिए GPU त्वरक सक्षम करता है

नोट: अगर आपने पहले GPU समर्थन के बिना डॉकर मॉडल रनर इंस्टॉल किया है, तो आपको --gpu cuda फ्लैग के साथ इसे पुनः इंस्टॉल करना होगा। केवल डॉकर डेमन को कॉन्फ़िगर करना पर्याप्त नहीं है—रनर कंटेनर को CUDA-सक्षम संस्करण होना चाहिए।

उपलब्ध GPU बैकएंड्स

डॉकर मॉडल रनर कई GPU बैकएंड्स का समर्थन करता है:

  • cuda - NVIDIA CUDA (NVIDIA GPUs के लिए सबसे आम)
  • rocm - AMD ROCm (AMD GPUs के लिए)
  • musa - Moore Threads MUSA
  • cann - Huawei CANN
  • auto - स्वचालित पता लगाना (डिफ़ॉल्ट, सही ढंग से काम नहीं कर सकता)
  • none - CPU केवल

NVIDIA GPUs के लिए, हमेशा --gpu cuda स्पष्ट रूप से उपयोग करें।

चरण 3: GPU पहुंच की पुष्टि करें

इंस्टॉलेशन के बाद, सुनिश्चित करें कि डॉकर मॉडल रनर आपकी GPU तक पहुंच सकता है।

रनर कंटेनर GPU पहुंच का परीक्षण करें

डॉकर मॉडल रनर कंटेनर के भीतर से GPU पहुंच का परीक्षण करें:

docker exec docker-model-runner nvidia-smi

यह आपकी GPU जानकारी प्रदर्शित करना चाहिए, जिससे पुष्टि होती है कि कंटेनर को GPU पहुंच है।

रनर स्थिति की जांच करें

सुनिश्चित करें कि डॉकर मॉडल रनर चल रहा है:

docker model status

आपको यह देखना चाहिए कि रनर सक्रिय है और llama.cpp समर्थन के साथ है।

चरण 4: GPU के साथ मॉडल का परीक्षण करें

एक मॉडल चलाएं और सुनिश्चित करें कि यह GPU का उपयोग कर रहा है।

एक मॉडल चलाएं

मॉडल इन्फरेंस शुरू करें:

docker model run ai/qwen3:14B-Q6_K "who are you?"

लॉग्स में GPU उपयोग की पुष्टि करें

डॉकर मॉडल रनर लॉग्स में GPU की पुष्टि के लिए देखें:

docker model logs | grep -i cuda

आपको GPU उपयोग का संकेत देने वाले संदेश देखने चाहिए:

  • using device CUDA0 (NVIDIA GeForce RTX 4080) - GPU डिवाइस पता लगाया गया
  • offloaded 41/41 layers to GPU - मॉडल लेयर्स GPU पर लोड किए गए
  • CUDA0 model buffer size = 10946.13 MiB - GPU मेमोरी आवंटन
  • CUDA0 KV buffer size = 640.00 MiB - GPU पर की-वैल्यू कैश
  • CUDA0 compute buffer size = 306.75 MiB - GPU पर कंप्यूट बफर

GPU उपयोग का निगरानी करें

एक और टर्मिनल में, मॉडल चलाने के दौरान GPU उपयोग को रियल-टाइम में निगरानी करें:

nvidia-smi -l 1

आपको GPU मेमोरी उपयोग और उपयोगिता बढ़ती देखनी चाहिए।

अधिक उन्नत GPU निगरानी विकल्पों और टूल्स के लिए, हमारी गाइड देखें Linux / Ubuntu में GPU निगरानी एप्लिकेशन्स

समस्या निवारण

मॉडल अभी भी CPU का उपयोग कर रहा है

अगर मॉडल अभी भी CPU पर चल रहा है:

  1. डॉकर डेमन कॉन्फ़िगरेशन की पुष्टि करें:

    docker info | grep -i runtime
    

    Default Runtime: nvidia दिखना चाहिए

  2. रनर कंटेनर रनटाइम की जांच करें:

    docker inspect docker-model-runner | grep -A 2 '"Runtime"'
    

    "Runtime": "nvidia" दिखना चाहिए

  3. GPU समर्थन के साथ रनर को पुनः इंस्टॉल करें:

    docker model reinstall-runner --gpu cuda
    
  4. लॉग्स में त्रुटियों की जांच करें:

    docker model logs | tail -50
    

GPU पता नहीं चल रहा

अगर GPU पता नहीं चल रहा:

  1. सुनिश्चित करें कि NVIDIA कंटेनर टूलकिट इंस्टॉल किया गया है:

    dpkg -l | grep nvidia-container-toolkit
    
  2. सामान्य डॉकर के साथ GPU पहुंच का परीक्षण करें:

    docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
    

    डॉकर समस्याओं के समस्या निवारण के लिए, हमारी डॉकर चीटशीट संदर्भ करें।

  3. NVIDIA ड्राइवरों की जांच करें:

    nvidia-smi
    

प्रदर्शन समस्याएँ

अगर GPU प्रदर्शन खराब है:

  1. GPU उपयोग की जांच करें:

    nvidia-smi
    

    उच्च GPU उपयोग प्रतिशत देखें

  2. सुनिश्चित करें कि मॉडल लेयर्स GPU पर हैं:

    docker model logs | grep "offloaded.*layers to GPU"
    

    सभी लेयर्स को GPU पर ऑफलोड किया जाना चाहिए

  3. मेमोरी समस्याओं की जांच करें:

    nvidia-smi
    

    सुनिश्चित करें कि GPU मेमोरी खत्म नहीं हो गई है

सर्वोत्तम प्रथाएँ

  1. हमेशा GPU बैकएंड स्पष्ट रूप से निर्दिष्ट करें: NVIDIA GPUs के लिए --gpu cuda का उपयोग करें --gpu auto के बजाय सही कॉन्फ़िगरेशन सुनिश्चित करने के लिए।

  2. परिवर्तनों के बाद कॉन्फ़िगरेशन की पुष्टि करें: डॉकर डेमन सेटिंग्स को बदलने के बाद हमेशा docker info | grep -i runtime की जांच करें।

  3. GPU उपयोग का निगरानी करें: मॉडल इन्फरेंस के दौरान nvidia-smi का उपयोग करके GPU मेमोरी और उपयोग का निगरानी करें। अधिक उन्नत निगरानी टूल्स के लिए, हमारी गाइड देखें Linux / Ubuntu में GPU निगरानी एप्लिकेशन्स

  4. लॉग्स को नियमित रूप से देखें: सुनिश्चित करें कि मॉडल GPU त्वरक का उपयोग कर रहे हैं docker model logs की समीक्षा करें।

  5. उपयुक्त मॉडल साइज का उपयोग करें: सुनिश्चित करें कि आपके GPU में मॉडल के लिए पर्याप्त मेमोरी है। GPU मेमोरी दक्षता के लिए क्वांटाइज्ड मॉडल (Q4, Q5, Q6, Q8) का उपयोग करें। AI वर्कलोड्स के लिए सही GPU चुनने में मदद के लिए, हमारी गाइड देखें NVidia GPU स्पेसिफिकेशन्स की तुलना AI के लिए उपयुक्तता

उपयोगी लिंक्स