जीपीयू वास्तुकला
एक ग्राफिक्स प्रोसेसिंग यूनिट (GPU) एक थ्रूपुट-उन्मुख, बड़े पैमाने पर समानांतर प्रोसेसर है जो कई सरल कोर से बना होता है जो मेमोरी विलंबता (latency) को छिपाने के लिए हजारों थ्रेड्स को निष्पादित करते हैं, मूल रूप से ग्राफिक्स के लिए और अब सामान्य-उद्देश्य और मशीन-लर्निंग गणना के लिए व्यापक रूप से उपयोग किया जाता है।
Definition
एक जीपीयू वास्तुकला एक अत्यधिक समानांतर प्रोसेसर डिज़ाइन है जो कई हल्के कोर से बना होता है जिन्हें मल्टीप्रोसेसर में समूहित किया जाता है जो लॉकस्टेप समूहों में बड़ी संख्या में थ्रेड्स को निष्पादित करते हैं, जो उच्च अंकगणितीय थ्रूपुट और विलंबता छिपाने के लिए अनुकूलित होते हैं, न कि सिंगल-थ्रेड गति के लिए।
Scope
यह विषय जीपीयू हार्डवेयर संगठन को शामिल करता है: स्ट्रीमिंग मल्टीप्रोसेसर, सिंगल-इंस्ट्रक्शन मल्टीपल-थ्रेड (SIMT) निष्पादन मॉडल, वार्प और थ्रेड ब्लॉक, रजिस्टर, साझा मेमोरी और वैश्विक मेमोरी का मेमोरी पदानुक्रम, और जीपीयू बड़े पैमाने पर मल्टीथ्रेडिंग के माध्यम से विलंबता को कैसे छिपाते हैं। यह जीपीयू को समानांतर वास्तुकला के रूप में मानता है। इसमें सीपीयू SIMD एक्सटेंशन (SIMD और वेक्टर प्रोसेसर) और वास्तुशिल्प निहितार्थों से परे जीपीयू को प्रोग्राम करने के लिए सॉफ्टवेयर फ्रेमवर्क शामिल नहीं हैं।
Core questions
- जीपीयू कुछ जटिल कोर के बजाय कई सरल कोर के साथ उच्च थ्रूपुट कैसे प्राप्त करते हैं?
- सिंगल-इंस्ट्रक्शन मल्टीपल-थ्रेड निष्पादन मॉडल क्या है, और वार्प कैसे काम करते हैं?
- बड़े पैमाने पर मल्टीथ्रेडिंग मेमोरी विलंबता को कैसे छिपाती है?
- समानांतर वर्कलोड के लिए जीपीयू मेमोरी पदानुक्रम कैसे व्यवस्थित किया जाता है?
Key concepts
- स्ट्रीमिंग मल्टीप्रोसेसर
- सिंगल-इंस्ट्रक्शन मल्टीपल-थ्रेड (SIMT)
- वार्प और थ्रेड ब्लॉक
- बड़े पैमाने पर मल्टीथ्रेडिंग
- विलंबता छिपाना
- साझा, वैश्विक और रजिस्टर मेमोरी
- मेमोरी कोलेसिंग
- थ्रूपुट-उन्मुख डिज़ाइन
Key theories
- बड़े पैमाने पर मल्टीथ्रेडिंग के माध्यम से विलंबता छिपाना
- एक थ्रेड के लिए विलंबता को कम करने के बजाय, एक जीपीयू हजारों थ्रेड्स को उड़ान में रखता है और जब भी कुछ मेमोरी पर रुकते हैं तो तैयार समूहों के बीच स्विच करता है, इसलिए प्रचुर समानांतरता कई अंकगणितीय इकाइयों को व्यस्त रखती है और लंबी मेमोरी देरी को छिपाती है।
Mechanisms
एक जीपीयू में कई स्ट्रीमिंग मल्टीप्रोसेसर होते हैं, जिनमें से प्रत्येक SIMT मॉडल के तहत लॉकस्टेप में थ्रेड्स (वार्प) के समूहों को निष्पादित करता है। थ्रेड्स को ब्लॉक में व्यवस्थित किया जाता है जो तेज़ ऑन-चिप मेमोरी साझा करते हैं और स्थानीय रूप से सिंक्रनाइज़ करते हैं। हार्डवेयर कई वार्प्स को शेड्यूल करता है और लगभग शून्य ओवरहेड के साथ उनके बीच स्विच करता है, इसलिए जब एक वार्प मेमोरी पर प्रतीक्षा करता है तो दूसरा चलता है, जिससे अंकगणितीय इकाइयाँ व्यस्त रहती हैं; समेकित मेमोरी एक्सेस पैटर्न बैंडविड्थ उपयोग को अधिकतम करते हैं।
Clinical relevance
जीपीयू उच्च-प्रदर्शन और कृत्रिम-खुफिया कंप्यूटिंग के लिए केंद्रीय बन गए हैं: उनका थ्रूपुट-उन्मुख डिज़ाइन उन्हें डीप न्यूरल नेटवर्क को प्रशिक्षित करने और चलाने के साथ-साथ वैज्ञानिक सिमुलेशन और डेटा एनालिटिक्स के लिए प्रमुख मंच बनाता है। उनकी वास्तुकला डेटा-समानांतर एल्गोरिदम और समेकित मेमोरी एक्सेस को पुरस्कृत करती है, जिससे यह आकार मिलता है कि प्रदर्शन-महत्वपूर्ण सॉफ्टवेयर कैसे लिखा जाता है।
History
जीपीयू 1990 के दशक में फिक्स्ड-फंक्शन ग्राफिक्स पाइपलाइन से विकसित होकर प्रोग्रामेबल शेडर और फिर पूरी तरह से प्रोग्रामेबल मेनी-कोर प्रोसेसर बन गए। 2000 के दशक के अंत में सामान्य-उद्देश्य जीपीयू कंप्यूटिंग फ्रेमवर्क की शुरुआत ने उन्हें वैज्ञानिक और डेटा वर्कलोड के लिए खोल दिया, और उनके थ्रूपुट ने उन्हें 2010 के दशक से डीप-लर्निंग युग का इंजन बना दिया।
Debates
- जीपीयू की सामान्यता बनाम विशेष त्वरक
- जीपीयू लचीले थ्रूपुट इंजन हैं, लेकिन तेजी से विशेष त्वरक (जैसे टेंसर और मैट्रिक्स इकाइयाँ) विशिष्ट वर्कलोड के लिए उच्च दक्षता प्रदान करते हैं; डिजाइनर जीपीयू प्रोग्रामेबिलिटी और व्यापक प्रयोज्यता को समर्पित हार्डवेयर की दक्षता के मुकाबले तौलते हैं।
Key figures
- David B. Kirk
- Wen-mei Hwu
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- hennessy2019
- kirk2016
Frequently asked questions
- डीप लर्निंग के लिए जीपीयू इतने अच्छे क्यों हैं?
- न्यूरल नेटवर्क को प्रशिक्षित करना और चलाना मुख्य रूप से प्रचुर डेटा समानांतरता के साथ सघन मैट्रिक्स और टेंसर संचालन से बना होता है। एक जीपीयू के कई कोर और उच्च मेमोरी बैंडविड्थ इन ऑपरेशनों को बहुत उच्च थ्रूपुट के साथ निष्पादित करते हैं, ऐसे नियमित, समानांतर वर्कलोड पर सामान्य-उद्देश्य वाले सीपीयू से कहीं अधिक।
- जीपीयू निष्पादन में वार्प क्या है?
- एक वार्प थ्रेड्स का एक समूह (आमतौर पर 32) होता है जो SIMT मॉडल के तहत लॉकस्टेप में एक ही निर्देश को निष्पादित करते हैं। थ्रेड्स को वार्प में समूहित करने से हार्डवेयर कई डेटा तत्वों में निर्देश नियंत्रण को अमूर्त कर सकता है, हालांकि एक वार्प के भीतर भिन्न शाखाएं दक्षता को कम करती हैं।