2012-09-08 21 views
5

मैं थोड़ा उलझन में हूं कि सीयूडीए कैसे काम करता है, क्या थ्रेड प्रत्येक एक ही निर्देश (सिम) निष्पादित करते हैं लेकिन अलग-अलग इंडेक्स के साथ एकल डेटा का उपयोग करते हैं? या इसे "अलग डेटा" माना जाता है (इसलिए यह भी सिम है)?सीयूडीए धागे, एसएमएक्स, एसपी और ब्लॉक, वे कैसे काम करते हैं?

क्या एसएमएक्स संपूर्ण जीपीयू चिप है? एक एसएमएक्स में एक बार में एक थ्रेड को निष्पादित करने वाले प्रत्येक एसपी में होना चाहिए, केवल एक एसपी को सौंपा धागे का एक ब्लॉक है?

मैं अभी

उत्तर

12

एक ग्रिड लांच धागा ब्लॉक 1-3 आयामी प्रक्षेपण है थोड़ा संदेह में हूँ। एक धागा ब्लॉक थ्रेड के 1-3 आयामी समूह है। सीयूडीए काम डिस्ट्रीब्यूटर एसएमएक्स इकाइयों को थ्रेड ब्लॉक वितरित करता है। एक कम अंत डिवाइस में 1 एसएमएक्स इकाई हो सकती है। एक उच्च अंत डिवाइस में> 10 एसएमएक्स इकाइयां हो सकती हैं।

एसएमएक्स इकाई वॉरप्स नामक 32 धागे के समूहों में थ्रेड ब्लॉक तोड़ती है। एसएमएक्स इकाई में समय पर आवंटित अधिकतम 64 युद्ध या 16 ब्लॉक हो सकते हैं। संसाधन सीमाओं के कारण (ब्लॉक, वार, प्रति थ्रेड रजिस्ट्रार, प्रति ब्लॉक साझा स्मृति, या बाधाएं) संख्या कम हो सकती है।

प्रत्येक एसएमएक्स इकाई में 4 वार्प शेड्यूलर होते हैं जो प्रत्येक युद्ध के उप-समूह के लिए जिम्मेदार होते हैं। प्रत्येक चक्र पर वार्प शेड्यूलर एक योग्य वार का चयन करेगा और 1 या 2 निर्देश जारी करेगा। दोहरी मुद्दे के लिए दो निर्देशों को स्वतंत्र होना चाहिए और विभिन्न निष्पादन इकाइयों का उपयोग करना होगा। उदाहरण के लिए एक निर्देश एक फ्लोटिंग पॉइंट यूनिट और लोड स्टोर इकाई में दूसरा प्रेषित किया जा सकता है।

एक दोहरी जारी करने के अलावा एक वार्प शेड्यूलर वापस एक युद्ध के लिए स्वतंत्र निर्देश वापस जारी कर सकते हैं। जब निर्भरता का पता लगाया जाता है, या अगली निर्देश की निष्पादन इकाई व्यस्त होती है, या वार्प में कोई निर्देश नहीं होता है (लाने पर प्रतीक्षा) तो यदि कोई योग्य है तो वार्प शेड्यूलर एक अलग वार चुन देगा।

प्रत्येक थ्रेड का अपना सामान्य उद्देश्य रजिस्ट्रार, हालत कोड, कोड और स्थानीय मेमोरी की भविष्यवाणी करता है। प्रत्येक थ्रेड थ्रेड ब्लॉक का सदस्य होता है। सभी थ्रेड थ्रेड ब्लॉक संसाधनों तक पहुंच सकते हैं जिनमें साझा स्मृति और बाधाएं शामिल हैं। ग्रिड लॉन्च में सभी थ्रेड ग्रिड संसाधनों तक पहुंच सकते हैं जिनमें निरंतर मेमोरी, बनावट बाइंडिंग और सतह बाइंडिंग शामिल हैं। सभी धागे वैश्विक स्मृति तक पहुंच सकते हैं।

+0

उत्कृष्ट सारांश। तो बाधाएं सीमित संसाधन हैं? ऐसा क्यों है? –

+0

पीटीएक्स बार निर्देश प्रति थ्रेड ब्लॉक (सीटीए) के 16 बाधाओं का समर्थन करता है। कुशल होने के लिए ये एक सीमित हार्डवेयर संसाधन हैं। अधिकांश गणना कार्यक्रम 1 बाधा (__syncthreads()) का उपयोग करते हैं। MAX_BLOCKS_PER_SM के लिए 16 का समर्थन करने का लाभ बहुत छोटा है और CUDA C/C++ का उपयोग करने की संभावना नहीं है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^