प्रत्येक जीपीयू डिवाइस (एएमडी, एनवीडिया, या किसी अन्य) को कई कंप्यूट इकाइयों (मल्टीप्रोसेसर) में विभाजित किया गया है, जिनमें से प्रत्येक में कोर की निश्चित संख्या (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 केबी (या बड़ा) मैं जिस एप्लिकेशन को लिख रहा हूं, उसके लिए स्पष्ट लाभ प्रदान करेगा, क्योंकि मेरा एल्गोरिदम पूरी तरह से समानांतर है, लेकिन प्रत्येक एमपी के भीतर यादृच्छिक अभिगम पैटर्न के साथ अत्यधिक मेमोरी-गहन भी है (किनारों पर पुनरावृत्ति ग्राफ के)।
एसडीके में एएमडी/एनवीआईडीआईए द्वारा दिए गए नमूने में डिवाइस क्वेरी चलाने का प्रयास करें। यदि आप विशिष्ट डिवाइस के डिवाइस प्रश्नों को जानना चाहते हैं तो वहां बहुत से लोग हैं जिन्होंने इसे ऑनलाइन रखा है। – nouveau