2013-06-07 11 views
6

मैं एनवीडिया जीपीयू, एसएमपी की संख्या और अधिकतम थ्रेड गिनती में कोर की संख्या के बीच संबंधों से उलझन में हूं। मेरे लैपटॉप के GT650m के लिए डिवाइस गुण 384 कोर, 2 एसएमपी दिखाते हैं, प्रति एसएमपी 1024 धागे के साथ।सीयूडीए कोर बनाम थ्रेड गिनती

ये संख्याएं एक-दूसरे और वार आकार से कैसे संबंधित हैं? मुझे लगता है (शायद ग़लत ढंग से) कि प्रति एसएमपी में 1 9 2 कोर हैं, लेकिन यह 1024 का कारक नहीं है। यदि प्रत्येक कोर 32 धागे का एक झुकाव चलाता है, तो मुझे 32 * 1 9 2 धागे प्रति एसएमपी, या 2^5 * (2^7 + 2^6), या 4096 + 2048 = 6142.

मुझे क्या याद आ रही है?

उत्तर

9

मुझे लगता है कि आपको Cuda में शेड्यूलिंग कर्नेल में गहराई से देखना चाहिए। ब्लॉक और ब्लॉक

प्रत्येक ब्लॉक एक एस.एम. निर्धारित की है और वहाँ है प्रति धागे तो warps में कटा हुआ:

दो महत्वपूर्ण आकार के होते हैं। इसलिए ब्लॉक में एक साझा स्मृति है जो ब्लॉक के अंदर केवल पहुंच योग्य है, क्योंकि यह एसएम मेमोरी पर स्थित है। ब्लॉक प्रति एसएम डिवाइस की सीमा और अधिभोग गणना पर निर्भर करता है। सीसी 1.0-2.एक्स के लिए प्रति एसएम अधिकतम ब्लॉक 8 और सीसी 3.x के लिए 16 है।

प्रत्येक ब्लॉक में प्रति ब्लॉक की एक निश्चित संख्या है। धागे को को युद्ध में विभाजित किया गया है और युद्धों को केवल मनपसंद क्रम में चलाया जा सकता है जो केवल warp- शेड्यूलर एसएम द्वारा निर्धारित किया जाता है।

अब आपके कार्ड में 2 एसएम पर 384 कोर की कुल संख्या 1 9 2 कोर है। सीयूडीए कोर गिनती एकल परिशुद्धता फ्लोटिंग पॉइंट या पूर्णांक थ्रेड निर्देशों की कुल संख्या का प्रतिनिधित्व करती है जिसे प्रति चक्र निष्पादित किया जा सकता है। किसी भी गणना में CUDA कोर पर विचार न करें।

अधिकतम संख्या धागे प्रति गणना क्षमता बदलती है। CC2.0-3.x पर्याप्त रजिस्ट्रार और वार स्लॉट दिए गए प्रति ब्लॉक अधिकतम 1024 धागे का समर्थन करता है। युद्धों को स्थगित रूप से वार शेड्यूलर को सौंपा गया है। सीएम 1.x के लिए सीसी 1.x, 2 और सीसी 3.x के लिए 4 एस के लिए प्रति एसएमपी शेड्यूलर की संख्या 1 है।

यदि आपका आवेदन समवर्ती कर्नेल निष्पादित नहीं करता है तो प्रत्येक एसएम का उपयोग करने के लिए ग्रिडडिम में> एसएम ब्लॉक की संख्या होनी चाहिए।

GTX650m के लिए पूरी तरह से अपनी गणना शक्ति का उपयोग करने के लिए आपके पास कम से कम दो ब्लॉक होना चाहिए (अन्यथा एक ब्लॉक के साथ आप केवल एक एसएम का उपयोग कर सकते हैं)। दूसरी तरफ यदि आप 10240 धागे शेड्यूल करना चाहते हैं तो आप आसानी से 1024 थ्रेड के 10 ब्लॉक को शेड्यूल कर सकते हैं।

+0

धन्यवाद। वार्प शेड्यूलिंग वह था जो मुझे याद नहीं थी, मुझे लगता है। –

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