2011-06-26 14 views
6

मैंने ओपनसीएल सीखने के लिए अभी शुरू किया है। मैं अब ट्यूटोरियल कर रहा हूं लेकिन मैं वास्तव में समझ नहीं सकता कि मेजबान का कोई व्यक्ति समझा सकता है। धन्यवादओपनक्ल में एक मेजबान क्या है?

उत्तर

6

ओपनसीएल एक ऐसी प्रणाली है जो बड़े पैमाने पर समांतर प्रसंस्करण का समर्थन करने के लिए डिज़ाइन की गई है जैसे कि आधुनिक ग्राफिक्स चिप्स (जीपीयू) द्वारा किया जा सकता है। । ओपनसीएल प्रतिमान में, एक "होस्ट प्रोग्राम" बाहरी नियंत्रण तर्क है जो एक GPU- आधारित अनुप्रयोग के लिए कॉन्फ़िगरेशन करता है। यह होस्ट प्रोग्राम आम तौर पर एक सामान्य प्रयोजन सीपीयू (जैसे अधिकांश डेस्कटॉप पीसी में x86- संगत मुख्य प्रोसेसर) पर चलता है। एक ओपनसीएल कार्यक्रम में एक या अधिक "कर्नेल" फ़ंक्शन भी शामिल होते हैं जिन्हें GPU पर समानांतर निष्पादन के लिए डिज़ाइन किया गया है।

एक बार सभी बफ़र्स और कर्नेल का कॉन्फ़िगर किया गया है, मेजबान प्रोग्राम की तरह

EnqueueNDRangeKernel() 

जो कुछ GPU पर गिरी के निष्पादन शुरू हो जाएगा कॉल करेंगे।

अपने लक्षित प्लेटफ़ॉर्म के आधार पर, चीज़ें थोड़ा अलग हो सकती हैं। उदाहरण के लिए, ओपनसीएल को विशेष रूप से जीपीयू के अस्तित्व की आवश्यकता नहीं होती है। इसके बजाय कर्नेल को उसी सीपीयू पर एकाधिक थ्रेड के रूप में निष्पादित कर सकते हैं जो मेजबान प्रोग्राम चलाता है। OpenCL नामावली के

सारांश:

  • होस्ट - मुख्य गिरी निष्पादन कॉन्फ़िगर करने के लिए इस्तेमाल किया सीपीयू
  • डिवाइस - घटक है जो प्रसंस्करण इकाइयों कि कर्नेल (GPU) निष्पादित करेंगे शामिल
+1

तो, clGetPlatformIDs निष्पादित करते समय, कई प्लेटफ़ॉर्म प्राप्त करना संभव है? (ऐसा लगता है कि हम एकल होस्ट से काम कर रहे हैं) –

+1

clGetPlatformIDs के साथ आप सभी उपलब्ध प्लेटफ़ॉर्म की सूची और clGetDeviceIDs के साथ एक प्लेटफॉर्म के लिए सभी उपलब्ध डिवाइस की एक सूची प्राप्त कर सकते हैं। –

+1

यह कहा जा सकता है कि ओपनसीएल एपीआई अति-सामान्यीकृत है। मुझे नहीं पता कि clGetPlatformIDs() 1 से अधिक प्लेटफॉर्म क्यों लौटाएगा - शायद यह SO के लिए एक और अच्छा सवाल होगा। ओपनसीएल प्रोग्राम को काम करने में बहुत सारे बॉयलरप्लेट कोड शामिल हैं। ओपनसीएल के साथ शुरू करने का सबसे अच्छा तरीका शायद स्क्रैच से एक बनाने की कोशिश करने के बजाय एक कामकाजी उदाहरण ढूंढना है। – nobar

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