2010-07-12 13 views
6

में वर्क-आइटम, वर्क-ग्रुप और कमांड क्यूईज संगठन और मेमोरी सीमा ठीक है, मैं ओपनसीएल में ज्यादातर एटीआई और एनवीडिया गाइड के माध्यम से पहले से ही रहा हूं, कुछ ऐसी चीजें हैं जिन्हें मैं निश्चित करना चाहता हूं, और कुछ स्पष्टीकरण की आवश्यकता है। दस्तावेज़ीकरण में कुछ भी स्पष्ट कट जवाब देता है।ओपनसीएल

अब मैं एक Radeon 4650, अब मेरे डिवाइस क्वेरी करने पर, मुझे मिल गया

CL_DEVICE_MAX_COMPUTE_UNITS: 8 
    CL_DEVICE_ADDRESS_BITS: 32 
    CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3 
    CL_DEVICE_MAX_WORK_ITEM_SIZES: 128/128/128 
    CL_DEVICE_MAX_WORK_GROUP_SIZE: 128 
    CL_DEVICE_MAX_MEM_ALLOC_SIZE: 256 MByte 
    CL_DEVICE_GLOBAL_MEM_SIZE: 256 MByte 

ठीक पहले है, मेरा कार्ड 1GB स्मृति, क्यों मैं केवल 256MB के लिए अनुमति दी हूँ गया है?

दूसरा मैं वर्क-आइटम आयाम भाग को समझ नहीं पा रहा हूं, इसका मतलब है कि मेरे पास 128 * 3 या 128^3 कार्य-वस्तुएं हो सकती हैं?

जब मैंने क्वेरी चलाने से पहले इसकी गणना की, तो मुझे 8 कोर * 16 स्ट्रीम प्रोसेसर * 4 कार्य-आइटम = 512 क्यों मिला यह गलत है?

मुझे भी मेरे पूर्ण कोर 2 जोड़ी सीपीयू के लिए एक ही 3 आयाम कार्य-वस्तु सामग्री मिली, क्या वही गणना लागू होती है?

कमांड कतारों के लिए, जब मैंने ओपनसीएल का उपयोग कर अपने कोर जोड़ी सीपीयू को डिवाइस के रूप में एक्सेस करने का प्रयास किया, तो सामान केवल एक कोर पर संसाधित हो गया, मैंने कई कतारों को करने और कई प्रविष्टियों को क्यूइंग करने की कोशिश की, लेकिन फिर भी एक कोर पर संसाधित हो गया , मैंने एक साधारण लेखन कार्यक्रम के लिए 128 * 128 * 128 * 8 का ग्लोबल_वर्क_साइज का उपयोग किया जहां प्रत्येक कार्य-वस्तु बफर में अपनी वैश्विक आईडी लिखती है और मुझे केवल शून्य मिलते हैं।

और एनवीडिया कार्ड के बारे में क्या? 32 क्यूडा कोर के साथ एक एनवीडिया 9500 जीटी पर, क्या काम-वस्तुएं समान गणना करती हैं?

बहुत बहुत धन्यवाद, मैं वास्तव में जवाब खोजने की कोशिश कर रहा हूं।

उत्तर

5

ठीक है, मेरे कार्ड में 1 जीबी मेमोरी है, क्यों क्या मुझे केवल 256 एमबी की अनुमति है?

यह एक अति ड्राइवर बग/सीमा AFAIK है। अगर मैं रिप्रो कर सकता हूं तो मैं अपने 5850 पर जांच करूंगा।

http://devforums.amd.com/devforum/messageview.cfm?catid=390&threadid=124142&messid=1069111&parentid=0&FTVAR_FORUMVIEWTMP=Branch

2 मैं कार्य आइटम आयाम हिस्सा समझ में नहीं आता, इसका मतलब यह मैं 128 * 3 या 128^3 काम आइटम तक हो सकता है?

नहीं। इसका मतलब है कि CL_DEVICE_MAX_WORK_ITEM_SIZES128/128/128 से एक मंद पर अधिकतम 128 हो सकता है। और चूंकि CL_DEVICE_MAX_WORK_GROUP_SIZE 128 है, तो आप हो सकते हैं, उदाहरण: work_group_size(128, 1, 1) या work_group_size(1, 128, 1) या work_group_size(64, 1, 2), या work_group_size(8, 4, 4) आदि, जब तक प्रत्येक मंद का उत्पाद <= 128 ठीक होगा।

मैं इस गणना की जब से पहले मैं चलाने क्वेरी, मैं 8 कोर * 16 धारा प्रोसेसर मिला * 4 काम आइटम = 512 क्यों यह गलत है?

मुझे भी मेरे पूर्ण कोर 2 जोड़ी सीपीयू के लिए एक ही 3 आयाम कार्य-वस्तु सामग्री मिली, क्या वही गणना लागू होती है?

समझें कि आप यहां गणना करने की कोशिश कर रहे हैं।

+0

पहले बहुत धन्यवाद धन्यवाद। um nvm 512 भाग, मैं कार्य-वस्तुओं के साथ प्रसंस्करण तत्वों को उलझन में डाल दिया। क्योंकि सीपीयू के लिए मैं सोच रहा था कि क्या वही गणना इसके लिए भी गिना जाएगा। यदि ऐसा है, तो मेरे सीपीयू ने 1024 कार्य समूह आकार दिखाया, इसका मतलब यह है कि यह एक साथ 1024 वर्कटाइम को संसाधित कर सकता है? – omarzouk

+0

यदि सीपीयू अधिकतम कार्य समूह आकार के लिए 1024 दिखाता है, तो एक ही नियम लागू होता है। आप उदास हो सकते हैं 128 * 8 * 1 एक work_group_size के लिए। अब अगर वर्कटाइम एक साथ प्रक्रिया कर रहे हैं, तो यह रनटाइम द्वारा सारणीबद्ध है, इसलिए आप वास्तव में नहीं जानते हैं। – Stringer

+0

आप शायद एटीआई सॉफ्टवेयर ओपनसीएल कार्यान्वयन का उपयोग कर रहे हैं (यह 1024 को अधिकतम कार्य समूह आकार के रूप में रिपोर्ट करता है)। बेशक एक सीपीयू एक समय में 1024 काम-वस्तुओं पर काम नहीं कर सकता है। जहां तक ​​मुझे पता है, एटीआई के सॉफ्टवेयर ओपनसीएल, जहां तक ​​संभव हो, अनुक्रमिक रूप से कार्य-समूह के कार्य-आइटम निष्पादित करता है। यदि आप साझा स्मृति तक पहुंचते हैं, तो कर्नेल कई हिस्सों में टूट जाता है। उत्सुकता से, 1 का एक समूह समूह आकार (जो * सीपीयू पर अच्छा * करना चाहिए) एटीआई के कार्यान्वयन और मेरे कोड के साथ बुरी तरह प्रदर्शन किया। – dietr

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