GPU पायथन प्रोग्रामिंग — इन्सटॉलेशन
GPU प्रोग्रामिंग द्वारा कम्प्यूटर की कम्प्यूटिंग स्पीड बहुत बढ़ायी जा सकती है ।
NVIDEA के सबसे सस्ते २ जीबी वाले जीपीयू के कोरों की संख्या ३८४ है । उसके बाद है GPU Geforce 1050 जिसमें ६४० कोर हैं । मँहगे जीपीयू और टीपीयू में हजारों कोर होते हैं और डेस्कटॉप में अनेक वैसे जीपीयू जोड़कर मल्टी−जीपीयू प्रोग्रामिंग भी की जाती है जिसके द्वारा कम्प्यूटर की गति लाखों गुणा आप बढ़ा सकते हैं — बिना किसी सुपरकम्प्यूटर के,अपने घर बैठे । किन्तु उसमें लाखों रूपये खर्च होंगे । मेरे लैपटॉप के CPU की औसत क्षमता लगभग ५५ गेगा−फ्लॉप प्रति सेकण्ड है,किन्तु इसी लैपटॉप के GPU की क्षमता ५२०० गेगा−फ्लॉप प्रति सेकण्ड है — यदि औसतन ६ फ्लोटिंग प्वॉइण्ट ऑपरेशन प्रति सेकण्ड हों । अतः CPU−प्रोग्रामिंग की तुलना में यदि GPU प्रोग्रामिंग करेंगे तो कम्प्यूटर की गति अत्यधिक बढ़ायी जा सकती है । परन्तु अधिकांश लोग डेडिकेटेड GPU खरीदते भी हैं तो उसका उपयोग केवल वीडियो गेम खेलने में करते हैं,प्रोग्रामिंग में उसका प्रयोग केवल वैज्ञानिकों द्वारा किया जाता है ।
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NVIDEA के GPU टूलकिट और न्यूरल लायब्रेरी का इन्सटॉलेशन
Machine Learning Starter लेख में CPU−प्रोग्रामिंग मोड में पायथन न्यूरल नेटवर्क ट्रेनिंग हेतु समूचे एनवायरनमेण्ट का इन्सटॉलेशन और प्रोग्रामिंग का उदाहरण दिया गया था ।
अनाकोण्डा में उस “बेस” एनवायरनमेण्ट के इन्सटॉलेशन के बाद जीपीयू−एनवायरनमेण्ट का इन्सटॉलेशन अब इस लेख में दिखाया जा रहा है । आपके कम्प्यूटर में NVIDEA का GPU है तभी यह लेख काम देगा । नीचे जो उदाहरण है वह NVIDEA के GPU Geforce 1050 (ग्राफिक मेमोरी 4GB) तथा RTX-3090 (ग्राफिक मेमोरी 24GB) पर टेस्ट किया गया है । लैपटॉप में न्यूनतम ८ जीबी सामान्य रैम और NVIDEA का कोई भी जीपीयू हो तभी यह लेख आपके काम का होगा । सामान्य रैम यदि ८ जीबी है और जीपीयू नहीं है तो पिछले लेख के छोटे प्रोग्राम जैसे प्रोग्राम ही रन करने चाहिये ।
इन्सटॉलेशन की विधि
अनाकोण्डा के “बेस” (base) एनवायरनमेण्ट में कोई पैकेज इन्सटॉल मत करें,वैसा करना ही हो तो नया एनवायरनमेण्ट बनाकर उसमें जोड़तोड़ करें । “बेस” एनवायरनमेण्ट में भूलकर भी जीपीयू लाइब्रेरियों और पैकेजों को इन्सटॉल मत करें,वरना सामान्य CPU−प्रोग्रामिंग मोड गड़बड़ा जायगा । यदि आपका विण्डो यूजर−पथ का नाम एक अक्षर का नहीं है तो अनाकोण्डा को सिस्टम ड्राइव के किसी नये पथ में इन्सटॉल करें जिसका नाम एक अक्षर का हो,जैसे कि AnacondaMy ॥
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
कुडा−टूलकिट
( CUDA = Compute Unified Device Architecture = डेडिकेटेड जीपीयू के सैकड़ों या हजारों कोरों को एकसाथ कम्प्यूटिंग हेतु प्रयुक्त करने का पैरेलल प्रोसेसिंग सॉफ्टवेयर)
अब इस वेबसाइट से NVIDEA का विशाल (CUDA) कुडा−टूलकिट इन्सटॉल कर लें,आपका विण्डो किस वर्सन का है इसे ध्यान में रखकर कुडा−टूलकिट का वर्सन चुनें । अपने कम्प्यूटर के जीपीयू के ड्राइवर का नाम न पता हो तो इस वेबसाइट पर सबसे अच्छे ड्राइवर वाला टूलकिट चुनें (२⋅३८ जीबी का ऐक्से फाइल है,डाउनलोड करने में समय लेगा) । मेरे लैपटॉप में विण्डो−11 है,अतः मुझे cuda_12.0 डाउनलोड करना पड़ा (१ मई २०२३ को नवीनतम Anaconda3-2023.03-1-Windows-x86_64.exe के लिए) । डाउनलोड के पश्चात इस फाइल को रन करें,इन्सटॉल हो जायगा :—
https://developer.nvidia.com/cuda-downloads
अब कुडा न्यूरल नेटवर्क cuDNN की लाइब्रेरी इस वेबसाइट से डाउनलोड करें —
https://developer.nvidia.com/rdp/cudnn-download
डाउनलोड के पश्चात उस जिप फाइल को अन−कम्प्रेस करके उस पूरे फोल्डर को के सारे फोल्डरों को निम्न पथ में पेस्ट कर दें,जो कि NVIDEA ग्राफिक कार्ड का डिफॉल्ट पथ है —
C:\Program Files\NVIDIA\CUDNN\v8.9\bin
अब विण्डो के स्टार्ट के बगल में सर्च बॉक्स में Edit environment variables for your account ढूँढकर खोलें । खुलने पर उसमें ऊपर ‘यूजर वेरिएबल्स⋅⋅⋅’ मिलेगा,उसके अन्दर Path को चुनकर एडिट बटन दबायें और जो नया इण्टरफेस−विण्डो खुलेगा उसमें न्यू को क्लिक करकें “C:\Program Files\NVIDIA\CUDNN\v8.3\bin” पेस्ट कर दें — अनाकोण्डा और विण्डो भी उसी C ड्राइव में होने चाहिये ।
आपके कम्प्यूटर में माइक्रोसॉफ्ट विजुअल स्टुडियो है तो उसमें भी उपरोक्त सारे टूल स्वतः इन्स्टॉल्ड हो जायेंगे । माइक्रोसॉफ्ट विजुअल स्टुडियो का कम्युनिटी एडिशन मुफ्त में है किन्तु विण्डो लायसेंस वर्सन वाला चाहिये ।
(कम्प्यूटर में यदि डेडिकेटेड GPU है तो निम्न मत पढ़ें और नीचे अगले अनुच्छेद KERAS-GPU पर जायें ।)
यदि भविष्य में कभी पायथन के किसी विशेष वर्सन वाले एनवायरनमेण्ट की आवश्यकता पड़े ,उदाहरणार्थ python 3.9.12,तो उसे बनाने के लिये बेस एनवायरनमेण्ट में निम्न कमाण्ड रन करें —
conda create -n py391 python=3.9.12
(check latest anaconda's compatible version at = https://repo.anaconda.com/pkgs/main/win-64/ )
Then,
conda activate py391
मैंने विण्डो स्टोर से विण्डो सिस्टम में नवीनतम पायथन−३⋅१० भी इन्सटॉल किया था किन्तु हटा दिया क्योंकि उसके लिये सभी लाइब्रेरियाँ नहीं बन सकीं हैं और बन भी जायें तो विण्डो सिस्टम में उन सबको इन्सटॉल करना खतरनाक होगा । माइक्रोसॉफ्ट के विजुअल स्टुडियों से भी मैंने पायथन को हटा दिया क्योंकि उसी कारण से माइक्रोसॉफ्ट अनाकोण्डा वाले मेरे प्रोग्रामों की चोरी कर रही थी । अपने यूजर पथ में पायथन⋅हिस्ट्री नाम के फाइल की नियमित रूप से खोज करते रहें और देखते ही डिलीट कर दें,यही वह हैकिंग टूल है जिसके द्वारा माइक्रोसॉफ्ट आपके सभी पायथन प्रोग्रामों की चोरी करती है ।
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
KERAS-GPU
अब अनाकोण्डा के एडमिनिस्ट्रेटिव प्रॉम्प्ट पर निम्न कमाण्ड टाइप करके नया एनवॉयरनमेण्ट बना लें (envgpu के बदले नये एनवॉयरनमेण्ट का कुछ भी नाम रख सकते हैं) —
(**४ अप्रैल २०२५ को नवीनतम Windows-११ में Anaconda के लिए निम्न पैकेज सही है) । यदि आपके कम्प्यूटर में GPU नहीं है तो keras-gpu तथा tensorflow-gpu में “-gpu” हटाकर शेष निम्नवत इन्सटॉल करें । तब GPU−मोड के बदले CPU−मोड मोड में प्रोग्रामिंग करनी पड़ेगी जो बहुत धीमी होगी और बड़े प्रोग्राम तो कार्य ही नहीं करेंगे ।)
═══════════════════════════════════════════════════
════════════════════════════════════════════ tf2.10 gpu:
conda create -n envgpu python=3.7.16 anaconda
conda update conda
conda activate envgpu
conda update —all
conda update pip
pip install daal==2023.2.1 daal4py==2023.2.1 tbb==2021.13.1
conda install -c conda-forge easydict
conda install keras-gpu
conda install -c conda-forge imutils
pip install tensorlayer
conda update keras-gpu
pip3 install opencv-python==4.11.0.86
pip install —upgrade opencv-python
pip install PyHamcrest==2.0.3
pip install twisted==22.4.0
pip install opencv-contrib-python
conda install -c conda-forge scikit-image
conda update scikit-image
pip install pypng
conda install -c conda-forge lime
conda update keras-gpu
conda update anaconda
pip install tensorflow==2.10.0
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1
conda install -c conda-forge pyinstaller
conda install scikit-learn-intelex
═══════════════════════════════════════════════════
═══════════════════════════════Create torch Colorization Env:-
conda create -n env_colorize python=3.9
conda activate env_colorize
- Torch and FastAI for DeOldify
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
pip install fastai==1.0.61 opencv-python ffmpeg-python
git clone https://github.com/jantic/DeOldify.git
═══════════════════════════════════════════════════
═════════════════════════════Create torch Real-ESRGAN Env:-
conda create -n env_realesrgan python=3.11
conda activate env_realesrgan
pip install torch torchvision torchaudio —index-url https://download.pytorch.org/whl/cu121
pip install realesrgan basicsr gfpgan facexlib
pip install tqdm opencv-python ffmpeg-python
git clone https://github.com/xinntao/Real-ESRGAN.git
═══════════════════════════════════════════════════
══════════════════════════════════Create torch AUDIO Env:-
conda create -n env_audio python=3.10 -y
conda activate env_audio
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 cudatoolkit=11.8 -c pytorch -c nvidia
pip install librosa==0.10.1 soundfile pydub noisereduce webrtcvad
pip install ffmpeg-python
pip install pyaudio sounddevice
pip install openai-whisper
pip install SpeechRecognition
pip install demucs # Much higher-quality separation than Spleeter, TEST = demucs song.mp3
# Use —two-stems vocals to isolate vocals only.
pip install speechbrain
# An all-in-one toolkit for speech processing (recognition, enhancement, separation, and speaker tasks)
pip install "numpy<2"
pip install asteroid
# A PyTorch-based library for speech enhancement and separation that provides cutting-edge models.
pip install nussl
# A flexible source separation framework for music and audio signal processing research.
pip install praat-parselmouth
# A Python interface to Praat for speech analysis (pitch, formants, and voice quality measures).
pip install pyAudioAnalysis
# A library for audio feature extraction, classification, segmentation, and visualization.
pip install mir_eval
# pip install mir_eval
═══════════════════════════════════════════════════
═══════════════════════════════════════════════════
══════════════════════════════════════Create tf env_tuner:-
conda create —name env_tuner —clone envgpu
conda activate env_tuner
pip install "autokeras[image]" keras-tuner optuna ray wandb
pip install matplotlib seaborn pandas scikit-learn
pip install tensorboard tensorflow-addons
pip install tk # fo GUI
pip install pandas
═════════════ DONE.
Use env_tuner for:
Data cleaning
Feature selection
Hyperparameter tuning
All visualizations and experimentation
Feature / Tool env_tuner (✔️ = Included)
TensorFlow 2.10 (GPU-enabled) ✔️ via clone from envgpu
AutoKeras / Keras-Tuner ✔️ For automatic tuning
Optuna / Ray / wandb ✔️ For smarter hyperparameter optimization
matplotlib, seaborn ✔️ For elegant plots
pandas, scikit-learn ✔️ For data cleaning, prep
tensorboard + addons ✔️ For model monitoring
You could do the following inside just one Jupyter Notebook or .py file in env_tuner:
Load large weather dataset (CSV or SQL or HDF5)
Visualize anomalies or missing values with seaborn, matplotlib, or pandas.plot
Rectify data (drop, fill, interpolate, normalize)
Build baseline MLP
Auto-tune hyperparameters with keras-tuner, autokeras, or optuna
Track trials with wandb or tensorboard
Compare predictions across models visually
Even if your final model is trained elsewhere (like envgpu), your data analysis and hyperparameter search should definitely happen in env_tuner.
conda env remove —name env_audio
═══════════════════════════════════════════════════ TTS
conda create -n env_audioTTS python=3.9 -y
conda activate env_audioTTS
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
pip install TTS pyttsx3
cd C:\Users\vinay\vinjhaa\projects
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
pip install -r requirements.txt # REM REM deepspeed in requirements.txt due to its UNIX relation.
cd ..
pip install git+https://github.com/suno-ai/bark.git
═══════════════════════════════════════════════════
TensorRT is designed to accelerate the inference of deep learning models on NVIDIA GPUs, similar to how OpenVINO optimizes models for CPU inference. It takes your pretrained models, applies optimizations, and can significantly reduce latency and increase throughput during inference.
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html
════════════════════════════════════════════════════════
किसी env1 नाम वाले एनवॉयरनमेण्ट को सदा के लिये हटाने
का यह कोड है —
conda remove —name env1 —all (double dash)
कोण्डा के एनवॉयरनमेण्टों का प्रबन्धन यहाँ सीख सकते हैं (अभी इस लेख के लिये आवश्यक नहीं है) —
https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
सभी अनाकोण्डा environments का नाम देखने के लिए base खोलकर टाइप करें=
conda env list
यदि विण्डो किसी env का नाम ही एप्प सूची में नहीं दिखा रहा है तो base खोलकर निम्न टाइप करें=
conda activate envName
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GPU में न्यूरल नेटवर्क ट्रेनिंग
किसी अन्य एनवॉयरनमेण्ट से निकलकर “बेस” में कार्य करना है तो उसे डि−एक्टिवेट करें —
conda deactivate
keras-gpu एनवॉयरनमेण्ट खोलकर उसमें एक प्रोग्राम बनाकर इसकी जाँच कर लें,जो नीचे है ।
जिस वेबसाइट पर पायथन में एक (OCR का) टेस्ट प्रोग्राम mnist_mlp.py था वहाँ से वह हटाया जा चुका है,अतः वह पूरा पायथन फाइल मैंने अपने इसी पन्ने के नीचे फाइल टैब के अन्तर्गत मूल नाम mnist_mlp.py से अपलोड कर दिया है (यह जीपीयू प्रोग्राम एण्टोनियो सेह्क नाम के व्यक्ति ने बनाया और डाटाबेस भी अमेजन−क्लाउड पर उसके अकाउण्ट वाला है । उक्त प्रोग्राम में क्लाउड प्रोग्रामिंग द्वारा डाटा डाउनलोड किया गया — मेरे लैपटॉप में ।) जिसके द्वारा आप उपरोक्त जीपीयू मोड की जाँच कर सकते हैं और इस प्रोग्राम की भाषा सीखकर वैसे ही नये जीपीयू मोड के प्रोग्राम भी बना सकते हैं ।
उसका इनपुट डैटासेट mnist वेबसाइट पर है जिसे mnist_mlp.py स्वतः डाउनलोड कर लेगा,यदि वह डैटासेट भी कभी अपने वेबसाइट से हटा दिया जाय तो मैंने नीचे फाइल अैब के अन्तर्गत mnist.npz नाम वाले उस डैटा फाइल को भी अपलोड कर दिया है ।
उस प्रोग्राम को कॉपी करके नोटपैड में पेस्ट करें और mnist_mlp.py नाम से किसी नये फोल्डर में सेव कर लें । अनाकोण्डा प्रॉम्प्ट पर निम्न पङ्क्ति लिखने पर ११ MB का विशाल डाटाबेस स्वतः प्रोग्राम में डाउनलोड होगा और फिर उसपर जीपीयू मोड की न्यूरल नेटवर्क प्रोग्रामिंग चलकर २० एपोक में ट्रेनिंग करेगी,हर एपोक में एक्यूरेसी बढ़ती जायगी जो अन्त में ९९⋅५% तक पँहुच जायगी,औसत एक्यूरेसी ९८⋅३१% होगी —
python mnist_mlp.py
किन्तु इसका पथ भी देना पड़ेगा;मेरे लैपटॉप में इस पायथप प्रोग्राम का पथ है —
Z:\PythonPrograms\kerasgpu\mnist_mlp.py
अतः इस जीपीयू−मोड वाले एनवॉयरनमेण्ट के भीतर पायथन के एग्जेक्यूटिव फाइल का पथ भी देना पड़ेगा,तभी कोई पायथन प्रोग्राम इस एनवॉयरनमेण्ट में अनाकोण्डा प्रॉम्प्ट में खुलेगा —
C:\Anaconda3\envs\env_gpu\python.exe Z:\PythonPrograms\kerasgpu\mnist_mlp.py
विकल्प यह है कि अनाकोण्डा प्रॉम्प्ट के kerasgpu एनवॉयरनमेण्ट में mnist_mlp.py फाइल के एक−एक लाइन को बारी−बारी से रन करें । इसके लिये नोटपैड में mnist_mlp.py फाइल खोलकर उसे पढ़ना पड़ेगा ।
केरस के अपने वेबसाइट पर यह डैटासेट है जिसमें 28x28 पिक्सेल के ग्रेस्केल वाले रोमन लिपि के दस अङ्कों के हस्तलिखित ६० हजार इमेज ट्रेनिेग के लिये और अतिरिक्त दस हजार इमेज ट्रेनिंग सम्पन्न होने के बाद ट्रेण्ड मॉडल की टेस्टिंग के लिये है । इस डैटासेट में 28x28 पिक्सेल “shape” सहित सारे ७० हजार इमेज array में x हैं,और दस अङ्कों के लेबल और उनके shape (num_samples) array में y हैं ।
प्रोग्राम के आरम्भ,मध्य और अन्त के तीन स्क्रीनशॉट संलग्न है जो दिखाते हैं कि मेरे लैपटॉप के GPU device name: GeForce GTX 1050 पर यह प्रोग्राम चला है । एक एपोक में २ सेकण्ड लगा,२० एपोक में ४० सेकण्ड लगे,जबकि डाटाबेस में ७०००० सैम्पल और 669,706 params हैं,डाटाबेस ११ MB का है : 11,490,434 bytes!
रिलायन्स इण्डस्टीज लिमिटेड के ४२७ KB फाइल के सौवें हिस्से अर्थात् ४ KB की न्यूरल नेटवर्क ट्रेनिंग में केवल एक एपोक ने सवा मिनट का समय लिया — CPU मोड में । GPU मोड में मेरे लैपटॉप की गति सैकड़ों गुणा बढ़ गयी । CPU मोड में तो यह mnist प्रोग्राम कार्य ही नहीं कर पाता,या तो लैपटॉप हैंग होकर बन्द हो जाता या कई घण्टे लगते!कम्प्यूटर में पर्याप्त जनरल रैम हो और गर्मी से सुरक्षा हो तो इतनी तीव्र गति के GPU मोड में भी कई सप्ताह न्यूरल ट्रेनिंग में लगने वाले प्रोग्राम वैज्ञानिकों को बनाने पड़ते हैं जिस कारण गति और भी बढ़ाने के प्रयास होते रहते हैं ।
संसार के सबसे अच्छे सुपरकम्प्यूटर की गति एक अच्छे लैपटॉप से लगभग एक करोड़ गुणा तेज होती है । लैपटॉप में जीपीयू−मोड की कम्प्यूटिंग भी कुछ हजार गुणा ही गति बढ़ायेगी । किन्तु क्लाउड में गूगल−टीपीयू द्वारा असली सुपरकम्प्यूटर की शक्ति का लाभ लैपटॉप में उठा सकते हैं,केवल संख्याओं की लम्बाई,अर्थात् शुद्धि,सुपरकम्प्यूटर से कम रहेगी,किन्तु गति संसार के सबसे तेज पाँच सुपरकम्प्यूटरों के समकक्ष होगी । उसका तरीका भी वही है जो प्रस्तुत लेख में है,केवल जीपीयू की मेमोरी और कोरों की संख्या अधिक होती है और अनेक जीपीयू होते हैं । साधारण डेस्कटॉप कम्प्यूटर में अनेक जीपीयू लगाकर एकसाथ उन सबका लाभ एक ही प्रोग्राम में उठा सकते हैं ।
इस प्रोग्राम के तीन स्क्रीनशॉट संलग्न है :—

