2010-04-15 6 views
22

स्ट्रीमिंग डेटा को संसाधित करने के लिए मैं GPU का उपयोग करने के तरीकों की जांच कर रहा हूं। मेरे पास दो विकल्प थे लेकिन यह तय नहीं कर सका कि किस तरह से जाना है?ओपनसीएल या कूडा किस तरह से जाना है?

  1. उपयोग की आसानी (अच्छा एपीआई)
  2. समुदाय और प्रलेखन
  3. प्रदर्शन
  4. भविष्य

मैं सी में कोड होगा और:

मेरे criterias इस प्रकार हैं लिनक्स के तहत सी ++।

+1

यह भी देखें: http://stackoverflow.com/questions/2384930 –

उत्तर

36

OpenCL

  • अपने उत्पादन कोड से interfaced
  • अलग ग्राफिक्स हार्डवेयर के बीच पोर्टेबल
  • सीमित संचालन लेकिन preprepared शॉर्टकट

CUDA

  • अलग भाषा (CUDA सी)
  • nVidia हार्डवेयर केवल
  • कोड (एक सी की तरह भाषा में कोडिंग) की रूपरेखा और डिबगिंग उपकरणों की
  • बहुत अधिक लगभग पूरा नियंत्रण

नीचे लाइन - ओपनसीएल पोर्टेबल है, सीयूडीए केवल एनवीडिया है। हालांकि, एक स्वतंत्र भाषा होने के नाते, सीयूडीए अधिक शक्तिशाली है और इसमें वास्तव में अच्छे उपकरण हैं।

  1. उपयोग की आसानी - OpenCL बॉक्स से बाहर का उपयोग करना आसान है, लेकिन आप एक बार सेटअप CUDA कोडिंग पर्यावरण यह लगभग सी में कोडिंग
  2. समुदाय और प्रलेखन की तरह है - दोनों हो व्यापक दस्तावेज और उदाहरण, हालांकि मुझे लगता है कि सीयूडीए बेहतर है।
  3. प्रदर्शन - सीयूडीए अधिक नियंत्रण के लिए अनुमति देता है, इसलिए उच्च प्रदर्शन के लिए बेहतर ढंग से बेहतर हो सकता है।
  4. भविष्य - वास्तव में कहना मुश्किल है।
+9

असल में ओपनसीएल का उपयोग करने में एक और फायदा है, यह सीपीयू में भी कार्यों को समानांतर कर सकता है। – systemsfault

+0

@holydiver, मान्य बिंदु, लेकिन आपने GPU के बारे में पूछा :) –

+4

@holydiver, इस भावना में आप कह सकते हैं कि न तो विंडोज़ और न ही मैकोज़ एक्स का उज्ज्वल भविष्य है:> –

17

मेरे निजी अनुभवों थे:

  1. एपीआई: OpenCL थोड़ा और अधिक जटिल एपीआई है। हालांकि ज्यादातर समय आप कर्नेल कोड लिखने के साथ बिताएंगे, और यहां दोनों लगभग समान हैं।

  2. समुदाय: सीयूडीए के पास ओपनसीएल अब एक बड़ा समुदाय है, लेकिन यह शायद बाहर भी होगा।

  3. प्रलेखन: दोनों बहुत अच्छी तरह से प्रलेखित हैं।

  4. प्रदर्शन: हमने अनुभव किया है कि ओपनसीएल ड्राइवर अभी तक पूरी तरह अनुकूलित नहीं हैं।

  5. भविष्य: भविष्य ओपनसीएल के साथ है क्योंकि यह एक खुला मानक है, विक्रेता या विशिष्ट हार्डवेयर तक ही सीमित नहीं है!

यह मूल्यांकन 2010 से है, इसलिए शायद बाहर दिनांकित है।

6

ओपनसीएल सभी तरह से जब तक आपके पास CUDA का उपयोग करने का कोई विशिष्ट कारण न हो। ओपीसीएल जीपीयू पर चलने के अलावा इंटेल i7 जैसे मल्टीकोरों पर अच्छी तरह से चलता है। ओपनसीएल का उपयोग करके आप इसे दुनिया के सबसे बड़े सुपरकंप्यूटर, Blue Waters के आईबीएम पावर 7 गणना नोड्स के लिए Droid सेल फोन से हार्डवेयर की एक विस्तृत श्रृंखला पर चला सकते हैं, जो अगले वर्ष ऑनलाइन आना चाहिए।

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