2013-08-20 10 views
5

के बिना इंटेल आईजीपी (उदाहरण के लिए आईरिस प्रो 5200) हार्डवेयर प्रोग्रामिंग i7-4770k @ 4GHz के लिए कोर के पीक जीएफएलपीएस 4GHz * 8 (AVX) * (4 एफएमए) * 4 कोर = 512 GFLOPS है। लेकिन नवीनतम इंटेल आईजीपी (आईरिस प्रो 5100/5200) की 800 GFLOPS से अधिक की चोटी है। इसलिए कुछ एल्गोरिदम आईजीपी पर भी तेजी से चलेंगे। आईजीपी के साथ कोर का मिश्रण एक साथ बेहतर होगा। इसके अतिरिक्त, आईजीपी अधिक सिलिकॉन खा रहा है। आईरिस प्रो 5100 अब सिलिकॉन का 30% से अधिक लेता है। ऐसा लगता है कि इंटेल डेस्कटॉप प्रोसेसर की दिशा किस दिशा में है।ओपनसीएल

जहां तक ​​मैंने इंटेल आईजीपी देखा है, हालांकि, ओपनसीएल/ओपनजीएल के अपवाद के साथ प्रोग्रामर द्वारा ज्यादातर अनदेखा किया जाता है। मुझे यह जानकर उत्सुकता है कि ओपनसीएल के बिना गणना (उदाहरण के लिए एसजीईएमएम) के लिए इंटेल एचडी ग्राफिक्स हार्डवेयर कैसे प्रोग्राम कर सकता है?

जोड़ा गया टिप्पणी: लिनक्स पर एचडी ग्राफिक्स और ओपनसीएल के लिए उनका कोई इंटेल समर्थन नहीं है। मुझे beignet मिला जो कम से कम आइवी ब्रिज एचडी ग्राफिक्स के लिए लिनक्स को समर्थन जोड़ने का ओपन सोर्स प्रयास है। मैंने कोशिश नहीं की है। शायद बेगनेट विकसित करने वाले लोग जानते हैं कि ओपनसीएल के बिना एचडी ग्राफिक्स हार्डवेयर को कैसे प्रोग्राम किया जाए।

+0

नोट: यह [GFLOPS] (https://en.wikipedia.org/wiki/FLOPS) है, [GFLOPs/s] (https://en.wikipedia.org/wiki/FLOPS) नहीं। आप '8 (AVX) * (4 एफएमए) 'गुणा क्यों कर रहे हैं? –

+0

मैं ग्लॉप्स में बदल गया। एफएमए एक गुणा और एक साथ जोड़ता है, जो 2 का एक कारक देता है, हैसवेल दो एफएमए निर्देशों को एक साथ कर सकता है जो दो का एक और कारक देता है। प्रत्येक एफएमए एक एवीएक्स निर्देश कर सकता है जो 8 (सिंगल फ्लोटिंग पॉइंट) का एक और कारक देता है। –

+0

जीएलएसएल प्रोग्रामिंग? DirectCompute? PTX? –

उत्तर

4

ध्यान रखें कि वीडियो कार्ड और डेटा में डेटा कॉपी करने के लिए एक प्रदर्शन हिट है, इसलिए इसे ध्यान में रखा जाना चाहिए। एएमडी एपीयू चिप्स जारी करने के करीब है जिसमें सीपीयू और जीपीयू के लिए एक ही मर पर एकीकृत स्मृति है, जो इस समस्या को कम करने की दिशा में एक लंबा रास्ता तय करेगा।

सीयूडीए और ओपनसीएल से पहले जीपीयू का उपयोग किया जाने वाला तरीका डायरेक्टएक्स या ओपनजीएल का उपयोग करने वाले बनावट के रूप में संचालित होने वाली स्मृति का प्रतिनिधित्व करना था। भगवान का शुक्र है, हमें अब और ऐसा करने की ज़रूरत नहीं है!

एएमडी वास्तव में एपीयू/ओपनसीएल मॉडल को दबा रहा है, इसलिए अधिक कार्यक्रमों को ओपनसीएल के माध्यम से जीपीयू का लाभ उठाना चाहिए - यदि प्रदर्शन व्यापार बंद है। वर्तमान में, GPU कंप्यूटिंग उच्च निष्पादन कंप्यूटिंग या संख्या crunching कि सिर्फ वेब ब्राउज़िंग और शब्द संसाधन के लिए की जरूरत नहीं है की चपेट में आ एक आला बाजार का एक सा है।

+0

युग पहले मैंने 680x0 असेंबली (सीएस से भौतिकी में स्विच करने से पहले) के साथ अमिगा हार्डवेयर, ब्लिटर और आगे प्रोग्राम किया था। सीपीयू से परे हार्डवेयर मेमोरी मैप किए गए रजिस्टरों के माध्यम से प्रोग्राम किया गया था। इंटेल आईजीपी के समान कुछ नहीं होना चाहिए? ओपनसीएल वीडियो चालक के माध्यम से चला जाता है। मुझे लगता है कि मुझे सीधे हार्डवेयर पर लिखने और बिचौलियों को छोड़ने में सक्षम होना चाहिए। –

+2

पहिया का पुनः आविष्कार क्यों किया? ओपनसीएल आपकी आवश्यकताओं को पूरा नहीं कर रहा है? यदि आप उच्च प्रदर्शन वाले एम्बेडेड समाधान की तलाश में हैं, तो शायद बोर्ड में बने राडेन जीपीयू के साथ एएमडी मोबाइल के साथ जाएं? – Austin

+0

ओपनसीएल एक विक्रेता के डिवाइस ड्राइवर पर निर्भर करता है। कल्पना करें कि क्या आपको इंटेल के लिए x86 प्रोग्राम करने के लिए एक डिवाइस ड्राइवर (प्रत्येक ओएस के लिए) डालने का इंतजार करना पड़ा था। कोई भी इसके साथ नहीं रखेगा! एचडी 4000 के लिए ओपनसीएल ड्राइवर को पिछली बार मैंने चेक किए गए लिनक्स के लिए समर्थन नहीं दिया था। शायद यह अब करता है। विक्रेता एक डिवाइस चालक को भी समर्थन देना बंद कर सकता है (एनवीडिया ने लंबे समय से अपने ओपनसीएल समर्थन में कम से कम गलती की है)। चूंकि आईजीपी डेस्कटॉप प्रोसेसर के लिए भविष्य में प्रतीत होता है, इसलिए उन्हें सी ++ में प्रोग्राम करना संभव होना चाहिए जैसे कि x86 पर सिमड करने के लिए इंट्रिनिक्स जैसे कुछ का उपयोग करना। –

4

यह विक्रेताओं के लिए किसी भी अधिक समझ आप निम्न स्तर ईसा का उपयोग कर कार्यक्रम बताने के लिए नहीं है।

  1. यह बहुत कठिन है और अधिकांश प्रोग्रामर इसका उपयोग नहीं करेंगे।
  2. यह उन्हें भविष्य के संशोधन में आईएसए समायोजित करने से रोकता है।

तो प्रोग्रामर एक भाषा का उपयोग करते हैं (जैसे ओपनसीएल में सी 99) और रनटाइम उपयोगकर्ता की मशीन पर आईएसए-विशिष्ट अनुकूलन करता है।

क्या यह सक्षम बनाता है का एक उदाहरण: एएमडी अदिश मशीनों और मौजूदा कर्नेल अभी भी दौड़ा को VLIW वेक्टर मशीन से बदल (सबसे तेजी से भाग गया)। यदि आप सीधे आईएसए लिखते हैं तो आप ऐसा नहीं कर पाएंगे।

+0

हाँ, मैंने इसके बारे में सोचा था। लेकिन यह x86 कोर के साथ मामला नहीं है। इसका मतलब है कि ज्यादातर लोग अपने सिलिकॉन (और गणना क्षमता) का एक बड़ा हिस्सा बर्बाद कर रहे हैं, खासकर यदि वे एक अलग GPU का उपयोग कर रहे हैं। लेकिन इंटेल ने डेस्कटॉप उपयोगकर्ताओं पर मजबूर किया है। मैं अधिक x86 कोर था। ओपनसीएल और इसके ड्राइवर ही एकमात्र विकल्प है। मुझे नहीं लगता कि इंटेल के ओपनसीएल एचडी ड्राइवर लिनक्स पर काम करते हैं। मैं अभी तक थके हुए नहीं हूं [http://igng] (http://cgit.freedesktop.org/beignet/) अभी तक। इसके अतिरिक्त, इंटेल का नवीनतम ओपनसीएल एसडीके केवल [विंडोज़] (http://software.intel.com/en-us/vcsource/tools/opencl-sdk) पर चलता है। –

+0

फिर से, यदि आप एक छोटे, लिनक्स आधारित समाधान की तलाश में हैं, तो मैं एक सभ्य एकीकृत जीपीयू के साथ कुछ सस्ते एएमडी हार्डवेयर की सिफारिश करता हूं। एएमडी इस बिंदु पर लिनक्स का समर्थन करने में सबसे अच्छा प्रतीत होता है। – Austin

+0

क्या आपका बयान है कि एएमडी स्केलर मशीनों पर सही है? मुझे लगता है कि आपका मतलब है कि वीएलआईडब्ल्यू से सुपरस्काकर मशीनों पर एएमडी स्विच किया गया है। –

1

OpenCL बिना आईरिस की तरह एक सह प्रोसेसर प्रोग्रामिंग बजाय स्टीयरिंग व्हील के बिना एक कार ड्राइविंग की तरह है।

ओपनसीएल को आवश्यक समांतरता का खुलासा करने के लिए डिज़ाइन किया गया है कि आईरिस को इसके सैद्धांतिक प्रदर्शन को प्राप्त करने की आवश्यकता है। आप केवल 100 धागे या प्रक्रियाओं को उत्पन्न नहीं कर सकते हैं और प्रदर्शन की उम्मीद कर सकते हैं। एक ही समय में एक ही काम करने वाले धागे के ब्लॉक होने के कारण, इसी तरह के स्मृति पते पर, इस मामले का पूरा क्रूक्स है।

हो सकता है कि आपको लगता है कि लक्ष्य को प्राप्त करने के लिए OpenCL तुलना में एक बेहतर प्रतिमान के बारे में सोच सकते हैं; लेकिन जब तक आप ऐसा नहीं करते हैं, तो मेरा सुझाव है कि आप कुछ ओपनक्ल सीखने का प्रयास करें। यदि आप अजगर में हैं; Pyopencl शुरू करने के लिए एक महान जगह है।

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