आधुनिक जीपीयू में कई समानांतर छायांकन इकाइयां हैं। मैं यह जानना चाहता हूं कि उस परिदृश्य में बनावट कैश का प्रबंधन कैसे किया जाता है।
आधुनिक जीपीयू में कई समानांतर छायांकन इकाइयां हैं। मैं यह जानना चाहता हूं कि उस परिदृश्य में बनावट कैश का प्रबंधन कैसे किया जाता है।
जवाबों:
शीर्ष स्तर पर, एक GPU को कई प्रकार के shader cores में विभाजित किया जाता है। नोटबुक या टैबलेट में एक छोटा जीपीयू केवल कुछ कोर हो सकता है जबकि एक उच्च अंत डेस्कटॉप जीपीयू दर्जनों हो सकता है।
शैडर कोर के अलावा बनावट इकाइयां भी हैं। उन्हें GPU के आधार पर एक बनावट इकाई प्रति shader core, या दो या तीन shader कोर के बीच साझा की गई एक बनावट इकाई के साथ समूहीकृत किया जा सकता है।
पूरी चिप एक ही L2 कैश साझा करती है, लेकिन विभिन्न इकाइयों में व्यक्तिगत L1 कैश होगा। बनावट इकाइयों में बनावट कैश है, और shader इकाइयों में निर्देश और स्थिरांक / वर्दी के लिए कैश हैं, और शायद बफर डेटा के लिए एक अलग कैश है जो इस बात पर निर्भर करता है कि बफर लोड बनावट लोड से अलग पथ है या नहीं (GPU आर्किटेक्चर द्वारा भिन्न होता है)।
बनावट इकाइयाँ स्वतंत्र रूप से और अतुल्यकालिक रूप से shader cores से संचालित होती हैं। जब एक शेडर पढ़ी गई बनावट करता है, तो यह उन दोनों के बीच एक छोटी बस में बनावट इकाई को एक अनुरोध भेजता है; यदि संभव हो तो shader निष्पादित करना जारी रख सकता है, या यह निलंबित हो सकता है और अन्य shader थ्रेड को चलाने की अनुमति दे सकता है, जबकि यह बनावट के समाप्त होने का इंतजार करता है।
बनावट इकाई अनुरोधों का एक समूह बनाती है और उन पर संबोधन गणित का प्रदर्शन करती है - एमआइपी स्तर और अनिसोट्रॉपी का चयन करते हुए, यूवी को टेक्सल निर्देशांक में परिवर्तित करना, क्लैम्प / रैप मोड आदि को लागू करना, एक बार यह पता चल जाता है कि इसे किन टेक्सल्स की जरूरत है, यह उन्हें पढ़ता है। कैश पदानुक्रम, उसी तरह कि मेमोरी एक सीपीयू पर काम करती है (पहले L1 में देखें, अगर वहाँ नहीं है तो L2, फिर DRAM)। यदि कई लंबित बनावट अनुरोध सभी समान या पास के टेक्सल्स चाहते हैं (जैसा कि वे अक्सर करते हैं), तो आपको यहां बहुत अधिक दक्षता मिलती है, क्योंकि आप केवल कुछ मेमोरी लेनदेन के साथ कई लंबित अनुरोधों को पूरा कर सकते हैं। इन सभी ऑपरेशनों को पाइपलाइन किया जाता है, इसलिए जब बनावट इकाई एक बैच पर मेमोरी की प्रतीक्षा कर रही है, तो यह दूसरे बैच के अनुरोधों के लिए संबोधित गणित कर सकता है, और इसी तरह।
एक बार डेटा वापस आने के बाद, बनावट इकाई संपीड़ित प्रारूपों को डिकोड करेगी, आवश्यक रूप से रूपांतरण और फ़िल्टरिंग करेगी, फिर परिणाम को वापस shader कोर पर लौटाएगी।