2011-03-29 6 views
9

मैं अभी भी इन अज्ञात आकार के मैट्रिक्स पर पागल हो रहा हूं जो प्रत्येक आयाम के लिए 10-20.000 से भिन्न हो सकते हैं।CUDA - यदि मैं बहुत सारे ब्लॉक चुनता हूं तो क्या होगा?

मैं सीयूडीए एसडीके देख रहा हूं और सोच रहा हूं: क्या होगा यदि मैं कई ब्लॉक बहुत अधिक चुनूं?

एक्स और वाई आयामों में 99 99 x 99 99 ब्लॉकों की ग्रिड की तरह कुछ, अगर मेरे हार्डवेयर में एसएम हैं जो इन सभी ब्लॉक को नहीं रख सकते हैं, तो क्या कर्नेल में समस्याएं होंगी या प्रदर्शन बस पतन होगा?

मुझे नहीं पता कि ब्लॉक/धागे में आयाम कितना भिन्न हो सकता है .. मैं अपने हार्डवेयर का समर्थन करने वाले अधिकतम MAX ब्लॉक का उपयोग करने और फिर उनके अंदर धागे बनाने के बारे में सोच रहा हूं, सभी मैट्रिक्स में काम करता है क्या यह सही तरीका है?

उत्तर

13

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

आप रन समय पर ग्रिड और ब्लॉक के आयाम निर्दिष्ट कर सकते हैं।

संपादित करें: यहां दस्तावेज़ और ग्रिड के आयामों पर सीमाएं हैं।

enter image description here

2

आप एक से ज्यादा बड़े ब्लॉक आकार का चयन, तो आप कुछ चक्र बर्बाद जबकि "मृत" ब्लॉक (सेवानिवृत्त हो आम तौर पर केवल माइक्रोसेकंड की कुछ दसियों के आदेश का भी एक पर अधिकतम ग्रिड आकार के लिए "पूर्ण आकार" फर्मि या जीटी 200 कार्ड)। यह एक बड़ा जुर्माना नहीं है।

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

एक वैकल्पिक रणनीति एक निश्चित संख्या में ब्लॉक का उपयोग करना होगा (आमतौर पर केवल GPU पर प्रति एमपी 4-8 की तरह कुछ होना चाहिए) और प्रत्येक ब्लॉक/थ्रेड प्रक्रिया समानांतर कार्य की कई इकाइयां होती है, इसलिए प्रत्येक ब्लॉक बन जाता है "लगातार"। यदि प्रति थ्रेड सेटअप में बहुत से निश्चित ओवरहेड लागत हैं, तो यह प्रति थ्रेड के अधिक काम में उन निश्चित ओवरहेड्स को मिश्रित करने का एक अच्छा तरीका हो सकता है।

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