GPU में अभी भी क्यों rasterizers हैं?


14

प्रगति के बावजूद आधुनिक जीपीयू में अभी भी रैस्टरएजर तय हैं। उच्च अनुकूलन योग्य, प्रोग्राम करने योग्य शेड्स के साथ लेकिन फिर भी पूरी तरह से प्रोग्राम करने योग्य नहीं है।

ऐसा क्यों है?

जीपीयू केवल सार्वभौमिक कंप्यूटिंग इकाइयों के साथ बड़े पैमाने पर समानांतर डिवाइस क्यों नहीं हो सकता है, जहां रैस्टराइज़र उपयोगकर्ता द्वारा प्रदान की गई डिवाइस के लिए सिर्फ एक सॉफ्टवेयर है?

क्या फिक्स्ड फंक्शन हार्डवेयर इतना फायदेमंद प्रदर्शन-वार है कि इस तरह का दृष्टिकोण अक्षम्य है?


1
"एक ग्राफिक्स प्रोसेसिंग यूनिट यूनिवर्सल प्रोसेसिंग यूनिट में क्यों नहीं है", क्या आप सवाल करते हैं?
एंड्रियास

1
@ और नहीं, मेरा सवाल यह है कि यह पोस्ट में कहा गया है। रैस्टराइज़र अभी भी एक हार्डवेयर हिस्सा क्यों हैं, जब उन्हें सॉफ्टवेयर में किया जा सकता है (वास्तव में वे पहले से ही ओपनसीएल के साथ किया जा सकता है, या शेड्स की गणना कर सकते हैं)। सवाल यह है कि यह आम नहीं है ... शायद यह केवल प्रदर्शन है, मुझे नहीं पता, इसलिए मैं पूछ रहा हूं ...
14

आप पुनरावर्तन को दरकिनार कर सकते हैं और आधुनिक GPU पर कम्प्यूट यूनिटों के साथ अपने स्वयं के रैस्टराइज़र को लागू कर सकते हैं और मैं वास्तव में विशिष्ट उद्देश्यों के लिए ऐसा करने वाले लोगों को जानता हूं।
जारकोल

Rasterizers वेक्टर पोल को पिक्सल्स के एक झुंड में परिवर्तित करते हैं जिन्हें हम प्रकाश में ला सकते हैं। जब हमारे पास पिक्सेल नहीं होते हैं, या वेक्टर ज्यामिति का उपयोग करना बंद कर देते हैं, तो हमें अब rasterizers की आवश्यकता नहीं होगी। कोई फर्क नहीं पड़ता कि आपकी शेष पाइपलाइन कैसी दिखती है, दिन के अंत में (या फ्रेम), आपको पिक्सल की आवश्यकता होती है। रैस्टराइज़र हमें केवल यह बताता है कि हम किसी दिए गए त्रिकोण के बारे में किस पिक्सेल के बारे में चिंतित हैं। यह सब प्रोग्राम करने योग्य है - यदि आप रैस्टराइज़र से अलग आउटपुट चाहते हैं, तो इसके अलग-अलग त्रिकोण भेजें। या बस सब कुछ एक गणना छाया में एक प्रस्तुत करना बनावट को आकर्षित करने और स्क्रीन के लिए एक दृश्य-संरेखित क्वाड के साथ इसे ब्लिट करें।
डीवेट

जवाबों:


15

संक्षेप में, प्रदर्शन कारण हैं कि वे प्रोग्राम करने योग्य क्यों नहीं हैं।

इतिहास और बाजार

अतीत में, फूला हुआ एफपीयू डिजाइनों से बचने के लिए शीर्ष और टुकड़ा प्रोसेसर के लिए अलग-अलग कोर हुआ करते थे। कुछ गणितीय ऑपरेशन थे जो आप केवल उदाहरण के लिए टुकड़ा shader कोड में कर सकते हैं (क्योंकि वे केवल खंड shaders के लिए प्रासंगिक थे)। यह उन अनुप्रयोगों के लिए गंभीर हार्डवेयर बाधाओं का उत्पादन करेगा जो प्रत्येक प्रकार के कोर की क्षमता को अधिकतम नहीं करते हैं।

जैसे-जैसे प्रोग्राम योग्य शेड अधिक लोकप्रिय होते गए, सार्वभौमिक इकाइयों को पेश किया गया। स्केलिंग की मदद के लिए हार्डवेयर में ग्राफिक्स पाइपलाइन के अधिक से अधिक चरणों को लागू किया गया था। इस समय के दौरान, GPGPU भी अधिक लोकप्रिय हो गया, इसलिए विक्रेताओं को इस कार्यक्षमता में से कुछ को शामिल करना पड़ा। हालांकि यह नोट करना महत्वपूर्ण है कि GPUs से आय का अधिकांश हिस्सा अभी भी वीडियो गेम था, इसलिए यह प्रदर्शन में हस्तक्षेप नहीं कर सकता था।

आखिरकार एक बड़े खिलाड़ी, इंटेल ने अपने लार्बी आर्किटेक्चर के साथ प्रोग्राम करने योग्य रैस्टर में निवेश करने का फैसला किया । यह परियोजना जमीनी स्तर की थी, लेकिन प्रदर्शन स्पष्ट रूप से वांछित से कम था । इसे बंद कर दिया गया था, और इसके कुछ हिस्सों को एक्सोन फी प्रोसेसर के लिए उतारा गया था। हालांकि यह ध्यान देने योग्य है कि अन्य विक्रेताओं ने इसे लागू नहीं किया है।

सॉफ्टवेयर Rasterizers पर प्रयास

सॉफ्टवेयर के माध्यम से रेखांकन पर कुछ प्रयास हुए हैं, लेकिन वे सभी प्रदर्शन के साथ समस्याएँ हैं।

इस पत्र में 2011 में एनवीडिया द्वारा एक उल्लेखनीय प्रयास किया गया था । यह तब जारी किया गया था जब लारबी को समाप्त कर दिया गया था, इसलिए यह बहुत संभव है कि यह उस पर प्रतिक्रिया थी। इसके बावजूद, इसमें कुछ प्रदर्शन आंकड़े हैं, और उनमें से अधिकांश हार्डवेयर रैस्टरएज़र की तुलना में कई बार धीमी गति से प्रदर्शन करते हैं।

सॉफ्टवेयर रेखांकन के साथ तकनीकी मुद्दे

कई मुद्दे हैं जो एनवीडिया पेपर में सामना किए गए थे। हालांकि सॉफ्टवेयर rasterizers के साथ सबसे महत्वपूर्ण मुद्दों में से कुछ हैं:

प्रमुख मुद्दों

  • प्रक्षेप: हार्डवेयर कार्यान्वयन विशेष हार्डवेयर में प्रक्षेप समीकरण उत्पन्न करता है। यह सॉफ्टवेयर रेंडरर के लिए धीमा है क्योंकि यह टुकड़ा shader में किया जाना था।

  • एंटी-अलियासिंग: एंटी-अलियासिंग (विशेषकर मेमोरी के साथ) के साथ प्रदर्शन के मुद्दे भी थे। उप-पिक्सेल नमूनों से संबंधित जानकारी को ऑन-चिप मेमोरी में संग्रहीत किया जाना चाहिए, जो इसे धारण करने के लिए पर्याप्त नहीं है। जूलियन गुर्टॉल्ट ने बताया कि बनावट कैश / कैश सॉफ्टवेयर के साथ धीमी हो सकती है। MSAA निश्चित रूप से यहाँ समस्या है क्योंकि यह कैश (गैर-बनावट कैश) को ओवरफ्लो करता है और चिप से मेमोरी में चला जाता है। Rasterizers उस मेमोरी में संग्रहीत डेटा को संपीड़ित करता है, जो यहां प्रदर्शन के साथ भी मदद करता है।

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

सारांश

TL; DR: बहुत सारी अक्षमताएं हैं जो सॉफ्टवेयर रेंडरिंग को अतीत नहीं कर सकती हैं, और ये चीजें जोड़ देती हैं। कई बड़ी सीमाएं भी हैं, खासकर जब आप वीआरएएम बैंडविड्थ, सिंक्रनाइज़ेशन समस्याओं और अतिरिक्त संगणनाओं से निपट रहे हैं।


मुझे नहीं लगता कि आपको उप-नमूने के नमूनों को संग्रहीत करने की आवश्यकता है यदि बॉक्स फ़िल्टरिंग पर्याप्त है तो आप केवल औसत रनिंग कर सकते हैं।
पूजा

2
मुझे संदेह है कि बनावट के नमूने और कैश संभवतः ऐसे क्षेत्र भी हैं जहां हार्डवेयर कार्यान्वयन सॉफ्टवेयर प्रदर्शन के साथ प्रदर्शन को प्राप्त करने की अनुमति देता है अन्यथा असंभव।
जूलियन गुर्टाल्ट

3
@ स्थान एक अन्य वस्तु का उल्लेख करने की शक्ति है। समर्पित हार्डवेयर आम तौर पर बिजली बजट के एक अंश के साथ एक ही काम करेगा और, पहले से ही बिजली थ्रॉटलिंग के साथ, विशेष रूप से मोबाइल उपकरणों पर, पूरी तरह से प्रोग्राम करने योग्य होने से यह बहुत खराब हो जाएगा।
साइमन एफ

@JulienGuertault फेयर पॉइंट, लेकिन मुझे लगता है कि यह ज्यादातर MSAA पर लागू होता है। परीक्षण के परिणाम से प्रतीत होता है कि यह एक बहुत बड़ा मुद्दा नहीं है जब सब कुछ ऑन-चिप मेमोरी पर फिट बैठता है (हालांकि यह कुछ प्रदर्शन प्रभाव की परवाह किए बिना हो सकता है)।
इक्के

@SimonF मुझे लगता है कि यह भी एक महान बिंदु है। मैंने इसे उत्तर में शामिल किया।
इक्के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.