2012-01-14 14 views
7

प्रत्येक जीपीयू डिवाइस (एएमडी, एनवीडिया, या किसी अन्य) को कई कंप्यूट इकाइयों (मल्टीप्रोसेसर) में विभाजित किया गया है, जिनमें से प्रत्येक में कोर की निश्चित संख्या (VertexShaders/StreamProcessors) है। इसलिए, एक के साथ गणना करने के लिए (Compute Units) x (VertexShaders/compute unit) एक साथ प्रोसेसर हैं, लेकिन प्रति मल्टीप्रोसेसर के लिए केवल __local मेमोरी (आमतौर पर 16 केबी या 32 केबी) उपलब्ध है। इसलिए, इन मल्टीप्रोसेसरों की सटीक संख्या मायने रखती है।ओपनसीएल स्थानीय मेमोरी आकार और गणना इकाइयों की संख्या

अब मेरे सवालों का:

  • (क) मैं एक डिवाइस पर multiprocessors की संख्या पता कर सकते हैं कैसे? क्या यह CL_DEVICE_MAX_COMPUTE_UNITS जैसा ही है? क्या मैं इसे http://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units जैसे विनिर्देश पत्रों से घटा सकता हूं?
  • (बी) मुझे कैसे पता चलेगा कि __local प्रति एमपी मेमोरी खरीदने से पहले GPU पर उपलब्ध है? निस्संदेह मैं इसे चलाने वाले कंप्यूटर पर CL_DEVICE_LOCAL_MEM_SIZE का अनुरोध कर सकता हूं, लेकिन मुझे नहीं लगता कि मैं इसे http://www.amd.com/us/products/desktop/graphics/7000/7970/Pages/radeon-7970.aspx#3 जैसे किसी व्यक्तिगत विस्तृत विनिर्देश पत्र से कैसे घटा सकता हूं?
  • (सी) वर्तमान में सबसे बड़ा CL_DEVICE_LOCAL_MEM_SIZE वाला कार्ड क्या है? कीमत वास्तव में कोई फर्क नहीं पड़ता है, लेकिन 64 केबी (या बड़ा) मैं जिस एप्लिकेशन को लिख रहा हूं, उसके लिए स्पष्ट लाभ प्रदान करेगा, क्योंकि मेरा एल्गोरिदम पूरी तरह से समानांतर है, लेकिन प्रत्येक एमपी के भीतर यादृच्छिक अभिगम पैटर्न के साथ अत्यधिक मेमोरी-गहन भी है (किनारों पर पुनरावृत्ति ग्राफ के)।
+0

एसडीके में एएमडी/एनवीआईडीआईए द्वारा दिए गए नमूने में डिवाइस क्वेरी चलाने का प्रयास करें। यदि आप विशिष्ट डिवाइस के डिवाइस प्रश्नों को जानना चाहते हैं तो वहां बहुत से लोग हैं जिन्होंने इसे ऑनलाइन रखा है। – nouveau

उत्तर

7
  1. CL_DEVICE_MAX_COMPUTE_UNITS आप ComputeUnits की संख्या, उचित मैनुअल (AMD opencl programming guide और Nvidia OpenCL programming guide) से नज़र देना चाहिए अन्यथा आप कर सकते हैं
  2. एएमडी के लिए जुड़ा हुआ गाइड प्रति गणना इकाई availible स्थानीय स्मृति बारे में जानकारी शामिल (आमतौर पर 32 केबी/सीयू)। एनवीआईडीआईए के लिए एक त्वरित Google खोज ने का खुलासा किया, जो स्थानीय स्मृति आकार को जी 80 और जी 200 आधारित जीपीयू के लिए 16 केबी/सीयू के रूप में देता है। फर्मि आधारित कार्ड (जीएफ 100) के लिए 64kb ऑनचिप मेमोरी उपलब्ध है, जिसे 48 केबी स्थानीय मेमोरी और 16 केबी एल 1 कैश या 16 केबी स्थानीय मेमोरी और 48 केबी एल 1 कैश के रूप में कॉन्फ़िगर किया जा सकता है। इसके अलावा फर्मि आधारित कार्डों में 768 केबी तक का एल 2 कैश होता है (जीएफ 100 और जीएफ 110 के लिए 768 केबी, जीएफ 104 के लिए 512 केबी और जीएफ 116 और जीएफ 116 के लिए 384 केबी, विकिपीडिया के अनुसार जीएफ 108 और जीएफ 118 के लिए कोई नहीं)।
  3. उपर्युक्त सूचनाओं से ऐसा लगता है कि वर्तमान एनवीडिया कार्ड प्रति गणना इकाई की सबसे स्थानीय स्मृति है। इसके अलावा यह मेरी समझ से सामान्य एल 2 कैश के साथ एकमात्र ऐसा है।

स्थानीय स्मृति के आपके उपयोग के लिए आपको याद रखना चाहिए कि स्थानीय मेमोरी प्रति कार्यसमूह (और केवल कार्यसमूह के लिए सुलभ) आवंटित की जाती है, जबकि एक कम्प्यूट इकाई आमतौर पर एक कार्यसमूह को और अधिक बनाए रख सकती है। इसलिए यदि आपके एल्गोरिदम ने पूरी स्थानीय मेमोरी को एक वर्कग्रुप में आवंटित किया है तो आप समानांतरता की अधिकतम मात्रा प्राप्त करने में सक्षम नहीं होंगे। यह भी ध्यान रखें कि चूंकि स्थानीय मेमोरी को यादृच्छिक पहुंच के आधार पर बैंक संघर्ष और वार सीरियलाइजेशन का बहुत अधिक कारण बनता है। तो आपका एल्गोरिदम उतना अच्छा नहीं हो सकता जितना आपको लगता है कि यह होगा (या शायद यह होगा, बस संभावना का जिक्र करेगा)।

फर्मि आधारित कार्ड के साथ आपकी सर्वश्रेष्ठ शर्त स्पष्ट स्थानीय स्मृति की बजाय कैश पर भरोसा कर सकती है, यदि आपके सभी कार्यसमूह एक ही डेटा पर काम करते हैं (मुझे नहीं पता कि एल 1/स्थानीय मेमोरी कॉन्फ़िगरेशन को कैसे स्विच करें)।

+0

यह एक बहुत ही रोचक बिंदु है जहां आप वहां बढ़ते हैं, मेरा एल्गोरिदम वास्तव में प्रति गणना इकाई की सभी स्थानीय मेमोरी का उपभोग कर रहा है।एक ही गणना इकाई पर कितने कार्यसमूह चल रहे हैं ताकि इसे पूर्ण गति (निकट) पर चलाया जा सके? – user1111929

+0

इसके अलावा, कि एल 2 कैश दिलचस्प लगता है, लेकिन मुझे यह नहीं मिला। आधुनिक उपकरणों में 32 कंप्यूट इकाइयों की तरह है, और फर्मि 768 केबी एल 2 कैश देता है, यह केवल 24 केबी प्रति गणना इकाई है (64 केबी एल 1 की तुलना में)? अर्थात। एल 1 कैश से कम एल 2 है ??? या क्या मैं इस कैश के बिंदु को गलत समझ रहा हूं? – user1111929

+0

उपरोक्त मेरी पहली टिप्पणी में अनुपूरक: प्रत्येक कार्यसमूह में कुछ सौ कार्य आइटम शामिल होंगे। – user1111929

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