#blocks & ब्लॉक आकार का चयन करने के बारे में बहुत सी चर्चा हुई है, लेकिन मुझे अभी भी कुछ याद आ रहा है। मेरी चिंताओं में से कई लोग इस सवाल का पता: How CUDA Blocks/Warps/Threads map onto CUDA Cores? (चर्चा आसान बनाने के लिए, वहाँ है पर्याप्त perThread & perBlock स्मृति मेमोरी सीमा एक मुद्दा यहां नहीं हैं।।)ब्लॉक, धागे, warpSize
kernelA<<<nBlocks, nThreads>>>(varA,constB, nThreadsTotal);
1) एस एम संभव के रूप में व्यस्त रखने के लिए, मुझे warpSize
के एकाधिक में सेट करना चाहिए। सच?
2) एक एसएम केवल एक समय में एक कर्नेल निष्पादित कर सकता है। एसएम के सभी HWcores केवल कर्नेल ए निष्पादित कर रहे हैं। (कुछ HWcores कर्नेलए नहीं चल रहे हैं, जबकि अन्य कर्नेलबी चलाते हैं।) तो अगर मेरे पास केवल एक धागा चलाने के लिए है, तो मैं अन्य HWcores को "बर्बाद कर रहा हूं"। सच?
3) यदि वार्प-शेड्यूलर warpSize
(32 धागे) की इकाइयों में काम करता है, और प्रत्येक एसएम में 32 एचडब्ल्यूकोर्स होते हैं, तो एसएम का पूर्ण उपयोग किया जाएगा। क्या होता है जब एसएम के पास 48 एचडब्ल्यूओआरओआर होते हैं? जब शेड्यूलर 32 के हिस्सों में काम जारी कर रहा है तो मैं सभी 48 कोर का पूर्ण उपयोग कैसे कर सकता हूं? (यदि पिछला अनुच्छेद सत्य है, तो क्या बेहतर होगा यदि शेड्यूलर HWcore आकार की इकाइयों में काम जारी करता है?)
4) ऐसा लगता है कि एक समय में वार्प-शेड्यूलर कतार 2 कार्य करता है। इसलिए जब वर्तमान में निष्पादित कर्नेल स्टाल या ब्लॉक करता है, तो दूसरा कर्नेल बदल जाता है। (यह स्पष्ट नहीं है, लेकिन मुझे लगता है कि यहां कतार 2 कर्नेल से अधिक गहरी है।) क्या यह सही है?
5) यदि मेरे एचडब्ल्यू की 512 धागे-प्रति-ब्लॉक (एनटीएचड्समैक्स) की ऊपरी सीमा है, तो इसका मतलब यह नहीं है कि 512 धागे वाले कर्नेल एक ब्लॉक पर सबसे तेज़ी से चलेंगे। (दोबारा, कोई मुद्दा याद नहीं है।) एक अच्छा मौका है यदि मैं 512-थ्रेड कर्नेल को कई ब्लॉक में फैलाता हूं, तो केवल एक ही नहीं। ब्लॉक एक या कई एसएम पर निष्पादित किया जाता है। सच?
5 ए) मैं छोटे से बेहतर सोच रहा हूं, लेकिन क्या इससे कोई फर्क पड़ता है कि मैं nBlocks
कितना छोटा करता हूं? सवाल यह है कि, nBlocks
का मान कैसे चुनें, यह सभ्य है? (जरूरी नहीं कि इष्टतम।) nBlocks
चुनने के लिए कोई गणितीय दृष्टिकोण है, या यह केवल परीक्षण-एन-गलती है।
इस जीपीयू में 1 9 2 क्यूडाकोर हैं। 48 हार्डवेयर कोर (एचडब्ल्यूकोर्स) के साथ यह 4 एसएम होगा। 4 * 48 = 1 9 2 – Doug