Ubuntu पर NVIDIA GPUs को nvidia-smi का उपयोग करके कैसे मॉनिटर और मैनेज करें

1. परिचय

जब आप Ubuntu पर GPU का उपयोग करते हैं, तो उसकी स्थिति को सटीक रूप से मॉनिटर करना आवश्यक होता है। यह विशेष रूप से डीप लर्निंग या ग्राफिक रेंडरिंग जैसे वर्कलोड में महत्वपूर्ण है, जहाँ GPU उपयोग और ड्राइवर संस्करणों को समझना अनिवार्य होता है। इस लेख में हम nvidia-smi—एक NVIDIA GPU प्रबंधन टूल—का उपयोग कैसे करें, इसे समझाते हैं और Ubuntu पर GPU जानकारी जांचने के तरीकों का परिचय देते हैं।

2. nvidia-smi के साथ GPU जानकारी जांचना

nvidia-smi एक कमांड‑लाइन टूल है जो आपको NVIDIA GPUs की उपयोगिता, मेमोरी उपयोग और अन्य विस्तृत जानकारी मॉनिटर करने की सुविधा देता है। यह रीयल‑टाइम में GPU गतिविधि जांचने या विस्तृत उपयोग मीट्रिक प्राप्त करने के लिए विशेष रूप से उपयोगी है।

बुनियादी उपयोग

आप निम्नलिखित कमांड का उपयोग करके रीयल‑टाइम में GPU उपयोग और मेमोरी उपयोगिता को मॉनिटर कर सकते हैं:

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1

यह कमांड GPU उपयोग, मेमोरी उपयोग और उपलब्ध मेमोरी सहित विस्तृत जानकारी प्राप्त करता है। -l विकल्प आपको रिफ्रेश अंतराल (सेकंड में) सेट करने की अनुमति देता है।

डिस्प्ले फ़ॉर्मेट और फ़ाइल आउटपुट

डिफ़ॉल्ट रूप से, परिणाम तालिका स्वरूप में दिखाए जाते हैं, लेकिन आप उन्हें CSV के रूप में आउटपुट कर सकते हैं ताकि प्रोसेसिंग आसान हो सके। यदि आप जानकारी को फ़ाइल में सहेजना चाहते हैं, तो -f विकल्प के साथ गंतव्य निर्दिष्ट करें।

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /path/to/output.csv

यह आपको GPU उपयोग लॉग को सहेजने और बाद में उनका विश्लेषण करने की सुविधा देता है।

3. nvidia-smi के साथ प्रोसेस जानकारी प्राप्त करना

nvidia-smi आपको वर्तमान में GPU का उपयोग कर रहे प्रोसेस की जानकारी भी प्राप्त करने की अनुमति देता है। इससे यह पता लगाने में मदद मिलती है कि प्रत्येक प्रोसेस कितनी GPU संसाधन उपयोग कर रहा है।

प्रोसेस जानकारी प्राप्त करना

GPU का उपयोग करने वाले प्रोसेस के PID और मेमोरी उपयोग को देखने के लिए निम्नलिखित कमांड का उपयोग करें:

nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader

यह कमांड सक्रिय GPU प्रोसेस की सूची लौटाता है और प्रत्येक प्रोसेस की मेमोरी उपयोगिता दिखाता है।

nvidia-smi pmon सबकमांड

nvidia-smi टूल में एक pmon सबकमांड भी शामिल है, जो विस्तृत GPU प्रोसेस मॉनिटरिंग प्रदान करता है।

nvidia-smi pmon --delay 10 -s u -o DT

यह निर्दिष्ट अंतराल पर GPU प्रोसेस जानकारी प्रदर्शित करता है। --delay विकल्प रिफ्रेश अंतराल (सेकंड में) निर्धारित करता है, और आप यह चुन सकते हैं कि कौन सी जानकारी प्रदर्शित करनी है।

4. NVIDIA ड्राइवर स्थापित करना और सत्यापित करना

Ubuntu पर NVIDIA GPU का उपयोग करने के लिए सही NVIDIA ड्राइवर स्थापित होना आवश्यक है। नीचे स्थापना और सत्यापन के चरण दिए गए हैं।

ड्राइवर स्थापना

सबसे पहले, निम्नलिखित कमांड का उपयोग करके अपने सिस्टम के लिए उपयुक्त NVIDIA ड्राइवर स्थापित करें:

sudo apt install nvidia-driver-510

स्थापना पूर्ण होने के बाद, अपने सिस्टम को पुनः प्रारंभ करें।

स्थापना का सत्यापन

रीबूट के बाद, ड्राइवर सही तरीके से स्थापित हुआ है या नहीं, यह पुष्टि करने के लिए निम्नलिखित कमांड चलाएँ:

nvidia-smi

यदि ड्राइवर संस्करण और CUDA संस्करण दिखाई देते हैं, तो स्थापना सफल रही है।

5. TensorFlow के साथ GPU संचालन का सत्यापन

आप TensorFlow, एक मशीन लर्निंग फ्रेमवर्क, के साथ परीक्षण करके GPU कार्यक्षमता को भी सत्यापित कर सकते हैं।

Anaconda स्थापित करना

पहले, Anaconda स्थापित करें और अपना वातावरण सेट करें:

bash ./Anaconda3-2022.05-Linux-x86_64.sh
conda update -n base conda
conda update anaconda
conda update -y --all
conda install tensorflow-gpu==2.4.1

TensorFlow में GPU पहचान की जाँच

अगला, यह सत्यापित करें कि TensorFlow GPU को पहचान रहा है या नहीं:

from tensorflow.python.client import device_lib
device_lib.list_local_devices()

यदि सूची में GPU डिवाइस दिखाई देता है, तो TensorFlow ने सफलतापूर्वक GPU का पता लगा लिया है।

6. GPU मॉनिटरिंग और लॉगिंग

nvidia-smi रीयल‑टाइम GPU मॉनिटरिंग और लॉग रिकॉर्डिंग को सक्षम करता है। यह समय के साथ GPU उपयोग को ट्रैक करने और प्रदर्शन को अनुकूलित करने में मदद करता है।

आवधिक निगरानी

आवधिक निगरानी सेट करने के लिए, अपडेट अंतराल निर्दिष्ट करने हेतु -l विकल्प का उपयोग करें, और वैकल्पिक रूप से डेटा को फ़ाइल में लॉग करें:

nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.free --format=csv -l 1 -f /var/log/gpu.log

Python बाइंडिंग्स के माध्यम से प्रोग्रामेबल नियंत्रण

nvidia-smi Python बाइंडिंग्स (nvidia-ml-py) प्रदान करता है जो आपको प्रोग्रामेटिक रूप से GPU जानकारी प्राप्त करने की अनुमति देती हैं। यह Python स्क्रिप्ट्स से अधिक अनुकूलित निगरानी और नियंत्रण को सक्षम बनाता है।

7. निष्कर्ष

nvidia-smi Ubuntu पर NVIDIA GPU उपयोग की जाँच और प्रबंधन के लिए एक शक्तिशाली उपकरण है। इस लेख में बुनियादी उपयोग, प्रक्रिया निगरानी, ड्राइवर स्थापना, और TensorFlow GPU सत्यापन को समझाया गया है। इन तकनीकों का उपयोग करके GPU प्रदर्शन को अधिकतम करें और अपने सिस्टम को अनुकूलित करें।