本站提供正體中文版。切換到正體中文本站提供简体中文版。切换到简体中文This site is available in English.View in Englishこのサイトには日本語版があります。日本語で表示이 사이트는 한국어로도 제공됩니다.한국어로 보기Diese Website ist auch auf Deutsch verfügbar.Auf Deutsch ansehenEste sitio web también está disponible en español.Ver en españolQuesto sito è disponibile anche in italiano.Visualizza in italianoCe site est également disponible en français.Afficher en françaisEste site também está disponível em português.Ver em portuguêsDeze website is ook beschikbaar in het Nederlands.In het Nederlands bekijkenЭтот сайт также доступен на русском языке.Смотреть на русскомهذا الموقع متاح أيضًا باللغة العربية.عرض بالعربيةSitus ini juga tersedia dalam bahasa Indonesia.Lihat dalam bahasa IndonesiaBu site Türkçe olarak da mevcut.Türkçe görüntüleTa strona jest dostępna także po polsku.Wyświetl po polskuTrang web này cũng có phiên bản tiếng Việt.Xem bằng tiếng Việtاین وب‌سایت به فارسی هم در دسترس است.مشاهده به فارسی

PixInsight में GPU एक्सेलेरेशन: CUDA सेटअप और परफ़ॉर्मेंस का वास्तविक परीक्षण

टूल्स और हार्डवेयर2021.12शुरुआती नोट्स

यह लेख 2021 से 2024 के बीच लिए गए नोट्स से संकलित है। कुछ टूल, CUDA संस्करण और सेटअप की प्रक्रिया तब से बदल चुकी है (ख़ासकर बाद के PixInsight संस्करणों में अब एक-क्लिक सेटअप उपलब्ध है), इसलिए पढ़ते समय समय-संदर्भ का ध्यान रखें।

जब से स्टार रिमूवल, AI शोर घटाना और AI शार्पनिंग जैसी न्यूरल नेटवर्क वाली प्रोसेस एक-एक करके PixInsight के वर्कफ़्लो में आने लगी हैं, तब से “क्या इमेज प्रोसेसिंग वाले कंप्यूटर में एक ग्राफ़िक्स कार्ड जोड़ा जाए?” एक बहुत ही व्यावहारिक सवाल बन गया है। इस लेख में मैं पिछले कुछ वर्षों में GPU एक्सेलेरेशन को लेकर किए गए अपने परीक्षण और सेटअप के अनुभव समेट रहा हूँ — GPU क्यों चाहिए, उसे कैसे चालू करें, उससे कितना समय बचता है, और अलग-अलग प्लैटफ़ॉर्म में क्या फ़र्क़ है।

GPU एक्सेलेरेशन की ज़रूरत क्यों है

PixInsight में इस समय जो प्रोसेस GPU एक्सेलेरेशन का समर्थन करती हैं, वे मुख्यतः वही हैं जो न्यूरल नेटवर्क की गणना पर टिकी हैं: StarNet++, StarNet 2, StarXTerminator (SXT), NoiseXTerminator (NXT), BlurXTerminator (BXT)। इन प्रोसेस को अगर केवल CPU पर चलाया जाए, तो प्रतीक्षा का समय बहुत लंबा हो जाता है — ख़ासकर जैसे-जैसे इमेज का आकार बढ़ता है।

एक उदाहरण जो बात को सचमुच घर तक पहुँचा देता है, वह है बैच स्टार रिमूवल: नई पद्धति से धूमकेतु प्रोसेस करते समय आपको रैखिक अवस्था में, अभी तक इंटीग्रेट न हुए हर एक धूमकेतु फ़्रेम से एक-एक करके तारे हटाने पड़ते हैं। मान लीजिए 90 लाख पिक्सेल वाले दो सौ से ज़्यादा फ़्रेम हैं — RTX 3060 Laptop संस्करण से एक्सेलेरेट करने पर एक फ़्रेम में क़रीब 20 सेकंड लगते हैं; पर अगर आप सिर्फ़ CPU के भरोसे रहें, तो कुल समय देखकर आपको अपने जीवन के फ़ैसलों पर संदेह होने लगेगा।

GPU एक्सेलेरेशन एक बार इस्तेमाल कर लेने के बाद, वापस लौटना शायद ही किसी के बस की बात है।

जब मैंने पहली बार CUDA सफलतापूर्वक चालू किया

2021 के अंत में, NVIDIA CUDA, cuDNN और TensorFlow के अलग-अलग संस्करणों को कई घंटे तक परखने के बाद, आख़िरकार मैं GPU (NVIDIA RTX 3060) से स्टार रिमूवल में मदद लेने में सफल हो गया:

  • StarXTerminator को केवल लगभग 15 सेकंड लगे;
  • StarNet++ को 10 सेकंड से भी कम;

और एक फ़्रेम का स्टार रिमूवल पूरा हो गया। केवल CPU की तुलना में यह अंतर बेहद स्पष्ट था।

पहली बार RTX 3060 पर स्टार रिमूवल के लिए CUDA एक्सेलेरेशन सफलतापूर्वक चालू होने की स्क्रीन

इसे कैसे चालू करें: मैनुअल सेटअप से एक-क्लिक इंस्टॉल तक

पुराना तरीक़ा: फ़ाइलें हाथ से रखना

शुरुआती दौर में GPU एक्सेलेरेशन चालू करने के लिए आपको CUDA, cuDNN, TensorFlow आदि के मेल खाते संस्करण ख़ुद डाउनलोड करके सही जगह पर रखने पड़ते थे। इस प्रक्रिया की प्रवेश-बाधा कम नहीं थी, और यह केवल उन्हीं उपयोगकर्ताओं पर लागू होती थी जो Windows पर हों, जिनके कंप्यूटर में PixInsight इंस्टॉल हो और CUDA कोर वाला NVIDIA ग्राफ़िक्स कार्ड लगा हो। AMD ग्राफ़िक्स कार्ड (इंटीग्रेटेड ग्राफ़िक्स सहित) वाले उपयोगकर्ता इसे सीधे छोड़ दें, और Linux उपयोगकर्ताओं को समकक्ष चीज़ें ख़ुद मिलाकर देखनी पड़ेंगी। सेटअप पूरा हो जाने के बाद StarNet, StarNet++, SXT, NXT और BXT की गति बहुत बढ़ जाती थी।

झंझट यह थी कि हर बार PixInsight अपडेट करने पर अक्सर इन फ़ाइलों को दोबारा रखना पड़ता था, और यह भूल जाना बहुत आसान था।

मौजूदा तरीक़ा: PI का अंतर्निर्मित एक-क्लिक सेटअप

2024 की शुरुआत तक स्थिति बहुत सुधर गई — अब आपको बस PixInsight में एक अपडेट रिपॉज़िटरी (repository) जोड़नी है, और GPU एक्सेलेरेशन सीधे काम करने लगता है, बिना किसी अतिरिक्त इंस्टॉलेशन या सेटिंग के। यह तरीक़ा XTerminator श्रृंखला के रचयिता RC (Russell Croman) ने PixInsight फ़ोरम पर दिया है। उस समय यह सुविधा केवल Windows के लिए थी, Linux संस्करण अभी विकास में था; रही बात Mac ऑपरेटिंग सिस्टम की, तो उसे इस तरह के सेटअप की ज़रूरत मूल रूप से कभी थी ही नहीं।

कैसे पक्का करें कि GPU सचमुच गणना कर रहा है

स्टार रिमूवल या शोर घटाने के दौरान GPU अपना ज़ोर लगा रहा है या नहीं, यह जानने के लिए Windows 10/11 में: Task Manager खोलें, “GPU” पेज पर जाएँ और “CUDA” उप-पेज चुनें। अगर CUDA कोर पर उपयोग दर दिखाई दे, तो इसका मतलब GPU काम में लिया जा रहा है (जैसे SXT चलाते समय CUDA कोर 87% उपयोग दर तक चढ़ते दिखते हैं); और अगर CUDA कोर में कोई हलचल ही न हो, तो GPU का इस्तेमाल नहीं हो रहा।

Task Manager के CUDA उप-पेज में GPU उपयोग दर की पुष्टि करना GPU प्रोसेसिंग प्रवाह का आरेख CUDA की बुनियादी संरचना का आरेख

परफ़ॉर्मेंस का वास्तविक परीक्षण

हाई-एंड CPU बनाम मिड-लो-एंड GPU

बहुत लोग पूछते हैं: अगर CPU काफ़ी ताक़तवर हो, तो क्या ग्राफ़िक्स कार्ड की ज़रूरत ही नहीं रहती? मैंने एक कंज़्यूमर हाई-एंड CPU (AMD R9-7950X) को एक कंज़्यूमर मिड-लो-एंड ग्राफ़िक्स कार्ड (RTX 3060 12G) से भिड़ाकर तुलना की; सॉफ़्टवेयर था PI 1.8.9-1 और SXT 2.05 AI 11 lite:

  • पहली इमेज M1 (14.75MP): CPU से स्टार रिमूवल 1 मिनट 45 सेकंड; GPU से स्टार रिमूवल 10.2 सेकंड।
  • दूसरी इमेज Webb NGC 3372 (123MP): CPU से स्टार रिमूवल 12 मिनट 31 सेकंड; GPU से स्टार रिमूवल 1 मिनट 05 सेकंड।

इससे दो नियम साफ़ दिखते हैं: इमेज का आकार जितना बड़ा होगा, GPU एक्सेलेरेशन का असर उतना ही स्पष्ट होगा; और हाई-एंड CPU को मिड-लो-एंड GPU से भिड़ाने पर भी वही काम पूरा करने में CPU को GPU से कम से कम दस गुना ज़्यादा समय लगता है। अगर आपका CPU हाई-एंड मॉडल नहीं है, तो यह फ़ासला और भी बढ़ेगा। इसलिए, अगर आपके वर्कफ़्लो में AI प्रोसेस बार-बार इस्तेमाल करनी पड़ती हैं, तो मैं ज़ोर देकर सलाह दूँगा कि कम से कम एक मिड-लो-एंड RTX 30 सीरीज़ का ग्राफ़िक्स कार्ड ले ही लें।

हाई-एंड CPU बनाम मिड-लो-एंड GPU: स्टार रिमूवल के समय की तुलना

सिर्फ़ CUDA सॉफ़्टवेयर अपडेट करने से ही गति क़रीब दोगुनी

एक और चौंकाने वाली खोज। साल भर से कुछ ज़्यादा पहले मैंने पहली बार अपने RTX 3060 Laptop वाले लैपटॉप पर CUDA एक्सेलेरेशन चालू किया था; साल भर से कुछ ज़्यादा बाद, बिना कोई भी कंप्यूटिंग हार्डवेयर बदले (लैपटॉप में तो बदला भी नहीं जा सकता), केवल संबंधित सॉफ़्टवेयर अपडेट करके उसी इमेज पर दोबारा नापा, तो गति लगभग दोगुनी निकली।

12 करोड़ पिक्सेल वाली इमेज से तारे हटाने का उदाहरण लीजिए (PI 1.8.9-1, SXT 2.05 AI 11 lite, RTX 3060 Laptop 6GB):

  • CUDA सेटअप एक (CUDA 11.2.2, TensorFlow 2.6, cuDNN 8.2.1): लगभग ढाई मिनट।
  • CUDA सेटअप दो (CUDA 11.8, TensorFlow 2.9, cuDNN 8.7, ZLib DLL x64 1.2.3): केवल 1 मिनट 20 सेकंड।

तो जिन दोस्तों ने शुरुआती दौर में CUDA इंस्टॉल किया और उसके बाद कभी अपडेट नहीं किया, वे CUDA सॉफ़्टवेयर अपडेट करना न भूलें। ऊपर वाले “सेटअप दो” के संयोजन को देखा जा सकता है — यह मुफ़्त में आधी परफ़ॉर्मेंस उठा लेने जैसा है।

CUDA सॉफ़्टवेयर अपडेट करने से पहले और बाद में स्टार रिमूवल के समय की तुलना अलग-अलग CUDA संस्करणों में प्रोसेसिंग समय का अंतर

डेस्कटॉप बनाम लैपटॉप ग्राफ़िक्स कार्ड

मेरे पास संयोग से RTX 3060 12G और RTX 3060 Laptop 6G — दोनों कार्ड मौजूद थे। एक ही सॉफ़्टवेयर संस्करण पर स्टार रिमूवल का समय:

  • RTX 3060 12G: 1 मिनट 4 सेकंड;
  • RTX 3060 Laptop 6G: 1 मिनट 20 सेकंड।

दोनों में चिप एक ही है; फ़र्क़ सिर्फ़ मेमोरी क्षमता और डेस्कटॉप/लैपटॉप संस्करणों की बिजली-खपत डिज़ाइन का है, इसलिए स्टार रिमूवल के समय में ज़्यादा अंतर नहीं आता। पैसे-वसूल के हिसाब से देखें तो NVIDIA ग्राफ़िक्स कार्ड वाला एक गेमिंग लैपटॉप (उस समय क़ीमत क़रीब 30,000 ताइवानी डॉलर) काफ़ी फ़ायदे का सौदा है।

डेस्कटॉप और लैपटॉप RTX 3060 के स्टार रिमूवल समय की तुलना

पुराना माइनिंग कार्ड तक फ़र्क़ डाल देता है

घर पर क़रीब चार साल पहले असेंबल किया गया एक पुराना कंप्यूटर (AMD R5-3600) है, जिसका मूल ग्राफ़िक्स कार्ड (R9-270) अपनी उम्र के आख़िरी पड़ाव पर पहुँच चुका था। मैंने इंटरनेट से 3,000 ताइवानी डॉलर से भी कम में एक माइनिंग कार्ड — NVIDIA GTX 1660s — उठाया और उस पर फ़ुल-फ़्रेम इमेज (क़रीब 6 करोड़ पिक्सेल) का स्टार रिमूवल परखा:

  • केवल CPU: 5 मिनट 40 सेकंड;
  • GPU: 51 सेकंड;

यानी समय का अंतर क़रीब 6.6 गुना। 1660s में CUDA कोर की संख्या चौदह सौ से कुछ ही ज़्यादा है, फिर भी बचा हुआ समय बहुत मायने रखता है। अगर आप स्टार रिमूवल, AI शोर घटाना और AI शार्पनिंग जैसे काम बार-बार करते हैं, तो GPU एक्सेलेरेशन एक बहुत ही सार्थक निवेश है।

GTX 1660s पर GPU एक्सेलेरेशन के साथ स्टार रिमूवल के समय की तुलना

अलग-अलग प्लैटफ़ॉर्म में फ़र्क़

AI प्रोसेस GPU एक्सेलेरेशन का उपयोग कर सकती हैं या नहीं — इसका समर्थन अलग-अलग ऑपरेटिंग सिस्टम और हार्डवेयर पर एक-सा नहीं है। मैंने Windows, Mac और Linux — तीनों प्लैटफ़ॉर्म की स्थिति संकलित की है (कुछ Mac परीक्षण परिणाम एक साथी शौक़ीन ने उपलब्ध कराए):

  • Windows + NVIDIA: एक बार सेटअप हो जाने पर आप CUDA को बुलाकर SXT, BXT, NXT और StarNet — सभी को GPU से एक्सेलेरेट कर सकते हैं।
  • Apple Silicon वाले Mac (जैसे M1 / M1 Ultra): BXT और NXT बिना किसी सेटिंग के अपने आप Metal को बुलाकर GPU एक्सेलेरेशन कर लेते हैं; SXT चलते समय CPU के कुछ ही संसाधन लेता है और GPU को छूता तक नहीं; रही बात StarNet 2 की, तो GPU एक्सेलेरेशन सफलतापूर्वक इस्तेमाल करने के लिए आपको आधिकारिक वेबसाइट पर मौजूद प्रायोगिक संस्करण (केवल कमांड-लाइन CLI मोड) पर जाना पड़ेगा।
  • Intel वाले Mac: StarNet केवल CPU का उपयोग कर सकता है; SXT, BXT और NXT GPU एक्सेलेरेशन का उपयोग कर सकते हैं, और AMD का GPU हो तब भी यह उसी तरह चलता है।

Apple Silicon प्लैटफ़ॉर्म पर SXT जैसी प्रोसेस मूल रूप से ही GPU एक्सेलेरेशन का समर्थन करती हैं, इसलिए उनका प्रदर्शन “Windows + NVIDIA CUDA एक्सेलेरेशन” के लगभग बराबर ही रहता है। रही बात PC पर चलने वाले Linux सिस्टम की, तो वह भी इसी तरह GPU को बुलाकर गणना तेज़ कर सकता है।

हर प्लैटफ़ॉर्म पर AI प्रोसेस GPU एक्सेलेरेशन का उपयोग कर सकती हैं या नहीं, इसके परीक्षण परिणाम

निष्कर्ष

इन कुछ वर्षों के बदलाव पर पलटकर देखें: GPU एक्सेलेरेशन “CUDA के संस्करण मिलाने में कई घंटे खपाने” वाले हार्डकोर सेटअप से चलकर “PI में अंतर्निर्मित, एक क्लिक में हो जाने” तक पहुँच गया है; एक्सेलेरेट हो सकने वाली प्रोसेस लगातार बढ़ रही हैं, और बेहद सस्ता पुराना माइनिंग कार्ड तक कई गुना तेज़ी दे देता है। अगर आपका वर्कफ़्लो AI प्रोसेस पर बहुत ज़्यादा निर्भर है, तो एक मिड-लो-एंड NVIDIA ग्राफ़िक्स कार्ड (या एक Apple Silicon वाला Mac) क़रीब-क़रीब अनिवार्य है।