2016-11-20 6 views
11

मैं ओपनसीएल पारिस्थितिक तंत्र को समझने की कोशिश कर रहा हूं और कैसे वल्कन खेल में आता है।ओपनसीएल, वल्कन, साइक्ल

  • मैं समझता हूँ कि OpenCL एक रूपरेखा के साथ ही GPUs cpu के लिए कोड निष्पादित करने के लिए है - का उपयोग कर कर्नेल कि SPIR को संकलित किया जा सकता है
  • Vulkan भी एक ही SPIR भाषा
  • का उपयोग कर एक गणना एपीआई के रूप में इस्तेमाल किया जा सकता
  • एसवाईसीएल एक नया विनिर्देश है जो ओपनक्ल कोड को उचित मानक अनुरूप सी ++ 14 के रूप में लिखने की अनुमति देता है। यह मेरी समझ है कि अभी तक उस विनिर्देश का कोई नि: शुल्क कार्यान्वयन नहीं है।

कि यह देखते हुए:

  • कैसे OpenCL Vulkan से संबंधित है? मैं समझता हूं कि ओपनसीएल उच्च स्तर है और उपकरणों को सार तत्व बनाता है, लेकिन यह (या कर सकता है) यह आंतरिक रूप से वल्कन का उपयोग करता है? (विक्रेता विशिष्ट ड्राइवरों पर भरोसा करने के बजाय)

  • वल्कन को गणना और ग्राफिक्स एपीआई दोनों के रूप में विज्ञापित किया गया है, हालांकि मुझे गणना भाग के लिए बहुत कम संसाधन मिलते हैं - वह क्यों है?

  • वल्कन ओपनजीएल पर एक प्रदर्शन लाभ है। वल्कन बनाम ओपनसीएल के लिए भी यही सच है? (ओपनसीएल सीयूडीए से धीमे होने के लिए दुखी है)

  • क्या एसईसीएल आंतरिक रूप से ओपनसीएल का उपयोग करता है या क्या यह वल्कन का उपयोग कर सकता है? या यह न तो उपयोग करता है और इसके बजाय निम्न स्तर पर निर्भर करता है, विक्रेता विशिष्ट एपीआई लागू किया जाना चाहिए?

+1

"ओपनसीएल सीयूडीए से धीमे होने के लिए दुखद रूप से कुख्यात है"। किसके अनुसार? –

उत्तर

6

कैसे OpenCL Vulkan से संबंधित है? मैं समझता हूं कि ओपनसीएल उच्च स्तर है और उपकरणों को सार तत्व बनाता है, लेकिन यह (या कर सकता है) यह आंतरिक रूप से वल्कन का उपयोग करता है?

वे एक-दूसरे से संबंधित नहीं हैं।

ठीक है, वे तकनीकी रूप से एक ही मध्यवर्ती शेडर भाषा का उपयोग करते हैं, लेकिन वल्कन कर्नेल निष्पादन मॉडल को रोकता है, और ओपनसीएल शेडर निष्पादन मॉडल को रोकता है। इसके कारण, आप ओपनसीएल के लिए केवल एक शेडर नहीं ले सकते हैं और इसे वल्कन में चिपका सकते हैं, या इसके विपरीत।

वल्कन को गणना और ग्राफिक्स एपीआई दोनों के रूप में विज्ञापित किया जाता है, हालांकि मुझे गणना भाग के लिए बहुत कम संसाधन मिलते हैं - वह क्यों है?

क्योंकि ख्रोनोस समूह को भ्रामक विपणन धुंध पसंद है।

वल्कन ओपनजीएल की तुलना में एक गणना API नहीं है। इसमें कंप्यूटर्स शेडर्स हो सकते हैं, लेकिन वे कार्यक्षमता में सीमित हैं। ओपनसीएल गणना ऑपरेशन में आप जो सामान कर सकते हैं वह ओपनजीएल/वल्कन सीएस के माध्यम से उपलब्ध नहीं है।

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

वल्कन ओपनजीएल पर एक प्रदर्शन लाभ है। वल्कन बनाम ओपनसीएल के लिए भी यही सच है?

एक गणना प्रणाली का प्रदर्शन मुख्य रूप से इसके कार्यान्वयन की गुणवत्ता पर आधारित है। यह ओपनसीएल नहीं है जो धीमा है; यह आपका ओपनसीएल कार्यान्वयन है जो संभवतः धीमा हो सकता है।

वल्कन सीएस इस संबंध में अलग नहीं हैं। प्रदर्शन ड्राइवरों की परिपक्वता पर आधारित होगा।

इसके अलावा, यह भी तथ्य है कि, ओपनसीएल गणना ऑपरेशन में आप बहुत सी चीजें कर सकते हैं जो वल्कन सीएस में नहीं कर सकते हैं।

क्या SYCL आंतरिक रूप से ओपनसीएल का उपयोग करता है या क्या यह वल्कन का उपयोग कर सकता है?

Khronos समूह से:

SYCL (सुनाया 'सिकल') एक रॉयल्टी-मुक्त, पार मंच अमूर्त परत अंतर्निहित अवधारणाओं, पोर्टेबिलिटी और OpenCL की दक्षता पर आधारित है, है ...

तो हाँ, यह ओपनसीएल के शीर्ष पर बनाया गया है।

+0

तो, इस समय, वल्कन कम्प्यूटेशनल कर्नेल का समर्थन नहीं करता है, इसलिए न तो ओपनक्ल या इसी तरह की उच्च स्तरीय गणना पुस्तकालय इसके शीर्ष पर बनाया जा सकता है? मैं थोड़ी हॉपिंग कर रहा था कि ओपनसीएल/साइक्ल को वल्कन के शीर्ष पर लागू किया जा सकता है (चूंकि एनवीआईडीआईए ओपनसीएल 2.x का समर्थन नहीं करता है) – cor3ntin

+1

@ cor3ntin: आप क्या उम्मीद करते हैं? एनवीआईडीआईए * प्रतिस्पर्धी * ओपनसीएल को बनाए रखता है। वे इसका समर्थन क्यों करेंगे? जब तक लोग एनवीआईडीआईए हार्डवेयर तक पहुंच प्राप्त करने के लिए सीयूडीए का उपयोग करने के इच्छुक हैं, उनके पास ओपनसीएल का समर्थन करने का कोई कारण नहीं है। –

+0

@ निकोलस बोलस - ओपनसीएल एक ही मुद्दे से पीड़ित प्रतीत होता है ओपनजीएल (विक्रेता समर्थन की अवधि में) - मुझे उम्मीद थी कि वल्कन उस पर सार्वभौमिक प्रतिक्रिया थी। इसके अलावा एसईसीएल वास्तव में बहुत अच्छा लगता है (सी ++ डेवलपर परिप्रेक्ष्य से, सी ++ भाषा में एकीकरण की अवधि में), और मुझे यह सचमुच दुखी लगता है कि इसका एकमात्र कार्यान्वयन एक गैर-मुक्त उत्पाद है - और, यह वास्तव में यथार्थवादी नहीं है spec को कार्यान्वित करें क्योंकि इसे एनवीआईडीआईए हार्डवेयर पर काम करने का कोई तरीका नहीं होगा। – cor3ntin

3

कैसे OpenCL Vulkan से संबंधित है?

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

  • ओपनसीएल: आरंभिक रिलीज 28 अगस्त, 200 9। व्यापक हार्डवेयर समर्थन। पॉइंटर्स की अनुमति है लेकिन डिवाइस में केवल इस्तेमाल किया जा सकता है। आप धागे के बीच साझा स्थानीय स्मृति का उपयोग कर सकते हैं। एक हैलो दुनिया शुरू करना बहुत आसान है। आदेशों के लिए एपीआई ओवरहेड है जब तक कि वे डिवाइस-साइड कतारबद्ध न हों। आप निहित बहु-डिवाइस सिंक्रनाइज़ेशन या स्पष्ट प्रबंधन चुन सकते हैं। बग ज्यादातर 1.2 के लिए तय किए जाते हैं लेकिन मुझे संस्करण 2.0 के बारे में पता नहीं है।

  • वल्कन: प्रारंभिक रिलीज 16 फरवरी 2016 (लेकिन 2014 से प्रगति)। संकुचित हार्डवेयर समर्थन। एसपीआईआर-वी हैंडल पॉइंटर्स कर सकते हैं? शायद नहीं? कोई स्थानीय-स्मृति विकल्प नहीं है? हैलो दुनिया शुरू करना मुश्किल है। कम एपीआई ओवरहेड। क्या आप निहित बहु-डिवाइस प्रबंधन चुन सकते हैं? दोटा -2 गेम और कुछ अन्य गेम के लिए अभी भी छोटी गाड़ी। एक ही समय में ग्राफिक्स और गणना पाइपलाइन दोनों का उपयोग करके और भी विलंबता छिप सकती है।

यदि ओपनक्ल में वल्कन था, तो यह 7-9 वर्षों के लिए जनता से छिपा हुआ है। वे इसे जोड़ सकते हैं, तो क्यों वे इसे ओपन के लिए (PhysX/CUDA द्वारा दबाव की शायद क्योंकि?) नहीं किया?

Vulkan, दोनों एक गणना और ग्राफिक्स एपीआई रूप में विज्ञापित है लेकिन मैं बहुत कम पाया गणना भाग के लिए संसाधन - वह क्यों है?

इसे ओपनक्ल की तरह अधिक समय की आवश्यकता है।

https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#fundamentals-floatingpoint

यहाँ गणना shaders द्वारा प्रबंधित कण प्रणाली का एक उदाहरण है:

आप गणना shaders यहाँ aboout जानकारी की जांच कर सकते

https://github.com/SaschaWillems/Vulkan/tree/master/computeparticles

कि नीचे

, वहाँ raytracers कर रहे हैं और छवि प्रसंस्करण उदाहरण भी।

वल्कन ओपनजीएल पर एक प्रदर्शन लाभ है। वल्कन बनाम ओपनसीएल के लिए भी यही सच है?

  • Vulkan एक और एपीआई के लिए सिंक्रनाइज़ करने की आवश्यकता नहीं है। कमांडक्यू के बीच कमांड बफर सिंक्रनाइज़ेशन के बारे में।
  • ओपनसीएल को साझा बफर (क्ल-ग्ल या डीएक्स-सीएल इंटरऑप बफर) का उपयोग करने से पहले ओपनजीएल या डायरेक्टएक्स (या वल्कन?) के साथ सिंक्रनाइज़ करने की आवश्यकता है। इसमें एक ओवरहेड है और आपको बफर स्वैपिंग और पाइपलाइनिंग का उपयोग करके इसे छिपाने की जरूरत है। यदि कोई साझा बफर मौजूद नहीं है, तो यह आधुनिक हार्डवेयर पर ओपनगल या डायरेक्टएक्स के साथ एक साथ चल सकता है।

OpenCL उदासी अपनी परिपक्व और चुनौतियों CUDA CUDA

यह था की तुलना में धीमी होने के कुख्यात है, लेकिन अब, विशेष रूप से संस्करण 2.1 का उपयोग कर FPGAs के लिए सभी गेमिंग GPUs से बहुत व्यापक हार्डवेयर समर्थन के साथ, जैसे कि भविष्य में इंटेल एक कोर i3 में एक fpga डाल सकता है और इसे (सॉफ्ट-x86 कोर आईपी) के लिए सक्षम बनाता है, कई कोर सीपीयू मॉडल एक जीपीयू प्रदर्शन और सीपीयू के बीच के अंतर को बंद करने के लिए अपने सीपीयू-फिजिक्स गेमिंग अनुभव को अपग्रेड करने या बस एक ओपनक्ल भौतिकी कार्यान्वयन इसे आकार देता है और सॉफ्ट-कोर के% 10-% 20 प्रभावी ढंग से उपयोग किए जाने वाले क्षेत्र के बजाय कम से कम% 90 मरने वाले क्षेत्र का उपयोग करता है।

उसी कीमत के साथ, एएमडी जीपीएस ओपनक्ल पर तेजी से गणना कर सकता है और उसी गणना शक्ति के साथ इंटेल इगपस कम शक्ति खींच सकता है।

इसके अलावा, मैंने एक एसजीईएमएम ओपनक्ल कर्नेल लिखा और 1.1 टीफ्लोप्स पर एचडी 7870 पर चलाया और इंटरनेट की जांच की, फिर सीयूडीएएम पर एक लोकप्रिय शीर्षक का उपयोग करके एक ही प्रदर्शन के लिए जीटीएक्स 680 पर एसजीईएमएम हेन्मार्क चिह्नित किया! (Gtx680/hd7870 का मूल्य अनुपात 2 था)।

क्या SYCL आंतरिक रूप से ओपनसीएल का उपयोग करता है या क्या यह वल्कन का उपयोग कर सकता है? या यह न तो उपयोग करता है और इसके बजाय निम्न स्तर पर निर्भर करता है, पर विक्रेता विशिष्ट एपीआई लागू किया जाना चाहिए?

यहाँ,

https://www.khronos.org/assets/uploads/developers/library/2015-iwocl/Khronos-SYCL-May15.pdf

कहते

लक्ष्य के साथ काम कर कि OpenCL की जरूरत नहीं है के लिए प्रदान करता है तरीकों (अभी तक!)

एक fallback सीपीयू कार्यान्वयन डीबग करने योग्य है !

तो यह एक शुद्ध थ्रेडेड संस्करण (जावा के अपारपी के समान) पर वापस आ सकता है। SYCL वस्तुओं से OpenCL वस्तु से SYCL वस्तुओं का निर्माण कर सकते हैं

OpenCL वस्तुओं का उपयोग कर सकते हैं

ओपन के साथ Interop SYCL में रहता है - (शायद ही संरचनाओं/प्रकार

यह OpenCL का उपयोग करता है का उपयोग करता है सीधे नहीं, लेकिन एक अपग्रेड किए गए ड्राइवर संचार के साथ?), यह ओपनक्ल के समानांतर विकसित करता है लेकिन धागे पर गिर सकता है।

छोटी से छोटी OpenCL 1.2 एम्बेडेड डिवाइस से

सबसे उन्नत OpenCL 2.2 त्वरक

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