PoCL 1.6, OpenCL मानक का एक स्टैंडअलोन कार्यान्वयन

का शुभारंभ परियोजना का नया संस्करण पीओसीएल 1.6 (पोर्टेबल कंप्यूटिंग लैंग्वेज ओपनसीएल), संस्करण 1.6 के मुख्य अंशों में Clang / LLVM 11.0 का समर्थन है, साथ ही CUDA के प्रदर्शन और कार्यों को सुधारने के लिए किए गए काम, PowerPC के साथ संगतता में सुधार और OpenCL डीबगिंग के उपयोग में सुधार हुआ है।

PoCL से अपरिचित लोगों के लिए, आपको पता होना चाहिए कि यह क्या है एक पोर्टेबल ओपन सोर्स कार्यान्वयन (एमआईटी द्वारा लाइसेंस प्राप्त) OpenCL मानक का (1.2 कुछ समर्थित 2.0 सुविधाओं के साथ)। एक बहु-उपकरण खुला स्रोत OpenCL कार्यान्वयन होने के साथ-साथ (वास्तव में विषम) आसानी से पोर्टेबल है, इस परियोजना का एक प्राथमिक लक्ष्य OpenCL- अनुपालन उपकरणों की विविधता के अंतर को एक केंद्रीय रूप से ऑर्केस्ट्रेटेड प्लेटफॉर्म में एकीकृत करके बेहतर बनाना है।

इसके अतिरिक्त, प्रमुख दीर्घकालिक लक्ष्यों में से एक डिवाइस प्रकारों पर ओपनसीएल कार्यक्रमों के प्रदर्शन पोर्टेबिलिटी में सुधार करना है जो रनटाइम और संकलन तकनीकों का उपयोग करते हैं।

OpenCL कर्नेल कंपाइलर LLVM पर आधारित है और Clang का उपयोग OpenCL C. के इंटरफेस के रूप में किया जाता है। पर्याप्त प्रदर्शन और पोर्टेबिलिटी प्रदान करने के लिए, OpenCL कर्नेल कंपाइलर संयुक्त कार्यों को उत्पन्न कर सकता है जो कोड निष्पादन को बढ़ाने के लिए विभिन्न हार्डवेयर संसाधनों का उपयोग कर सकता है, जैसे VLIW,। superscalar, SIMD, SIMT, मल्टी-कोर, और मल्टी-थ्रेडेड। ICD (Installable Client Driver) ड्राइवरों के लिए समर्थन है। CPU, ASIP (TCE / TTA), HSA आर्किटेक्चर पर आधारित GPU, और NVIDIA GPU (CUDA) के माध्यम से काम प्रदान करने के लिए बैकएंड हैं।

PoCL 1.6 की मुख्य नई विशेषताएं

PoCL 1.6 के इस नए संस्करण में संकलन समय पर सक्षम डिवाइस चालकों के साथ इस कार्यान्वयन को संकलित करने की क्षमता पर प्रकाश डाला गया है, साथ ही डिवाइस की उपलब्धता को स्टार्टअप पर सत्यापित किया जाएगा (पहले, सिस्टम जिन पर PoCL बनाया गया है और उन्हें चलाने के लिए एक ही नियंत्रक समर्थन होना चाहिए था) ) का है। Linux-x86_64 और Linux-ppc64le सिस्टम के लिए CUDA समर्थन के साथ PoCL बाइनरी पैकेज वितरित करने के लिए conda पैकेज मैनेजर का उपयोग करने की क्षमता को लागू किया।

सीपीयू नियंत्रक का उपयोग करते समय ओपनसीएल कोड डिबगिंग के लिए विस्तारित संभावनाओं के साथ एलएलवीएम 11 के लिए एक और बदलाव है।

इसके अलावा, यह ध्यान दिया जाना चाहिए कि CUDA बैकएंड का प्रदर्शन अनुकूलन किया गया था, जिसने स्थानीय मेमोरी (FFT, GEMM) के उपयोग से संबंधित कार्यों को काफी सुव्यवस्थित किया।

बेंचमार्क जो SHOC बेंचमार्क का उपयोग करते हैं (जो अब लगातार परीक्षण किए जाते हैं, बताते हैं कि इन अनुकूलन में बेहतर प्रदर्शन हुआ, विशेष रूप से उपरोक्त संदर्भ के एक रन की तुलना में एफएफटी और जीईएमएम जैसे स्थानीय मेमोरी वाले बेंचमार्क के लिए। पीओसीएल अब अक्सर एनवीडिया के स्वामित्व के साथ प्रतिस्पर्धी प्रदर्शन प्राप्त करता है। OpenCL ड्राइवर)। हम शेष समस्या क्षेत्रों के मूल कारणों की पहचान करने और उन्हें समाप्त करने में योगदान का स्वागत करते हैं। हम ओपनसीएल 1.2 / 3.0 मानकों के लिए फीचर कवरेज में सुधार के लिए योगदान का भी स्वागत करते हैं।

  • कई परीक्षणों में PoCL का प्रदर्शन अब NVIDIA के मालिकाना OpenCL ड्राइवर के करीब है।
  • प्रदर्शन गिरावट की लागत पर अधिक सुरक्षित libpocl.so उत्पन्न करने के लिए संकलक विकल्पों को सक्षम करने के लिए HARDENING_ENABLE संकलन पैरामीटर जोड़ा गया।
  • PowerPC 8/9 सिस्टम के लिए समर्थित समर्थन, जिसके लिए pthread और CUDA उपकरणों का उपयोग करते समय OpenCL कार्यान्वयन स्तर x86_64 सिस्टम पर CUDA स्तर से मेल खाता है।
  • CUDA गुठली के लिए परिवर्तित ABI जो __ स्थानीय ब्लॉकों का उपयोग करता है। अपग्रेड करने के बाद, उपयोगकर्ताओं को pocl कैश साफ़ करने की आवश्यकता है।
  • SINGLE_LLVM_LIB बिल्ड विकल्प के लिए हटाए गए समर्थन को हटाने के बजाय STATIC_LLVM और llvm-config का उपयोग करें, जिससे यह परिभाषित किया जा सके कि किस लाइब्रेरी को बाइंड करना है।

अंत में, यदि आप इस नए संस्करण के बारे में अधिक जानना चाहते हैं, तो आप विवरण देख सकते हैं मूल विज्ञापन में। 

जबकि इस कार्यान्वयन के बारे में अधिक जानने के इच्छुक लोगों के लिए, वे परामर्श कर सकते हैं आधिकारिक वेबसाइट इस से, जहाँ आप प्रलेखन पा सकते हैं और फ़ाइलें डाउनलोड कर सकते हैं।

परियोजना कोड MIT लाइसेंस के तहत वितरित किया जाता है और कार्य X86_64, MIPS32, ARM v7, AMD HSA APU और VLIW आर्किटेक्चर के साथ विभिन्न विशिष्ट TTA प्रोसेसर पर समर्थित है।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।