गैर-ग्राफिकल कार्यों जैसे जोखिम संगणना, द्रव गतिकी गणना और भूकंपीय विश्लेषण के लिए तेजी से जीपीयू का उपयोग किया जा रहा है। हमें GPU द्वारा संचालित उपकरणों को अपनाने से रोकने के लिए क्या है?
आज का प्रश्न और उत्तर सत्र सुपरयूज़र के सौजन्य से आता है - स्टैक एक्सचेंज का एक उपखंड, क्यू एंड ए वेब साइटों की एक सामुदायिक-ड्राइव ग्रुपिंग।
प्रश्न
सुपरयूज़र रीडर एल तकनीकी खबरों के साथ रहता है और उत्सुक है कि हम अधिक GPU आधारित सिस्टम का उपयोग क्यों नहीं कर रहे हैं:
यह मुझे लगता है कि इन दिनों GPU पर बहुत सारी गणनाएं की जाती हैं। स्पष्ट रूप से ग्राफिक्स वहां किए जाते हैं, लेकिन CUDA और जैसे, AI, हैशिंग एल्गोरिदम (थिंक बिटकॉइन) और अन्य का उपयोग करके GPU पर भी किया जाता है। क्यों हम सिर्फ सीपीयू से छुटकारा नहीं पा सकते हैं और अपने दम पर GPU का उपयोग कर सकते हैं? सीपीयू की तुलना में जीपीयू क्या इतना तेज करता है?
क्यों भला? सीपीयू अद्वितीय क्या है?
उत्तर
सुपरयूजर योगदानकर्ता ड्रैगनलॉर्ड जीपीयू और सीपीयू के बीच अंतर का एक अच्छी तरह से समर्थित अवलोकन प्रदान करता है:
TL; DR उत्तर: जीपीयू में सीपीयू की तुलना में अधिक प्रोसेसर कोर होते हैं, लेकिन क्योंकि प्रत्येक जीपीयू कोर सीपीयू कोर की तुलना में काफी धीमी गति से चलता है और आधुनिक ऑपरेटिंग सिस्टम के लिए आवश्यक सुविधाएँ नहीं होती हैं, वे हर रोज़ कंप्यूटिंग में अधिकांश प्रसंस्करण करने के लिए उपयुक्त नहीं हैं। वे वीडियो-प्रोसेसिंग और भौतिकी सिमुलेशन जैसे गहन-गहन संचालन के लिए अनुकूल हैं।
विस्तृत जवाब: GPGPU अभी भी एक अपेक्षाकृत नई अवधारणा है। जीपीयू का इस्तेमाल शुरू में केवल ग्राफिक्स रेंडर करने के लिए किया गया था; प्रौद्योगिकी के रूप में उन्नत, सीपीयू के सापेक्ष जीपीयू में बड़ी संख्या में जीपीयू के लिए कम्प्यूटेशनल क्षमताओं को विकसित करके शोषण किया गया था ताकि वे एक साथ डेटा के कई समानांतर धाराओं को संसाधित कर सकें, चाहे वह डेटा कुछ भी हो। जबकि GPU में सैकड़ों या हजारों स्ट्रीम प्रोसेसर हो सकते हैं, वे प्रत्येक सीपीयू कोर की तुलना में धीमी गति से चलते हैं और उनमें कम सुविधाएँ होती हैं (भले ही वे हों ट्यूरिंग पूरा और किसी भी प्रोग्राम को चलाने के लिए प्रोग्राम किया जा सकता है (सीपीयू चला सकता है)। जीपीयू से गायब होने वाली सुविधाओं में इंटरप्ट और वर्चुअल मेमोरी शामिल हैं, जो एक आधुनिक ऑपरेटिंग सिस्टम को लागू करने के लिए आवश्यक हैं।
दूसरे शब्दों में, सीपीयू और जीपीयू में अलग-अलग आर्किटेक्चर होते हैं जो उन्हें विभिन्न कार्यों के लिए बेहतर अनुकूल बनाते हैं। एक GPU कई धाराओं में बड़ी मात्रा में डेटा को संभाल सकता है, उन पर अपेक्षाकृत सरल संचालन कर सकता है, लेकिन डेटा की एक या कुछ धाराओं पर भारी या जटिल प्रसंस्करण के लिए अनुकूल नहीं है। एक सीपीयू प्रति-कोर आधार पर (प्रति सेकंड निर्देशों के संदर्भ में) बहुत तेज है और डेटा के एक या कुछ धाराओं पर जटिल ऑपरेशन कर सकता है, लेकिन कुशलतापूर्वक एक साथ कई धाराओं को संभाल नहीं सकता है।
परिणामस्वरूप, जीपीयू उन कार्यों को संभालने के लिए अनुकूल नहीं है जो शब्द प्रोसेसर जैसे कई सामान्य उपभोक्ता अनुप्रयोगों से महत्वपूर्ण रूप से लाभान्वित नहीं होते हैं या उन्हें समानांतर नहीं किया जा सकता है। इसके अलावा, GPUs एक मौलिक अलग वास्तुकला का उपयोग करते हैं; जीपीयू को काम करने के लिए विशेष रूप से एक एप्लिकेशन को प्रोग्राम करना होगा, और जीपीयू को प्रोग्राम करने के लिए काफी अलग तकनीकों की आवश्यकता होती है। इन विभिन्न तकनीकों में नई प्रोग्रामिंग भाषाएं, मौजूदा भाषाओं में संशोधन और नई प्रोग्रामिंग प्रतिमान शामिल हैं जो कई स्ट्रीम प्रोसेसर द्वारा किए जाने वाले समानांतर ऑपरेशन के रूप में एक संगणना व्यक्त करने के लिए बेहतर अनुकूल हैं। GPU को प्रोग्राम करने के लिए आवश्यक तकनीकों के बारे में अधिक जानकारी के लिए, विकिपीडिया लेखों को देखें स्ट्रीम प्रसंस्करण तथा समानांतर कंप्यूटिंग .
आधुनिक जीपीयू वेक्टर संचालन और फ्लोटिंग-पॉइंट अंकगणित करने में सक्षम हैं, जिसमें नवीनतम कार्ड डबल-सटीक फ़्लोटिंग-पॉइंट संख्याओं में हेरफेर करने में सक्षम हैं। CUDA और OpenCL जैसे फ्रेमवर्क प्रोग्रामों को GPU के लिए लिखे जाने में सक्षम बनाते हैं, और GPUs की प्रकृति उन्हें उच्च समानांतर संचालन के लिए सबसे अनुकूल बनाती है, जैसे कि वैज्ञानिक कंप्यूटिंग में, जहां विशेष GPU कम्प्यूट कार्ड की एक श्रृंखला एक छोटे के लिए एक व्यवहार्य प्रतिस्थापन हो सकती है में के रूप में गणना कंप्यूट NVIDIA Tesla पर्सनल सुपर कंप्यूटर । आधुनिक जीपीयू के साथ जिन उपभोक्ताओं को फोल्डिंग @ होम के साथ अनुभव किया जाता है, वे योगदान करने के लिए उनका उपयोग कर सकते हैं GPU ग्राहकों , जो बहुत अधिक गति से प्रोटीन फोल्डिंग सिमुलेशन प्रदर्शन कर सकते हैं और परियोजना के लिए और अधिक काम कर सकते हैं (अवश्य पढ़ें पूछे जाने वाले प्रश्न पहले, विशेष रूप से जीपीयू से संबंधित)। GPUs PhysX का उपयोग करके वीडियो गेम में बेहतर भौतिकी सिमुलेशन को सक्षम कर सकते हैं, वीडियो एन्कोडिंग और डिकोडिंग में तेजी ला सकते हैं, और अन्य कम्प्यूट-गहन कार्यों को कर सकते हैं। यह इस प्रकार के कार्य हैं जो GPU प्रदर्शन के लिए सबसे अनुकूल हैं।
AMD नामक एक प्रोसेसर डिज़ाइन का बीड़ा उठा रहा है त्वरित प्रसंस्करण इकाई (APU) जो GPU के साथ पारंपरिक x86 CPU कोर को जोड़ती है। यह CPU और GPU घटकों को एक साथ काम करने और अलग-अलग घटकों के लिए सीमित स्थान के साथ सिस्टम पर प्रदर्शन में सुधार करने की अनुमति दे सकता है। जैसे-जैसे प्रौद्योगिकी आगे बढ़ रही है, हम इन अलग-अलग भागों के अभिसरण की बढ़ती डिग्री देखेंगे। हालांकि, पीसी ऑपरेटिंग सिस्टम और एप्लिकेशन द्वारा निष्पादित कई कार्य अभी भी सीपीयू के लिए बेहतर अनुकूल हैं, और एक GPU का उपयोग करके प्रोग्राम को गति देने के लिए बहुत काम की आवश्यकता होती है। चूंकि बहुत मौजूदा सॉफ्टवेयर x86 आर्किटेक्चर का उपयोग करते हैं, और क्योंकि जीपीयू को विभिन्न प्रोग्रामिंग तकनीकों की आवश्यकता होती है और ऑपरेटिंग सिस्टम के लिए आवश्यक कई महत्वपूर्ण विशेषताओं को याद कर रहे हैं, सीपीयू से जीपीयू तक हर रोज कंप्यूटिंग के लिए एक सामान्य संक्रमण बेहद मुश्किल है।
स्पष्टीकरण में कुछ जोड़ना है? टिप्पणियों में ध्वनि बंद। अन्य टेक-सेवी स्टैक एक्सचेंज उपयोगकर्ताओं से अधिक जवाब पढ़ना चाहते हैं? पूरी चर्चा धागा यहाँ देखें .