एसवाईसीएल: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Higher-level programming standard for heterogeneous computing}} {{Distinguish|Cilk}} {{third-party|date=January 2019}} {{Infobox software | name = SYCL | l...")
 
m (6 revisions imported from alpha:एसवाईसीएल)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{short description|Higher-level programming standard for heterogeneous computing}}
{{short description|Higher-level programming standard for heterogeneous computing}}'''एसवाईसीएल''' विभिन्न हार्डवेयर एक्सेलेरेटर पर प्रोग्रामिंग प्रोडक्टिविटी में सुधार करने के लिए हायर लेवल प्रोग्रामिंग मॉडल है। यह प्योर [[C++17|सी++17]] पर आधारित सिंगल-सोर्स एम्बेडेड डोमेन-स्पेसिफिक लैंग्वेज ([[eDSL]]) है। यह [[क्रोनोस समूह|क्रोनोस ग्रुप]] द्वारा विकसित स्टैण्डर्ड है, जिसकी घोषणा मार्च 2014 में की गई थी।
{{Distinguish|Cilk}}
{{third-party|date=January 2019}}
{{Infobox software
| name = SYCL
| logo = [[Image:SYCL logo.svg|SYCL logo|220px]]
| author = [[Khronos Group]]
| developer = [[Khronos Group]]
| released = {{Start date and age|2014|03}}
| latest release version = 2020 revision 8 (1.2.1)
| latest release date = {{Start date and age|2023|10|19|df=yes}}<ref name=releases>{{cite web|url=https://registry.khronos.org/SYCL/}}</ref>
| operating_system = [[Cross-platform]]
| platform = Cross-platform
| genre = [[High-level programming language]]
| website = {{URL|https://www.khronos.org/sycl/}} {{URL|https://sycl.tech}}
}}
 
SYCL विभिन्न हार्डवेयर त्वरण पर प्रोग्रामिंग उत्पादकता में सुधार करने के लिए एक उच्च स्तरीय प्रोग्रामिंग मॉडल है। यह शुद्ध [[C++17]] पर आधारित एकल-स्रोत एम्बेडेड डोमेन-विशिष्ट भाषा ([[eDSL]]) है। यह [[क्रोनोस समूह]] द्वारा विकसित एक मानक है, जिसकी घोषणा मार्च 2014 में की गई थी।


==नाम की उत्पत्ति==
==नाम की उत्पत्ति==
SYCL (उच्चारण 'सिकल') मूल रूप से सिस्टम-वाइड कंप्यूट लैंग्वेज के लिए है,<ref>{{cite web |last1=Keryell |first1=Ronan |title=SYCL: A Single-Source C++ Standard for Heterogeneous Computing |url=https://www.khronos.org/assets/uploads/developers/presentations/SC19-H2RC-keynote-SYCL_Nov19.pdf |website=Khronos.org |date=17 November 2019| access-date=26 September 2023}}</ref> लेकिन 2020 से SYCL डेवलपर्स ने कहा है कि SYCL एक नाम है और उन्होंने स्पष्ट कर दिया है कि यह अब एक संक्षिप्त नाम नहीं है और इसमें [[OpenCL]] का कोई संदर्भ नहीं है।<ref>{{cite web |last1=Keryell |first1=Ronan |title=SYCL का मतलब|url=https://github.com/KhronosGroup/SYCL-Docs/issues/112 |website=GitHub |access-date=5 February 2021}}</ref>
एसवाईसीएल (प्रोनोअनसेड 'सिकल') मूल रूप से सिस्टम-वाइड कंप्यूट लैंग्वेज के लिए है,<ref>{{cite web |last1=Keryell |first1=Ronan |title=SYCL: A Single-Source C++ Standard for Heterogeneous Computing |url=https://www.khronos.org/assets/uploads/developers/presentations/SC19-H2RC-keynote-SYCL_Nov19.pdf |website=Khronos.org |date=17 November 2019| access-date=26 September 2023}}</ref> किंतु 2020 से एसवाईसीएल डेवलपर्स ने कहा है कि एसवाईसीएल नाम है और उन्होंने स्पष्ट कर दिया है कि यह अब संक्षिप्त नाम नहीं है और इसमें [[OpenCL|ओपनसीएल]] का कोई रिफरेन्स नहीं है।<ref>{{cite web |last1=Keryell |first1=Ronan |title=SYCL का मतलब|url=https://github.com/KhronosGroup/SYCL-Docs/issues/112 |website=GitHub |access-date=5 February 2021}}</ref>
 
 
==उद्देश्य==
एसवाईसीएल एक रॉयल्टी-मुक्त, क्रॉस-प्लेटफ़ॉर्म एब्स्ट्रैक्शन परत है जो ओपनसीएल से प्रेरित अंतर्निहित अवधारणाओं, पोर्टेबिलिटी और दक्षता पर आधारित है जो पूरी तरह से मानक सी ++ का उपयोग करके विषम प्रोसेसर के लिए कोड को "एकल-स्रोत" शैली में लिखने में सक्षम बनाता है। एसवाईसीएल एकल-स्रोत विकास को सक्षम बनाता है जहां [[टेम्पलेट ([[सी++]])]]|सी++ टेम्पलेट फ़ंक्शंस में जटिल एल्गोरिदम बनाने के लिए होस्ट और डिवाइस कोड दोनों शामिल हो सकते हैं जो हार्डवेयर त्वरण का उपयोग करते हैं, और फिर विभिन्न प्रकार के डेटा पर अपने स्रोत कोड में उनका पुन: उपयोग करते हैं।


जबकि SYCL मानक OpenCL कार्य समूह के उच्च-स्तरीय प्रोग्रामिंग मॉडल उप-समूह के रूप में शुरू हुआ था और मूल रूप से OpenCL और [[मानक पोर्टेबल इंटरमीडिएट प्रतिनिधित्व]] के साथ उपयोग के लिए विकसित किया गया था, SYCL 20 सितंबर से OpenCL कार्य समूह से स्वतंत्र एक ख्रोनोस समूह कार्य समूह है। 2019 और SYCL 2020 से शुरू होकर, SYCL को अन्य प्रणालियों को लक्षित करने में सक्षम एक अधिक सामान्य विषम ढांचे के रूप में सामान्यीकृत किया गया है। किसी भी त्वरण [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] को लक्षित करने के लिए जेनेरिक [[बैकएंड (कंप्यूटिंग)]] की अवधारणा के साथ यह अब संभव है, जबकि लक्ष्य एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस के साथ पूर्ण इंटरऑपरेबिलिटी को सक्षम करना, जैसे प्रोग्रामिंग प्रयास को सरल बनाने के साथ-साथ अधिकतम प्रदर्शन तक पहुंचने के लिए मौजूदा देशी पुस्तकालयों का उपयोग करना। उदाहरण के लिए, ओपन एसवाईसीएल कार्यान्वयन पोर्टेबिलिटी के लिए [[ उन्नत लघु उपकरण ]]ेज के क्रॉस-वेंडर हेटेरोजेनियस-कंप्यूट इंटरफेस के माध्यम से आरओसीएम और सीयूडीए को लक्षित करता है।
== उद्देश्य ==
एसवाईसीएल रॉयल्टी-फ्री, क्रॉस-प्लेटफ़ॉर्म एब्स्ट्रैक्शन लेवल है जो ओपनसीएल से प्रेरित अंडरलाइंग कॉन्सेप्ट्स, पोर्टेबिलिटी और एफिशिएंसी पर आधारित है जो पूर्ण रूप से स्टैण्डर्ड सी ++ का उपयोग करके हेटेरोजेनिस प्रोसेसर के लिए कोड को "सिंगल-सोर्स" स्टाइल में लिखने में सक्षम बनाता है। एसवाईसीएल सिंगल-सोर्स डेवलपमेंट को सक्षम बनाता है जहां [[सी++]] टेम्पलेट फ़ंक्शंस में काम्प्लेक्स एल्गोरिदम बनाने के लिए होस्ट और डिवाइस कोड दोनों सम्मिलित हो सकते हैं जो हार्डवेयर एक्सेलेरेटर का उपयोग करते हैं, और फिर विभिन्न प्रकार के डेटा पर अपने सोर्स कोड में उनका पुन: उपयोग करते हैं।


==संस्करण==
जबकि एसवाईसीएल स्टैण्डर्ड ओपनसीएल वर्किंग ग्रुप के हायर-लेवल प्रोग्रामिंग मॉडल सब-ग्रुप के रूप में प्रारंभ हुआ था। मूल रूप से ओपनसीएल और [[मानक पोर्टेबल इंटरमीडिएट प्रतिनिधित्व|एसपीआईआर]] के साथ उपयोग के लिए विकसित किया गया था, एसवाईसीएल 20 सितंबर 2019 से ओपनसीएल वर्किंग ग्रुप से स्वतंत्र ख्रोनोस ग्रुप वर्किंग ग्रुप है। एसवाईसीएल 2020 के साथ, एसवाईसीएल को अन्य सिस्टम्स को टारगेट करने में सक्षम अधिक सामान्य हेटेरोजेनिस फ्रेमवर्क के रूप में सामान्यीकृत किया गया है। यह अब टारगेट एपीआई के साथ पूर्ण [[अप्लिकेशन प्रोग्रामिंग अंतरफलक|इंटरऑपरेबिलिटी]] को सक्षम करते हुए किसी भी एक्सेलरेशन एपीआई को टारगेट करने के लिए सामान्य [[बैकएंड (कंप्यूटिंग)]] की अवधारणा के साथ यह अब संभव है, जैसे प्रोग्रामिंग एफर्ट सरल बनाने के साथ-साथ अधिकतम परफॉरमेंस तक पहुंचने के लिए एक्सिस्टिंग नेटिव लाइब्रेरीज का उपयोग करना। उदाहरण के लिए, ओपन एसवाईसीएल इम्प्लीमेंटेशन एएमडी के क्रॉस-वेंडर एचआईपी के माध्यम से आरओसीएम और सीयूडीए को टारगेट करता है।
SYCL को मार्च 2014 में [[ गेम डेवलपर्स सम्मेलन ]] में पेश किया गया था
अनंतिम संस्करण 1.2,<ref name="sycl-gdc-2014">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-1.2-provisional-specification|title = Khronos Releases SYCL 1.2 Provisional Specification|date = 19 March 2014|accessdate = 20 August 2017|website = Khronos|publisher = |last = Khronos Group}}</ref> तब SYCL 1.2 अंतिम संस्करण था
मई 2015 में I[[WOCL]] 2015 में पेश किया गया।<ref name="sycl-iwocl-2015">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-1.2-final-specification-c-single-source-heterogeneous|title = Khronos Releases SYCL 1.2 Final Specification|date = 11 May 2015|accessdate = 20 August 2017|website = Khronos|publisher = |last = Khronos Group}}</ref>
पिछली SYCL 1.2.1 श्रृंखला का नवीनतम संस्करण SYCL 1.2.1 संशोधन 7 है जो 27 अप्रैल, 2020 को प्रकाशित हुआ था (पहला संस्करण 6 दिसंबर, 2017 को प्रकाशित हुआ था)<ref name="sycl-ea-2017">{{cite web|url = https://www.khronos.org/news/press/the-khronos-group-releases-finalized-sycl-1.2.1|title = The Khronos Group Releases Finalized SYCL 1.2.1|date = 6 December 2017|accessdate = 12 December 2017|website = Khronos|publisher = |last = Khronos Group}}</ref>).


SYCL 2.2 अनंतिम को मई 2016 में IWOCL 2016 में पेश किया गया था<ref name="sycl-iwocl-2016">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-opencl-2.2-provisional-spec-opencl-c-kernel-language|title = Khronos Releases OpenCL 2.2 Provisional Specification with OpenCL C++ Kernel Language|date = 18 April 2016|accessdate = 18 September 2017|website = Khronos|publisher = |last = Khronos Group}}</ref> [[C++14]] और OpenCL 2.2 को लक्षित करना। लेकिन एसवाईसीएल समिति ने इस संस्करण को अंतिम रूप नहीं देने और कृत्रिम बुद्धिमत्ता इंजनों सहित वर्तमान हार्डवेयर त्वरण की बढ़ती विविधता को संबोधित करने के लिए अधिक लचीले एसवाईसीएल विनिर्देश की ओर बढ़ने को प्राथमिकता दी, जिसके कारण एसवाईसीएल 2020 हुआ।
==वर्जन==
एसवाईसीएल को मार्च 2014 में प्रोविशनल वर्जन 1.2 के साथ [[ गेम डेवलपर्स सम्मेलन |जीडीसी]] में प्रस्तुत किया गया था,<ref name="sycl-gdc-2014">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-1.2-provisional-specification|title = Khronos Releases SYCL 1.2 Provisional Specification|date = 19 March 2014|accessdate = 20 August 2017|website = Khronos|publisher = |last = Khronos Group}}</ref> तब एसवाईसीएल 1.2 फाइनल वर्जन मई 2015 में [[WOCL|आईडब्लूओसीएल]] 2015 में प्रस्तुत किया गया था।<ref name="sycl-iwocl-2015">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-1.2-final-specification-c-single-source-heterogeneous|title = Khronos Releases SYCL 1.2 Final Specification|date = 11 May 2015|accessdate = 20 August 2017|website = Khronos|publisher = |last = Khronos Group}}</ref>


नवीनतम संस्करण SYCL 2020 संशोधन 6 है जिसे 13 नवंबर, 2022 को प्रकाशित किया गया था, यह संशोधन 2 की पहली रिलीज से एक विकास है जो 9 फरवरी, 2021 को प्रकाशित हुआ था।<ref name="sycl-2020-pr">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-2020-final-specification|title = Khronos Releases SYCL 2020 Specification|date = 9 February 2021|accessdate = 22 February 2021|website = Khronos|publisher = |last = Khronos Group}}</ref> पर प्रकाशित SYCL 2020 अनंतिम विशिष्टता संशोधन 1 पर उपयोगकर्ताओं और कार्यान्वयनकर्ताओं की प्रतिक्रिया को ध्यान में रखते हुए
पिछली एसवाईसीएल 1.2.1 सीरीज का लेटेस्ट वर्जन एसवाईसीएल 1.2.1 संशोधन 7 है जो 27 अप्रैल, 2020 को प्रकाशित हुआ था (पहला वर्जन 6 दिसंबर, 2017 को प्रकाशित हुआ था)।<ref name="sycl-ea-2017">{{cite web|url = https://www.khronos.org/news/press/the-khronos-group-releases-finalized-sycl-1.2.1|title = The Khronos Group Releases Finalized SYCL 1.2.1|date = 6 December 2017|accessdate = 12 December 2017|website = Khronos|publisher = |last = Khronos Group}}</ref>
30 जून 2020.<ref name="sycl-2">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-2020-provisional-specification|title = Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification|date = 30 June 2020|accessdate = 4 December 2020|website = Khronos|publisher = |last = Khronos Group}}</ref> C++17 और OpenCL 3.0 समर्थन इस रिलीज़ के मुख्य लक्ष्य हैं। ओपनसीएल और सीयूडीए समर्थन वाले जीपीयू के लिए एकीकृत साझा मेमोरी (यूएसएम) एक मुख्य विशेषता है।


IWOCL 2021 में एक रोडमैप प्रस्तुत किया गया। DPC++, ComputeCpp, Open SYCL, triSYCL और neoSYCL SYCL के मुख्य कार्यान्वयन हैं। विकास में अगला लक्ष्य भविष्य के SYCL 202x में C++20 का समर्थन है।<ref>https://www.iwocl.org/wp-content/uploads/k04-iwocl-syclcon-2021-wong-slides.pdf {{Bare URL PDF|date=March 2022}}</ref>
एसवाईसीएल 2.2 प्रोविशनल को मई 2016 में आईडब्लूओसीएल 2016 में प्रस्तुत किया गया था।<ref name="sycl-iwocl-2016">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-opencl-2.2-provisional-spec-opencl-c-kernel-language|title = Khronos Releases OpenCL 2.2 Provisional Specification with OpenCL C++ Kernel Language|date = 18 April 2016|accessdate = 18 September 2017|website = Khronos|publisher = |last = Khronos Group}}</ref> [[C++14|सी++14]] और ओपनसीएल 2.2 को टारगेट करना। किंतु एसवाईसीएल कमिटी ने इस वर्जन को फाइनल रूप नहीं देने और आर्टिफीसियल इंटेलिजेंस इंजनों सहित करंट हार्डवेयर एक्सेलेरेटर की बढ़ती विविधता को संबोधित करने के लिए अधिक फ्लेक्सिबल एसवाईसीएल विनिर्देश की ओर बढ़ने को प्राथमिकता दी, जिसके कारण एसवाईसीएल 2020 हुआ।


लेटेस्ट वर्जन एसवाईसीएल 2020 संशोधन 6 है जिसे 13 नवंबर, 2022 को प्रकाशित किया गया था, यह संशोधन 2 की पहली रिलीज से डेवलपमेंट है जिसे 9 फरवरी, 2021 को प्रकाशित किया गया था,<ref name="sycl-2020-pr">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-2020-final-specification|title = Khronos Releases SYCL 2020 Specification|date = 9 February 2021|accessdate = 22 February 2021|website = Khronos|publisher = |last = Khronos Group}}</ref> एसवाईसीएल 2020 पर यूजर और इम्प्लेमेंटर की प्रतिक्रिया को ध्यान में रखते हुए प्रोविशनल स्पेसिफिकेशन संशोधन 1, 30 जून 2020 को प्रकाशित हुआ।<ref name="sycl-2">{{cite web|url = https://www.khronos.org/news/press/khronos-releases-sycl-2020-provisional-specification|title = Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification|date = 30 June 2020|accessdate = 4 December 2020|website = Khronos|publisher = |last = Khronos Group}}</ref> सी++17 और ओपनसीएल 3.0 सपोर्ट इस रिलीज़ के मुख्य टारगेट हैं। ओपनसीएल और सीयूडीए सपोर्ट वाले जीपीयू के लिए यूनिफाइड शेयर्ड मेमोरी (यूएसएम) मुख्य विशेषता है।


== कार्यान्वयन ==
आईडब्लूओसीएल 2021 में रोडमैप प्रस्तुत किया गया। डीपीसी++, कंप्यूटसीपीपी, ओपन एसवाईसीएल, ट्राईएसवाईसीएल और नियोएसवाईसीएल एसवाईसीएल के मुख्य इम्प्लीमेंटेशन हैं। डेवलपमेंट में नेक्स्ट टारगेट भविष्य के एसवाईसीएल 202x में सी++20 का सपोर्ट है।<ref>https://www.iwocl.org/wp-content/uploads/k04-iwocl-syclcon-2021-wong-slides.pdf {{Bare URL PDF|date=March 2022}}</ref>
* डीपीसी++: (डेटा पैरेलल सी++) एलएलवीएम और वनएपीआई के लिए एसवाईसीएल पेश करने के लिए इंटेल का एक ओपन सोर्स प्रोजेक्ट है। C++17 और SYCL 2020 के साथ C++20 के भाग इस कंपाइलर फ्रेमवर्क का आधार हैं।<ref>https://www.iwocl.org/wp-content/uploads/k01-iwocl-syclcon-2021-reinders-slides.pdf {{Bare URL PDF|date=March 2022}}</ref><ref>{{cite web | url=https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html#gs.zk33gz | title=Compile Cross-Architecture: Intel® oneAPI DPC++/C++ Compiler }}</ref>
* ComputeCpp: सामुदायिक संस्करण के साथ फर्म कोडप्ले का SYCL 1.2.1 अनुरूप ढांचा<ref>{{cite web | url=https://developer.codeplay.com/products/computecpp/ce/home | title=Home - ComputeCpp CE - Products - Codeplay Developer }}</ref><ref>{{Cite web|url=https://developer.codeplay.com/products/computecpp/ce/guides/platform-support|title = Guides - ComputeCpp CE - Products - Codeplay Developer}}</ref>
* एडेप्टिवसीपीपी (पूर्व में हिपएसवाईसीएल और ओपन एसवाईसीएल): इमेज या ओपनसीएल इंटरऑप के बिना अधूरा 1.2.1 समर्थन, आंशिक रूप से एसवाईसीएल 2020, आरओसीएम (एएमडी), सीयूडीए (एनवीडिया), ओपनएमपी (सीपीयू) और लेवल जीरो (इंटेल) का समर्थन करता है।<ref>{{Cite web |date=4 July 2023 |title=AdaptiveCpp (formerly known as hipSYCL / Open SYCL) |url=https://github.com/AdaptiveCpp/AdaptiveCpp |website=[[GitHub]]}}</ref><ref>{{Cite web|url=https://github.com/OpenSYCL/featuresupport|title = हिपएसवाईसीएल सुविधा समर्थन|website = [[GitHub]]|date = 4 July 2023}}</ref>
* triSYCL: C++20, OpenMP और OpenCL पर आधारित, धीमा विकास, अधूरा, DPC++ के शीर्ष पर आधारित संस्करण के साथ<ref>{{Cite web|url=https://github.com/ट्राईएसवाईसीएल/ट्राईएसवाईसीएल|title = ट्राईएसवाईसीएल|website = [[GitHub]]|date = 6 January 2022}}</ref>
* neoSYCL: SYCL 1.2.1 लगभग पूर्ण, hpc SX-Aurora Tsubasa के लिए, छवि समर्थन जैसी कोई OpenCL विशिष्ट सुविधाएँ नहीं<ref>{{Cite book|chapter-url=https://dl.acm.org/doi/abs/10.1145/3432261.3432268|doi = 10.1145/3432261.3432268|chapter = NeoSYCL: A SYCL implementation for SX-Aurora TSUBASA|title = एशिया-प्रशांत क्षेत्र में उच्च प्रदर्शन कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन|year = 2021|last1 = Ke|first1 = Yinan|last2 = Agung|first2 = Mulya|last3 = Takizawa|first3 = Hiroyuki|pages = 50–57|isbn = 9781450388429|s2cid = 231597238}}</ref><ref>{{Cite book|chapter-url=https://dl.acm.org/doi/fullHtml/10.1145/3432261.3432268|doi = 10.1145/3432261.3432268|chapter = NeoSYCL: A SYCL implementation for SX-Aurora TSUBASA|title = एशिया-प्रशांत क्षेत्र में उच्च प्रदर्शन कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन|year = 2021|last1 = Ke|first1 = Yinan|last2 = Agung|first2 = Mulya|last3 = Takizawa|first3 = Hiroyuki|pages = 50–57|isbn = 9781450388429|s2cid = 231597238}}</ref>
* एसवाईसीएल-जीटीएक्स: सी++11 समर्थन, ओपनसीएल 1.2+ के लिए, पूर्ण से बहुत दूर, कोई वास्तविक विकास नहीं<ref>{{Cite web|url=https://github.com/ProGTX/sycl-gtx|title = Sycl-GTX|website = [[GitHub]]|date = 10 April 2021}}</ref>
*सिल्कन प्रायोगिक अवस्था में वल्कन उपकरणों के लिए एसवाईसीएल का कार्यान्वयन है।<ref>https://www.iwocl.org/wp-content/uploads/14-iwocl-syclcon-2021-thoman-slides.pdf {{Bare URL PDF|date=March 2022}}</ref>
* पॉलीजिस्ट के पास एमएलआईआर के माध्यम से एसवाईसीएल को संकलित करने वाला एक कांटा है<ref>{{Cite web|url=https://github.com/InteonCo/बहुपत्नीवादी|title = बहुपत्नीवादी|website = [[GitHub]]|date = 25 February 2022}}</ref> जो Inteon कंपनी द्वारा समर्थित है।<ref>{{Cite web|url=https://inteon.co|title = इंटोन|date = 25 February 2022}}</ref>


== इम्प्लीमेंटेशन ==
* डीपीसी++: (डेटा पैरेलल सी++) एलएलवीएम और वनएपीआई के लिए एसवाईसीएल प्रस्तुत करने के लिए इंटेल का ओपन सोर्स प्रोजेक्ट है। सी++17 और एसवाईसीएल 2020 के साथ सी++20 के भाग इस कंपाइलर फ्रेमवर्क का आधार हैं।<ref>https://www.iwocl.org/wp-content/uploads/k01-iwocl-syclcon-2021-reinders-slides.pdf {{Bare URL PDF|date=March 2022}}</ref><ref>{{cite web | url=https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html#gs.zk33gz | title=Compile Cross-Architecture: Intel® oneAPI DPC++/C++ Compiler }}</ref>
* कंप्यूटसीपीपी: कम्युनिटी वर्जन के साथ फर्म कोडप्ले का एसवाईसीएल 1.2.1 कन्फॉर्मॅट फ्रेमवर्क है। <ref>{{cite web | url=https://developer.codeplay.com/products/computecpp/ce/home | title=Home - ComputeCpp CE - Products - Codeplay Developer }}</ref><ref>{{Cite web|url=https://developer.codeplay.com/products/computecpp/ce/guides/platform-support|title = Guides - ComputeCpp CE - Products - Codeplay Developer}}</ref>
* एडेप्टिवसीपीपी (फोर्मेली हिपएसवाईसीएल और ओपन एसवाईसीएल): इमेज या ओपनसीएल इंटरऑप के बिना इनकम्पलीट 1.2.1 सपोर्ट, आंशिक रूप से एसवाईसीएल 2020, आरओसीएम (एएमडी), सीयूडीए (एनवीडिया), ओपनएमपी (सीपीयू) और लेवल जीरो (इंटेल) का सपोर्ट करता है।<ref>{{Cite web |date=4 July 2023 |title=AdaptiveCpp (formerly known as hipSYCL / Open SYCL) |url=https://github.com/AdaptiveCpp/AdaptiveCpp |website=[[GitHub]]}}</ref><ref>{{Cite web|url=https://github.com/OpenSYCL/featuresupport|title = हिपएसवाईसीएल सुविधा समर्थन|website = [[GitHub]]|date = 4 July 2023}}</ref>
* ट्राईएसवाईसीएल: सी++20, ओपनएमपी और ओपनसीएल पर आधारित, स्लो डेवलपमेंट, इनकम्पलीट, डीपीसी++ के टॉप पर आधारित वर्जन है। <ref>{{Cite web|url=https://github.com/ट्राईएसवाईसीएल/ट्राईएसवाईसीएल|title = ट्राईएसवाईसीएल|website = [[GitHub]]|date = 6 January 2022}}</ref>
* नियोएसवाईसीएल: एसवाईसीएल 1.2.1 लगभग पूर्ण हो चुका है, एचपीसी एसएक्स-अरोड़ा त्सुबासा के लिए, इमेज सपोर्ट जैसी कोई ओपनसीएल स्पेसिफिक फीचर नहीं हैं।<ref>{{Cite book|chapter-url=https://dl.acm.org/doi/abs/10.1145/3432261.3432268|doi = 10.1145/3432261.3432268|chapter = NeoSYCL: A SYCL implementation for SX-Aurora TSUBASA|title = एशिया-प्रशांत क्षेत्र में उच्च प्रदर्शन कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन|year = 2021|last1 = Ke|first1 = Yinan|last2 = Agung|first2 = Mulya|last3 = Takizawa|first3 = Hiroyuki|pages = 50–57|isbn = 9781450388429|s2cid = 231597238}}</ref><ref>{{Cite book|chapter-url=https://dl.acm.org/doi/fullHtml/10.1145/3432261.3432268|doi = 10.1145/3432261.3432268|chapter = NeoSYCL: A SYCL implementation for SX-Aurora TSUBASA|title = एशिया-प्रशांत क्षेत्र में उच्च प्रदर्शन कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन|year = 2021|last1 = Ke|first1 = Yinan|last2 = Agung|first2 = Mulya|last3 = Takizawa|first3 = Hiroyuki|pages = 50–57|isbn = 9781450388429|s2cid = 231597238}}</ref>
* एसवाईसीएल-जीटी्स: ओपनसीएल 1.2+ के लिए, सी++11 सपोर्ट पूर्ण से अधिक दूर, कोई एक्चुअल डेवलपमेंट नहीं हैं।<ref>{{Cite web|url=https://github.com/ProGTX/sycl-gtx|title = Sycl-GTX|website = [[GitHub]]|date = 10 April 2021}}</ref>
*सिल्कन एक्सपेरिमेंटल स्टेट में वल्कन डिवाइस के लिए एसवाईसीएल का इम्प्लीमेंटेशन है।<ref>https://www.iwocl.org/wp-content/uploads/14-iwocl-syclcon-2021-thoman-slides.pdf {{Bare URL PDF|date=March 2022}}</ref>
* पॉलीजिस्ट के पास एमएलआईआर के माध्यम से एसवाईसीएल को कोम्पिलिंग करने वाला फ़ोर्क है<ref>{{Cite web|url=https://github.com/InteonCo/बहुपत्नीवादी|title = बहुपत्नीवादी|website = [[GitHub]]|date = 25 February 2022}}</ref> जो इंटोन कंपनी द्वारा समर्थित है।<ref>{{Cite web|url=https://inteon.co|title = इंटोन|date = 25 February 2022}}</ref>


==सॉफ़्टवेयर==
== सॉफ़्टवेयर ==
* [[ग्रोमैक]]: एसवाईसीएल 2020 ग्रोमैक संस्करण 2021 का हिस्सा है।<ref>https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf {{Bare URL PDF|date=March 2022}}</ref>
* [[ग्रोमैक]]: एसवाईसीएल 2020 ग्रोमैक वर्जन 2021 का भाग है।<ref>https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf {{Bare URL PDF|date=March 2022}}</ref>
* [[ISO 26262]] के समर्थन के साथ स्वायत्त ड्राइविंग के लिए ऑटोमोटिव उद्योग में उपयोग।<ref>https://www.iwocl.org/wp-content/uploads/20-iwocl-syclcon-2021-rudkin-slides.pdf {{Bare URL PDF|date=March 2022}}</ref>
* [[ISO 26262|आईएसओ 26262]] के सपोर्ट के साथ ऑटोनोमस ड्राइविंग के लिए ऑटोमोटिव इंडस्ट्री में उपयोग किया जाता है।<ref>https://www.iwocl.org/wp-content/uploads/20-iwocl-syclcon-2021-rudkin-slides.pdf {{Bare URL PDF|date=March 2022}}</ref>


 
== रिसोर्स ==
==संसाधन==
ख्रोनोस एसवाईसीएल रिसोर्स की लिस्ट बनाए रखता है।<ref>{{cite web |title=एसवाईसीएल संसाधन|url=https://www.khronos.org/sycl/resources |website=khronos.org |publisher=Khronos group}}</ref> [[कोडप्ले]] एसवाईसीएल इकोसिस्टम पर अन्य जानकारी और न्यूज़ के साथ वेबसाइट [https://sycl.tech/learn sycl.tech] पर ट्यूटोरियल भी प्रदान करता है।
ख्रोनोस ग्रुप एसवाईसीएल संसाधनों की एक सूची बनाए रखता है।<ref>{{cite web |title=एसवाईसीएल संसाधन|url=https://www.khronos.org/sycl/resources |website=khronos.org |publisher=Khronos group}}</ref> [[कोडप्ले]] एसवाईसीएल पारिस्थितिकी तंत्र पर अन्य जानकारी और समाचारों के साथ वेबसाइट [https://sycl.tech/learn sycl.tech] पर ट्यूटोरियल भी प्रदान करता है।


==लाइसेंस==
==लाइसेंस==
विनिर्देशन के निर्माण के लिए स्रोत फ़ाइलें, जैसे मेकफ़ाइल्स और कुछ स्क्रिप्ट, एसवाईसीएल हेडर और एसवाईसीएल कोड नमूने अपाचे 2.0 लाइसेंस के अंतर्गत हैं।<ref name="SYCL license">{{cite web|url = https://github.com/KhronosGroup/SYCL-Docs/blob/SYCL-1.2.1/master/LICENSE.txt|title = एसवाईसीएल ओपन सोर्स विशिष्टता|website = [[GitHub]]|date = 10 January 2022}}</ref> लाइसेंस का विवरण यहां है: https://www.apache.org/licenses/LICENSE-2.0.html
विनिर्देशन के निर्माण के लिए सोर्स फ़ाइलें, जैसे मेकफ़ाइल्स और कुछ स्क्रिप्ट, एसवाईसीएल हेडर और एसवाईसीएल कोड सैंपल अपाचे 2.0 लाइसेंस के अंतर्गत हैं।<ref name="SYCL license">{{cite web|url = https://github.com/KhronosGroup/SYCL-Docs/blob/SYCL-1.2.1/master/LICENSE.txt|title = एसवाईसीएल ओपन सोर्स विशिष्टता|website = [[GitHub]]|date = 10 January 2022}}</ref> लाइसेंस का विवरण [https://www.apache.org/licenses/LICENSE-2.0.html https://www.apaसीhe.org/liसीenses/LIसीENSE-2.0.html] यहां है।


==अन्य एपीआई के साथ तुलना==
==अन्य एपीआई के साथ कम्पेरिजन==
खुले मानक SYCL और OpenCL, [[Nvidia]] के मालिकाना स्टैक CUDA के प्रोग्रामिंग मॉडल और ओपन-सोर्स स्टैक [[ROCm]] से ROCm#HIP प्रोग्रामिंग के समान हैं, जो एडवांस्ड माइक्रो डिवाइसेस द्वारा समर्थित हैं।
ओपन स्टैण्डर्ड एसवाईसीएल और ओपनसीएल, [[Nvidia]] के प्रोप्राइटरी स्टैक सीयूडीए के प्रोग्रामिंग मॉडल और एएमडी ओपन-सोर्स स्टैक द्वारा सपोर्टेड ओपन-सोर्स स्टैक [[ROCm|आरओसीएम]] के एचआईपी के समान हैं।


ख्रोनोस ग्रुप क्षेत्र में, ओपनसीएल और [[वल्कन (एपीआई)]] निम्न-स्तरीय गैर-एकल स्रोत एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस हैं और एसवाईसीएल उच्च-स्तरीय एकल-स्रोत सी++ ईडीएसएल|एम्बेडेड डोमेन-विशिष्ट भाषा (ईडीएसएल) है।
ख्रोनोस ग्रुप एरिया में, ओपनसीएल और [[वल्कन (एपीआई)]] लो-लेवल नॉन-सिंगल सोर्स एपीआई हैं और एसवाईसीएल हाई-लेवल सिंगल-सोर्स सी++ ईडीएसएल एम्बेडेड डोमेन-स्पेसिफिक लैंग्वेज (ईडीएसएल) है।


===सीयूडीए===
===सीयूडीए===
तुलनात्मक रूप से, CUDA का एकल-स्रोत C++ eDSL|एम्बेडेड डोमेन-विशिष्ट भाषा संस्करण, जिसे वास्तव में CUDA रनटाइम एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस नाम दिया गया है, कुछ हद तक SYCL के समान है।
कम्पेरिजन रूप से, सीयूडीए का सिंगल-सोर्स सी++ एम्बेडेड डोमेन-स्पेसिफिक लैंग्वेज वर्जन, जिसे वास्तव में सीयूडीए रनटाइम एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस नाम दिया गया है, कुछ लिमिट तक एसवाईसीएल के समान है। किंतु वास्तव में सीयूडीए का कम ज्ञात नॉन सिंगल-सोर्स वर्जन है जिसे ओपनसीएल के समान सीयूडीए ड्राइवर एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस कहा जाता है, और उदाहरण के लिए सीयूडीए रनटाइम एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस इम्प्लीमेंटेशन द्वारा उपयोग किया जाता है।
लेकिन वास्तव में CUDA का एक कम ज्ञात गैर एकल-स्रोत संस्करण है जिसे CUDA ड्राइवर एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस कहा जाता है, जो OpenCL के समान है, और उदाहरण के लिए CUDA रनटाइम एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस कार्यान्वयन द्वारा उपयोग किया जाता है।


SYCL [[C++ AMP]] सुविधाओं का विस्तार करता है, जिससे प्रोग्रामर को CUDA के विरोध में (CUDA 6 में यूनिफाइड मेमोरी की शुरूआत से पहले) बफ़र्स और एक्सेसर्स का उपयोग करके होस्ट और डिवाइस के बीच डेटा को स्पष्ट रूप से स्थानांतरित करने से राहत मिलती है। लेकिन SYCL 2020 से शुरू करके, CUDA में यूनिफाइड मेमोरी के समान निचले स्तर के प्रोग्रामिंग मॉडल का उपयोग करने के लिए बफ़र्स और एक्सेसर्स के बजाय यूएसएम का उपयोग करना भी संभव है।
एसवाईसीएल [[C++ AMP|सी++ एएमपी]] फीचर का विस्तार करता है, जिससे प्रोग्रामर को सीयूडीए के अपोजिट में (सीयूडीए 6 में यूनिफाइड मेमोरी के प्रारंभ से पहले) बफ़र्स और एक्सेसर्स का उपयोग करके होस्ट और डिवाइस के मध्य डेटा को स्पष्ट रूप से ट्रांसफरिंग करने से रिलीविंग मिलती है। किंतु एसवाईसीएल 2020 से प्रारंभ करके, सीयूडीए में यूनिफाइड मेमोरी के समान लोअर-लेवल के प्रोग्रामिंग मॉडल का उपयोग करने के लिए बफ़र्स और एक्सेसर्स के अतिरिक्त यूएसएम का उपयोग करना भी संभव है।


SYCL C++ AMP और CUDA से उच्च स्तरीय है क्योंकि आपको सभी कर्नेल के बीच एक स्पष्ट निर्भरता ग्राफ बनाने की आवश्यकता नहीं है, और
एसवाईसीएल सी++ एएमपी और सीयूडीए से हायर लेवल है क्योंकि आपको सभी कर्नेल के मध्य स्पष्ट डिपेंडेंसी ग्राफ बनाने की आवश्यकता नहीं है, और आपको कम्युनिकेशन और कम्प्यूटेशन ओवरलैप के साथ कर्नेल की आटोमेटिक एसिंक्रोनोस शेड्यूलिंग प्रदान करता है। यह सब किसी कंपाइलर सपोर्ट की आवश्यकता के बिना, एक्सेसर्स की अवधारणा का उपयोग करके किया जाता है।
आपको संचार और गणना ओवरलैप के साथ कर्नेल की स्वचालित अतुल्यकालिक शेड्यूलिंग प्रदान करता है। यह है
यह सब किसी कंपाइलर समर्थन की आवश्यकता के बिना, एक्सेसर्स की अवधारणा का उपयोग करके किया गया।


C++ AMP और CUDA के विपरीत, SYCL बिना किसी C++ एक्सटेंशन के एक शुद्ध C++ eDSL है, जो बिना किसी विशिष्ट कंपाइलर के शुद्ध रनटाइम पर निर्भर बुनियादी CPU कार्यान्वयन की अनुमति देता है। यह किसी एप्लिकेशन को डीबग करने या किसी नए आर्किटेक्चर के लिए प्रोटोटाइपिंग के लिए बहुत उपयोगी है, बिना आर्किटेक्चर और कंपाइलर अभी तक उपलब्ध नहीं है।
सी++ एएमपी और सीयूडीए के विपरीत, एसवाईसीएल बिना किसी सी++ एक्सटेंशन के प्योर सी++ ईडीएसएल है, जो बिना किसी स्पेसिफिक कंपाइलर के प्योर रनटाइम पर अल्लोविंग बेसिक सीपीयू इम्प्लीमेंटेशन की अनुमति देता है। यह किसी एप्लिकेशन को डीबग करने या किसी नए आर्किटेक्चर के लिए प्रोटोटाइपिंग के लिए अधिक उपयोगी है, बिना आर्किटेक्चर और कंपाइलर अभी तक उपलब्ध नहीं है।


CUDA बैकएंड को लक्षित करने वाले कम से कम 3 ज्ञात SYCL कार्यान्वयन हैं।
सीयूडीए बैकएंड को टारगेट करने वाले कम से कम 3 ज्ञात एसवाईसीएल इम्प्लीमेंटेशन हैं।


===आरओसीएम हिप===
===आरओसीएम हिप===
{{Section_expand|small=no|date=February 2022}}
आरओसीएम हिप को Nvidia जीपीयू, एएमडी जीपीयू और x86 सीपीयू को टारगेट करने वाले सीयूडीए के क्लोन के रूप में देखा जा सकता है। इस प्रकार आरओसीएम एचआईपी एसवाईसीएल के कम्पेर्ड में लोअर लेवल एपीआई है और सीयूडीए के साथ कम्पेरिजन में उल्लिखित अधिकांश टिप्पणियाँ प्रारम्भ होती हैं।
ROCm HIP को Nvidia GPU, AMD GPU और x86 CPU को लक्षित करने वाले CUDA के क्लोन के रूप में देखा जा सकता है। इस प्रकार आरओसीएम एचआईपी एसवाईसीएल की तुलना में एक निम्न-स्तरीय एपीआई है और सीयूडीए के साथ तुलना में उल्लिखित अधिकांश टिप्पणियाँ लागू होती हैं।


ROCm HIP में SYCL से कुछ समानताएँ हैं, इस अर्थ में कि यह विभिन्न विक्रेताओं (AMD और Nvidia) और त्वरक प्रकारों (GPU और CPU) को लक्षित कर सकता है। लेकिन एसवाईसीएल बैकएंड की अवधारणा के साथ एक ही एप्लिकेशन में संभावित रूप से एक ही समय में किसी भी प्रकार के त्वरक और किसी भी विक्रेता को कार्यान्वयन के अनुसार लक्षित कर सकता है। SYCL भी शुद्ध C++ है जबकि HIP CUDA से विरासत में मिले कुछ एक्सटेंशन का उपयोग करता है, जो किसी भी CPU को लक्षित करने के लिए सामान्य C++ कंपाइलर का उपयोग करने से रोकता है।
आरओसीएम हिप में एसवाईसीएल से कुछ सिमिलरटीज हैं, इस अर्थ में कि यह विभिन्न वेंडर्स (एएमडी और Nvidia) और एक्सेलरेटर टाइप्स (जीपीयू और सीपीयू) को टारगेट कर सकता है। किंतु एसवाईसीएल बैकएंड की अवधारणा के साथ एप्लिकेशन में संभावित रूप से एक ही समय में किसी भी टाइप के एक्सेलरेटर और किसी भी वेंडर को इम्प्लीमेंटेशन के अनुसार टारगेट कर सकता है। एसवाईसीएल भी प्योर सी++ है जबकि हिप सीयूडीए से इनहेरिटेड कुछ एक्सटेंशन का उपयोग करता है, जो किसी भी सीपीयू को टारगेट करने के लिए नार्मल सी++ कंपाइलर का उपयोग करने से प्रिवेंट करता है।


एचआईपी बैकएंड को लक्षित करने वाले एसवाईसीएल के कम से कम 2 ज्ञात कार्यान्वयन हैं, वनएपीआई डीपीसी++ और ओपन एसवाईसीएल।
एचआईपी बैकएंड को टारगेट करने वाले एसवाईसीएल के कम से कम 2 ज्ञात इम्प्लीमेंटेशन हैं, वनएपीआई डीपीसी++ और ओपन एसवाईसीएल हिप पर [https://github.com/OpenSYCL/OpenSYCL ओपन एसवाईसीएल] इम्प्लीमेंटेशन, , एसवाईसीएल प्रोग्रामिंग को सीयूडीए और हिप में ऐड करता है।
[https://github.com/OpenSYCL/OpenSYCL ओपन SYCL] कार्यान्वयन, HIP पर, SYCL प्रोग्रामिंग को CUDA और HIP में जोड़ता है।


===अन्य प्रोग्रामिंग मॉडल===
===अन्य प्रोग्रामिंग मॉडल===
एसवाईसीएल में [[ट्रिलिनोस]] प्रोग्रामिंग मॉडल से कई समानताएं हैं,<ref>{{cite book|last1 = Hammond|first1 = Jeff R.|last2 = Kinsner|first2 = Michael|last3 = Brodman|first3 = James| title=ओपनसीएल पर अंतर्राष्ट्रीय कार्यशाला की कार्यवाही| chapter=A comparative analysis of Kokkos and SYCL as heterogeneous, parallel programming models for C++ applications | date=2019 |pages = 1–2|year = 2019|doi = 10.1145/3318170.3318193|isbn = 9781450362306|s2cid = 195777149|chapter-url = https://doi.org/10.1145/3318170.3318193}}</ref> जिसमें अपारदर्शी बहु-आयामी सरणी ऑब्जेक्ट (एसवाईसीएल बफ़र्स और कोक्कोस एरेज़), समानांतर निष्पादन के लिए बहु-आयामी श्रेणियां और कटौती (एसवाईसीएल 2020 में जोड़ा गया) का उपयोग शामिल है। कोक्कोस समुदाय की प्रतिक्रिया के जवाब में एसवाईसीएल 2020 में कई सुविधाएँ जोड़ी गईं।
एसवाईसीएल में [[ट्रिलिनोस|कोक्कोस]] प्रोग्रामिंग मॉडल से कई समानताएं हैं,<ref>{{cite book|last1 = Hammond|first1 = Jeff R.|last2 = Kinsner|first2 = Michael|last3 = Brodman|first3 = James| title=ओपनसीएल पर अंतर्राष्ट्रीय कार्यशाला की कार्यवाही| chapter=A comparative analysis of Kokkos and SYCL as heterogeneous, parallel programming models for C++ applications | date=2019 |pages = 1–2|year = 2019|doi = 10.1145/3318170.3318193|isbn = 9781450362306|s2cid = 195777149|chapter-url = https://doi.org/10.1145/3318170.3318193}}</ref> जिसमें ओपाके मल्टी-डायमेंशनल ऐरे ऑब्जेक्ट (एसवाईसीएल बफ़र्स और कोक्कोस एरेज़) का उपयोग, पैरेलल  एक्सेक्यूशन के लिए मल्टी-डायमेंशनल रेंजस और रिडक्शन (एसवाईसीएल 2020 में जोड़ा गया) सम्मिलित है। कोक्कोस कम्युनिटी की प्रतिक्रिया के उत्तर में एसवाईसीएल 2020 में कई फीचर ऐड किये गए।


==यह भी देखें==
==यह भी देखें==
Line 99: Line 71:
* ओपनसीएल
* ओपनसीएल
* [[ओपनएमपी]]
* [[ओपनएमपी]]
* मानक पोर्टेबल इंटरमीडिएट प्रतिनिधित्व
* एसपीआईआर
* [[वल्कन]]
* [[वल्कन]]
* सी++ एएमपी
* सी++ एएमपी
* क्यूडा
* क्यूडा
* आरओसीएम
* आरओसीएम
* [[धातु (एपीआई)]]
* [[धातु (एपीआई)|मेटल (एपीआई)]]


==संदर्भ==
==सन्दर्भ==
{{Reflist}}
{{Reflist}}


==बाहरी संबंध==
*[https://www.khronos.org/sycl/ Khronos SYCL webpage]
* [https://www.khronos.org/registry/SYCL/ The SYCL specifications in Khronos registry]
* [https://github.com/KhronosGroup/SyclParallelSTL C++17 ParallelSTL in SYCL]
* [http://sycl.tech/ SYCL tech resources]
* [https://www.codeplay.com/products/computesuite/computecpp Codeplay ComputeCpp SYCL implementation]
* [https://github.com/intel/llvm/tree/sycl Implementation of SYCL started by Intel with the goal of Clang/LLVM up-streaming]
* [https://github.com/illuhad/hipSYCL hipSYCL: implementation of SYCL 1.2.1 over AMD HIP/NVIDIA CUDA]
* [https://github.com/triSYCL/triSYCL triSYCL open-source SYCL implementation]
* [https://www.iwocl.org/sycl-conference/ SYCL Conference @ IWOCL]
* [https://www.hpcwire.com/2021/02/09/sycl-2020-launches-new-name-new-features/ "SYCL 2020 Launches with New Name, New Features, and High Ambition", HPCWire article (2021 Feb. 9th)]
* [https://link.springer.com/book/10.1007/978-1-4842-5574-2 James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian:  "Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL", Apress (2021), OpenAccess.]
{{Khronos Group standards}}
{{Parallel computing}}
[[Category: एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] [[Category: सी++]] [[Category: क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर]] [[Category: डोमेन-विशिष्ट प्रोग्रामिंग भाषाएँ]] [[Category: जीपीजीपीयू]] [[Category: जीपीजीपीयू पुस्तकालय|ओपनसीएल]] [[Category: विषम कंप्यूटिंग]] [[Category: समानांतर कंप्यूटिंग]]  
[[Category: एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस]] [[Category: सी++]] [[Category: क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर]] [[Category: डोमेन-विशिष्ट प्रोग्रामिंग भाषाएँ]] [[Category: जीपीजीपीयू]] [[Category: जीपीजीपीयू पुस्तकालय|ओपनसीएल]] [[Category: विषम कंप्यूटिंग]] [[Category: समानांतर कंप्यूटिंग]]  


Line 132: Line 87:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 28/11/2023]]
[[Category:Created On 28/11/2023]]
[[Category:Vigyan Ready]]

Latest revision as of 10:44, 11 December 2023

एसवाईसीएल विभिन्न हार्डवेयर एक्सेलेरेटर पर प्रोग्रामिंग प्रोडक्टिविटी में सुधार करने के लिए हायर लेवल प्रोग्रामिंग मॉडल है। यह प्योर सी++17 पर आधारित सिंगल-सोर्स एम्बेडेड डोमेन-स्पेसिफिक लैंग्वेज (eDSL) है। यह क्रोनोस ग्रुप द्वारा विकसित स्टैण्डर्ड है, जिसकी घोषणा मार्च 2014 में की गई थी।

नाम की उत्पत्ति

एसवाईसीएल (प्रोनोअनसेड 'सिकल') मूल रूप से सिस्टम-वाइड कंप्यूट लैंग्वेज के लिए है,[1] किंतु 2020 से एसवाईसीएल डेवलपर्स ने कहा है कि एसवाईसीएल नाम है और उन्होंने स्पष्ट कर दिया है कि यह अब संक्षिप्त नाम नहीं है और इसमें ओपनसीएल का कोई रिफरेन्स नहीं है।[2]

उद्देश्य

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

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

वर्जन

एसवाईसीएल को मार्च 2014 में प्रोविशनल वर्जन 1.2 के साथ जीडीसी में प्रस्तुत किया गया था,[3] तब एसवाईसीएल 1.2 फाइनल वर्जन मई 2015 में आईडब्लूओसीएल 2015 में प्रस्तुत किया गया था।[4]

पिछली एसवाईसीएल 1.2.1 सीरीज का लेटेस्ट वर्जन एसवाईसीएल 1.2.1 संशोधन 7 है जो 27 अप्रैल, 2020 को प्रकाशित हुआ था (पहला वर्जन 6 दिसंबर, 2017 को प्रकाशित हुआ था)।[5]

एसवाईसीएल 2.2 प्रोविशनल को मई 2016 में आईडब्लूओसीएल 2016 में प्रस्तुत किया गया था।[6] सी++14 और ओपनसीएल 2.2 को टारगेट करना। किंतु एसवाईसीएल कमिटी ने इस वर्जन को फाइनल रूप नहीं देने और आर्टिफीसियल इंटेलिजेंस इंजनों सहित करंट हार्डवेयर एक्सेलेरेटर की बढ़ती विविधता को संबोधित करने के लिए अधिक फ्लेक्सिबल एसवाईसीएल विनिर्देश की ओर बढ़ने को प्राथमिकता दी, जिसके कारण एसवाईसीएल 2020 हुआ।

लेटेस्ट वर्जन एसवाईसीएल 2020 संशोधन 6 है जिसे 13 नवंबर, 2022 को प्रकाशित किया गया था, यह संशोधन 2 की पहली रिलीज से डेवलपमेंट है जिसे 9 फरवरी, 2021 को प्रकाशित किया गया था,[7] एसवाईसीएल 2020 पर यूजर और इम्प्लेमेंटर की प्रतिक्रिया को ध्यान में रखते हुए प्रोविशनल स्पेसिफिकेशन संशोधन 1, 30 जून 2020 को प्रकाशित हुआ।[8] सी++17 और ओपनसीएल 3.0 सपोर्ट इस रिलीज़ के मुख्य टारगेट हैं। ओपनसीएल और सीयूडीए सपोर्ट वाले जीपीयू के लिए यूनिफाइड शेयर्ड मेमोरी (यूएसएम) मुख्य विशेषता है।

आईडब्लूओसीएल 2021 में रोडमैप प्रस्तुत किया गया। डीपीसी++, कंप्यूटसीपीपी, ओपन एसवाईसीएल, ट्राईएसवाईसीएल और नियोएसवाईसीएल एसवाईसीएल के मुख्य इम्प्लीमेंटेशन हैं। डेवलपमेंट में नेक्स्ट टारगेट भविष्य के एसवाईसीएल 202x में सी++20 का सपोर्ट है।[9]

इम्प्लीमेंटेशन

  • डीपीसी++: (डेटा पैरेलल सी++) एलएलवीएम और वनएपीआई के लिए एसवाईसीएल प्रस्तुत करने के लिए इंटेल का ओपन सोर्स प्रोजेक्ट है। सी++17 और एसवाईसीएल 2020 के साथ सी++20 के भाग इस कंपाइलर फ्रेमवर्क का आधार हैं।[10][11]
  • कंप्यूटसीपीपी: कम्युनिटी वर्जन के साथ फर्म कोडप्ले का एसवाईसीएल 1.2.1 कन्फॉर्मॅट फ्रेमवर्क है। [12][13]
  • एडेप्टिवसीपीपी (फोर्मेली हिपएसवाईसीएल और ओपन एसवाईसीएल): इमेज या ओपनसीएल इंटरऑप के बिना इनकम्पलीट 1.2.1 सपोर्ट, आंशिक रूप से एसवाईसीएल 2020, आरओसीएम (एएमडी), सीयूडीए (एनवीडिया), ओपनएमपी (सीपीयू) और लेवल जीरो (इंटेल) का सपोर्ट करता है।[14][15]
  • ट्राईएसवाईसीएल: सी++20, ओपनएमपी और ओपनसीएल पर आधारित, स्लो डेवलपमेंट, इनकम्पलीट, डीपीसी++ के टॉप पर आधारित वर्जन है। [16]
  • नियोएसवाईसीएल: एसवाईसीएल 1.2.1 लगभग पूर्ण हो चुका है, एचपीसी एसएक्स-अरोड़ा त्सुबासा के लिए, इमेज सपोर्ट जैसी कोई ओपनसीएल स्पेसिफिक फीचर नहीं हैं।[17][18]
  • एसवाईसीएल-जीटी्स: ओपनसीएल 1.2+ के लिए, सी++11 सपोर्ट पूर्ण से अधिक दूर, कोई एक्चुअल डेवलपमेंट नहीं हैं।[19]
  • सिल्कन एक्सपेरिमेंटल स्टेट में वल्कन डिवाइस के लिए एसवाईसीएल का इम्प्लीमेंटेशन है।[20]
  • पॉलीजिस्ट के पास एमएलआईआर के माध्यम से एसवाईसीएल को कोम्पिलिंग करने वाला फ़ोर्क है[21] जो इंटोन कंपनी द्वारा समर्थित है।[22]

सॉफ़्टवेयर

  • ग्रोमैक: एसवाईसीएल 2020 ग्रोमैक वर्जन 2021 का भाग है।[23]
  • आईएसओ 26262 के सपोर्ट के साथ ऑटोनोमस ड्राइविंग के लिए ऑटोमोटिव इंडस्ट्री में उपयोग किया जाता है।[24]

रिसोर्स

ख्रोनोस एसवाईसीएल रिसोर्स की लिस्ट बनाए रखता है।[25] कोडप्ले एसवाईसीएल इकोसिस्टम पर अन्य जानकारी और न्यूज़ के साथ वेबसाइट sycl.tech पर ट्यूटोरियल भी प्रदान करता है।

लाइसेंस

विनिर्देशन के निर्माण के लिए सोर्स फ़ाइलें, जैसे मेकफ़ाइल्स और कुछ स्क्रिप्ट, एसवाईसीएल हेडर और एसवाईसीएल कोड सैंपल अपाचे 2.0 लाइसेंस के अंतर्गत हैं।[26] लाइसेंस का विवरण https://www.apaसीhe.org/liसीenses/LIसीENSE-2.0.html यहां है।

अन्य एपीआई के साथ कम्पेरिजन

ओपन स्टैण्डर्ड एसवाईसीएल और ओपनसीएल, Nvidia के प्रोप्राइटरी स्टैक सीयूडीए के प्रोग्रामिंग मॉडल और एएमडी ओपन-सोर्स स्टैक द्वारा सपोर्टेड ओपन-सोर्स स्टैक आरओसीएम के एचआईपी के समान हैं।

ख्रोनोस ग्रुप एरिया में, ओपनसीएल और वल्कन (एपीआई) लो-लेवल नॉन-सिंगल सोर्स एपीआई हैं और एसवाईसीएल हाई-लेवल सिंगल-सोर्स सी++ ईडीएसएल एम्बेडेड डोमेन-स्पेसिफिक लैंग्वेज (ईडीएसएल) है।

सीयूडीए

कम्पेरिजन रूप से, सीयूडीए का सिंगल-सोर्स सी++ एम्बेडेड डोमेन-स्पेसिफिक लैंग्वेज वर्जन, जिसे वास्तव में सीयूडीए रनटाइम एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस नाम दिया गया है, कुछ लिमिट तक एसवाईसीएल के समान है। किंतु वास्तव में सीयूडीए का कम ज्ञात नॉन सिंगल-सोर्स वर्जन है जिसे ओपनसीएल के समान सीयूडीए ड्राइवर एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस कहा जाता है, और उदाहरण के लिए सीयूडीए रनटाइम एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस इम्प्लीमेंटेशन द्वारा उपयोग किया जाता है।

एसवाईसीएल सी++ एएमपी फीचर का विस्तार करता है, जिससे प्रोग्रामर को सीयूडीए के अपोजिट में (सीयूडीए 6 में यूनिफाइड मेमोरी के प्रारंभ से पहले) बफ़र्स और एक्सेसर्स का उपयोग करके होस्ट और डिवाइस के मध्य डेटा को स्पष्ट रूप से ट्रांसफरिंग करने से रिलीविंग मिलती है। किंतु एसवाईसीएल 2020 से प्रारंभ करके, सीयूडीए में यूनिफाइड मेमोरी के समान लोअर-लेवल के प्रोग्रामिंग मॉडल का उपयोग करने के लिए बफ़र्स और एक्सेसर्स के अतिरिक्त यूएसएम का उपयोग करना भी संभव है।

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

सी++ एएमपी और सीयूडीए के विपरीत, एसवाईसीएल बिना किसी सी++ एक्सटेंशन के प्योर सी++ ईडीएसएल है, जो बिना किसी स्पेसिफिक कंपाइलर के प्योर रनटाइम पर अल्लोविंग बेसिक सीपीयू इम्प्लीमेंटेशन की अनुमति देता है। यह किसी एप्लिकेशन को डीबग करने या किसी नए आर्किटेक्चर के लिए प्रोटोटाइपिंग के लिए अधिक उपयोगी है, बिना आर्किटेक्चर और कंपाइलर अभी तक उपलब्ध नहीं है।

सीयूडीए बैकएंड को टारगेट करने वाले कम से कम 3 ज्ञात एसवाईसीएल इम्प्लीमेंटेशन हैं।

आरओसीएम हिप

आरओसीएम हिप को Nvidia जीपीयू, एएमडी जीपीयू और x86 सीपीयू को टारगेट करने वाले सीयूडीए के क्लोन के रूप में देखा जा सकता है। इस प्रकार आरओसीएम एचआईपी एसवाईसीएल के कम्पेर्ड में लोअर लेवल एपीआई है और सीयूडीए के साथ कम्पेरिजन में उल्लिखित अधिकांश टिप्पणियाँ प्रारम्भ होती हैं।

आरओसीएम हिप में एसवाईसीएल से कुछ सिमिलरटीज हैं, इस अर्थ में कि यह विभिन्न वेंडर्स (एएमडी और Nvidia) और एक्सेलरेटर टाइप्स (जीपीयू और सीपीयू) को टारगेट कर सकता है। किंतु एसवाईसीएल बैकएंड की अवधारणा के साथ एप्लिकेशन में संभावित रूप से एक ही समय में किसी भी टाइप के एक्सेलरेटर और किसी भी वेंडर को इम्प्लीमेंटेशन के अनुसार टारगेट कर सकता है। एसवाईसीएल भी प्योर सी++ है जबकि हिप सीयूडीए से इनहेरिटेड कुछ एक्सटेंशन का उपयोग करता है, जो किसी भी सीपीयू को टारगेट करने के लिए नार्मल सी++ कंपाइलर का उपयोग करने से प्रिवेंट करता है।

एचआईपी बैकएंड को टारगेट करने वाले एसवाईसीएल के कम से कम 2 ज्ञात इम्प्लीमेंटेशन हैं, वनएपीआई डीपीसी++ और ओपन एसवाईसीएल हिप पर ओपन एसवाईसीएल इम्प्लीमेंटेशन, , एसवाईसीएल प्रोग्रामिंग को सीयूडीए और हिप में ऐड करता है।

अन्य प्रोग्रामिंग मॉडल

एसवाईसीएल में कोक्कोस प्रोग्रामिंग मॉडल से कई समानताएं हैं,[27] जिसमें ओपाके मल्टी-डायमेंशनल ऐरे ऑब्जेक्ट (एसवाईसीएल बफ़र्स और कोक्कोस एरेज़) का उपयोग, पैरेलल एक्सेक्यूशन के लिए मल्टी-डायमेंशनल रेंजस और रिडक्शन (एसवाईसीएल 2020 में जोड़ा गया) सम्मिलित है। कोक्कोस कम्युनिटी की प्रतिक्रिया के उत्तर में एसवाईसीएल 2020 में कई फीचर ऐड किये गए।

यह भी देखें

सन्दर्भ

  1. Keryell, Ronan (17 November 2019). "SYCL: A Single-Source C++ Standard for Heterogeneous Computing" (PDF). Khronos.org. Retrieved 26 September 2023.
  2. Keryell, Ronan. "SYCL का मतलब". GitHub. Retrieved 5 February 2021.
  3. Khronos Group (19 March 2014). "Khronos Releases SYCL 1.2 Provisional Specification". Khronos. Retrieved 20 August 2017.
  4. Khronos Group (11 May 2015). "Khronos Releases SYCL 1.2 Final Specification". Khronos. Retrieved 20 August 2017.
  5. Khronos Group (6 December 2017). "The Khronos Group Releases Finalized SYCL 1.2.1". Khronos. Retrieved 12 December 2017.
  6. Khronos Group (18 April 2016). "Khronos Releases OpenCL 2.2 Provisional Specification with OpenCL C++ Kernel Language". Khronos. Retrieved 18 September 2017.
  7. Khronos Group (9 February 2021). "Khronos Releases SYCL 2020 Specification". Khronos. Retrieved 22 February 2021.
  8. Khronos Group (30 June 2020). "Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification". Khronos. Retrieved 4 December 2020.
  9. https://www.iwocl.org/wp-content/uploads/k04-iwocl-syclcon-2021-wong-slides.pdf[bare URL PDF]
  10. https://www.iwocl.org/wp-content/uploads/k01-iwocl-syclcon-2021-reinders-slides.pdf[bare URL PDF]
  11. "Compile Cross-Architecture: Intel® oneAPI DPC++/C++ Compiler".
  12. "Home - ComputeCpp CE - Products - Codeplay Developer".
  13. "Guides - ComputeCpp CE - Products - Codeplay Developer".
  14. "AdaptiveCpp (formerly known as hipSYCL / Open SYCL)". GitHub. 4 July 2023.
  15. "हिपएसवाईसीएल सुविधा समर्थन". GitHub. 4 July 2023.
  16. "ट्राईएसवाईसीएल". GitHub. 6 January 2022.
  17. Ke, Yinan; Agung, Mulya; Takizawa, Hiroyuki (2021). "NeoSYCL: A SYCL implementation for SX-Aurora TSUBASA". एशिया-प्रशांत क्षेत्र में उच्च प्रदर्शन कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन. pp. 50–57. doi:10.1145/3432261.3432268. ISBN 9781450388429. S2CID 231597238.
  18. Ke, Yinan; Agung, Mulya; Takizawa, Hiroyuki (2021). "NeoSYCL: A SYCL implementation for SX-Aurora TSUBASA". एशिया-प्रशांत क्षेत्र में उच्च प्रदर्शन कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन. pp. 50–57. doi:10.1145/3432261.3432268. ISBN 9781450388429. S2CID 231597238.
  19. "Sycl-GTX". GitHub. 10 April 2021.
  20. https://www.iwocl.org/wp-content/uploads/14-iwocl-syclcon-2021-thoman-slides.pdf[bare URL PDF]
  21. "बहुपत्नीवादी". GitHub. 25 February 2022.
  22. "इंटोन". 25 February 2022.
  23. https://www.iwocl.org/wp-content/uploads/k03-iwocl-syclcon-2021-trevett-updated.mp4.pdf[bare URL PDF]
  24. https://www.iwocl.org/wp-content/uploads/20-iwocl-syclcon-2021-rudkin-slides.pdf[bare URL PDF]
  25. "एसवाईसीएल संसाधन". khronos.org. Khronos group.
  26. "एसवाईसीएल ओपन सोर्स विशिष्टता". GitHub. 10 January 2022.
  27. Hammond, Jeff R.; Kinsner, Michael; Brodman, James (2019). "A comparative analysis of Kokkos and SYCL as heterogeneous, parallel programming models for C++ applications". ओपनसीएल पर अंतर्राष्ट्रीय कार्यशाला की कार्यवाही. pp. 1–2. doi:10.1145/3318170.3318193. ISBN 9781450362306. S2CID 195777149.{{cite book}}: CS1 maint: date and year (link)