2012-07-13 11 views
8

किसी दिए गए कर्नेल के लिए, हमेशा एक ही आकार के work_groups क्यों हैं? मैंने कहीं पढ़ा है (जैसा भी मामला है जिसमें हम स्थानीय काम आकार निर्दिष्ट नहीं करते के लिए) है कि OpenCL 651 काम के आइटम (3 से विभाज्य), जबकि यह 653 बनाता है के साथ कर्नेल के लिए (217 प्रत्येक कार्य-मदों की) 3 काम समूह बनाता है 1 कार्य-वस्तु प्रत्येक के कार्य-समूह, 653 के रूप में एक प्रमुख संख्या है।कार्य समूह आकार

मान लीजिए हम local_work_size निर्दिष्ट (अर्थात। सं। एक काम के समूह में काम मदों की), मान लें कि, 5 करते हैं। और हमने कुल कार्य-वस्तुएं (global_work_size) 9 के रूप में दी हैं। कार्य समूह कैसे बनाए जाएंगे? यही कारण है कि global_work_size को local_work_size का एक बहु होना चाहिए? यदि डेटा को केवल 9 कार्य-वस्तुओं की आवश्यकता होती है, तो मैं इसे 10 तक बढ़ा सकता हूं (local_work_size, 5 के एकाधिक)?

परिणाम सरणी के लिए स्मृति को आबंटित क्यों की मेजबानी नहीं कर सकते हैं अगर यह पता नहीं है कि कितने कार्य समूहों गिरी निष्पादित करेंगे?

कृपया मदद करें। मैंने इसे सब कुछ पढ़ा: http://www.openclblog.com/2011/09/work-group-sizes.html

उत्तर

6

ओपनसीएल कार्य समूह के आकार हमेशा एक ही आकार की आवश्यकता नहीं है। वैश्विक कार्य समूह का आकार अक्सर समस्या के आकार से संबंधित होता है। स्थानीय कार्य समूह आकार का चयन कंप्यूट यूनिट थ्रूपुट को अधिकतम करने और स्थानीय मेमोरी को साझा करने के लिए आवश्यक धागे की संख्या के आधार पर किया जाता है।

उदाहरण के एक जोड़े पर विचार करें;

ए) वाई

बी) योग एन संख्या से एक्स एम द्वारा एन से मापें।

एक के लिए)

स्पष्ट वैश्विक कार्य समूह का आकार पहला, दूसरा, 1. क्यों है? यह 1 थ्रेड प्रति पिक्सेल देता है। स्थानीय कार्य समूह आकार को इनपुट पिक्सल की संख्या के आधार पर चुना जाना चाहिए जिसे आउटपुट पिक्सेल उत्पन्न करने के लिए संसाधित करने की आवश्यकता है।

ईजी।

A.1) द्वारा 64 GWG आकार [64,64,1] LWG आकार 256 .2) स्केल एक 600 से 800 के लिए 3.2k से 4k से छवि से 64 3.2K द्वारा 4K से एक छवि स्केल .GWG आकार [800,60,1] LWG आकार 256

बी के लिए)

स्पष्ट वैश्विक कार्य समूह का आकार N/2,1,1 है, क्यों? तो प्रत्येक थ्रेड एक साथ 2 मानों को जोड़कर शुरू होता है। स्थानीय कार्य समूह को डिवाइस अधिकतम पर सेट किया जाना चाहिए।

कुछ चेतावनियां हैं;

1) ग्लोबल वर्क ग्रुप साइज ग्लोबल मेमोरी साइज और मैक्स ग्लोबल मेमोरी आवंटन आकार से बाधित है।

2) प्रत्येक डिवाइस में अधिकतम स्थानीय कार्य समूह का आकार अक्सर 256

+0

धन्यवाद टिम !! उत्तर देने के लिए धन्यवाद। :) तो, जीडब्ल्यूजी आकार एलडब्ल्यूजी आकार का एक बहु होना नहीं है ?? – Remy

+0

हाँ को स्पष्ट करने के लिए एलडब्लूजी आकार एक मल्टीप्लिओबल या शून्य होना चाहिए। मैन पेजों से http://www.khronos.org/registry/cl/sdk/1.1/docs/man/xhtml/ –

+0

आपको बहुत बहुत धन्यवाद। :) – Remy

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