आरओसीएम
| Developer(s) | AMD |
|---|---|
| Initial release | November 14, 2016 |
| Stable release | 5.3.0
/ October 4, 2022[1] |
| Repository | Meta-repository github |
| Written in | C, C++, Python, Fortran, Julia |
| Middleware | HIP |
| Engine | AMDgpu kernel driver, HIPCC, a LLVM-based compiler |
| Operating system | Linux |
| Platform | Supported GPUs |
| Predecessor | Close to metal, Stream, HSA |
| Size | <2 GiB |
| Type | GPGPU libraries and APIs |
| License | Libre |
| Website | www |
आरओसीएम[2] ग्राफ़िक्स प्रोसेसिंग युनिट (जीपीयू) प्रोग्रामिंग के लिए ऍड्वांस्ड माइक्रो डिवाइसेज़ (एएमडी) सॉफ्टवेयर स्टैक है। आरओसीएम कई क्षेत्रों में फैला हुआ है: जनरल-पर्पस कंप्यूटिंग ऑन ग्राफिक्स प्रोसेसिंग यूनिट (जीपीजीपीयू), हाई-परफॉरमेंस कंप्यूटिंग (एचपीसी), हेटेरोगेनोस कंप्यूटिंग है। यह कई प्रोग्रामिंग मॉडल प्रदान करता है: एचआईपी (जीपीयू-कर्नेल-आधारित प्रोग्रामिंग), ओपनएमपी/मैसेज पासिंग इंटरफ़ेस(एमपीआई) निर्देश-आधारित प्रोग्रामिंग), ओपनसीएल है।
आरओसीएम मुफ़्त, और मुक्त स्रोत सॉफ्टवेयर है (जीपीयू बाइनरी ब्लॉब को छोड़कर[3]), यह विभिन्न अनुज्ञप्ति के अनुसार वितरित किया जाता है।
पृष्ठभूमि
एटीआई टेक्नोलॉजीज/एएमडी से पहला जीपीजीपीयू सॉफ्टवेयर स्टैक मेटल के करीब था, जो एएमडी स्ट्रीम प्रोसेसर सॉफ्टवेयर डेवलपमेंट किट बन गया।
आरओसीएम को 2016 के आसपास [4] बोल्ट्ज़मैन इनिशिएटिव (आरओसीएम) के साथ प्रारंभ किया गया था।[5] आरओसीएम स्टैक पिछले एएमडी जीपीयू स्टैक पर बनाता है, कुछ उपकरण जीपीयूओपन, अन्य हेटेरोगेनोस सिस्टम आर्किटेक्चर (एचएसए) पर वापस जाते हैं।
हेटेरोगेनोस सिस्टम आर्किटेक्चर
एचएसए का उद्देश्य मध्य-स्तर, हार्डवेयर-अज्ञेयवादी मध्यवर्ती प्रतिनिधित्व का उत्पादन करना था, जो उपयुक्त अंतिम रूप का उपयोग करके अंतिम हार्डवेयर (जीपीयू, एफपीजीए ...) के लिए जेआईटी-संकलित किया जा सकता है। आरओसीएम के लिए यह दृष्टिकोण हटा दिया गया था: अब यह एलएलवीएम का उपयोग करके केवल जीपीयू कोड बनाता है, और इसका एलएलवीएम बैकएंड जो उजान किया गया था,[6] चूंकि एलएलवीएम एमएलआईआर के साथ इस तरह के संवर्धित प्रतिरूपकता पर अभी भी शोध चल रहा है।[7]
माइक्रोसॉफ्ट एएमपी C ++ 1.2
प्रोग्रामिंग क्षमता
आरओसीएम स्टैक के रूप में कर्नेल ड्राइवर से लेकर एंड-यूज़र अनुप्रयोग तक होता है। एएमडी में एएमडी जीसीएन हार्डवेयर के बारे में [8] और आरओसीएम प्रोग्रामिंग[9] इसके लर्निंग पोर्टल के माध्यम से परिचयात्मक वीडियो हैं।[10]
स्टैक और आरओसीएम/एचआईपी प्रोग्रामिंग के बारे में सबसे अच्छे तकनीकी परिचयों में से एक, आज तक रेडिट पर पाया जाना बाकी है।[11]
उच्च स्तरीय प्रोग्रामिंग
एचआईपी प्रोग्रामिंग
एचआईपी (एचसीसी) कर्नेल भाषा
मेमोरी आवंटन
नुमा
हेटेरोगेनोस मेमोरी मॉडल और साझा वर्चुअल मेमोरी
आरओसीएम कोड ऑब्जेक्ट्स
कंप्यूट/ग्राफिक्स इंटरऑप
निम्न स्तर की प्रोग्रामिंग
हार्डवेयर अवलंब
आरओसीएम मुख्य रूप से असतत पेशेवर जीपीयू पर लक्षित है,[1], लेकिन अनौपचारिक अवलंब में वेगा- वर्ग और आरडीएनए2 उपभोक्ता जीपीयू सम्मिलित हैं।
एएमडी त्वरित प्रसंस्करण इकाई (एपीयू) सक्षम हैं, लेकिन आधिकारिक रूप से समर्थित नहीं हैं। आरओसीएम के कार्यशील होने में सम्मिलित है।[12]
प्रोफेशनल-ग्रेड जीपीयू
प्रोजुमर राडॉन प्रो के साथ एएमडी इंस्टिंक्ट प्रथम श्रेणी के आरओसीएम नागरिक हैं: वे ज्यादातर पूर्ण अवलंब देखते हैं।
जनवरी 2022 तक राडॉन VII (जीसीएन 5 - वेगा) एकमात्र उपभोक्ता-ग्रेड जीपीयू है जिसे अपेक्षाकृत समान अवलंब प्राप्त है।
उपभोक्ता-ग्रेड जीपीयू
| जीपीयू श्रृंखला का नाम | दक्षिण | समुद्र | ज्वालामुखी | आर्कटिक | वेगा | नवी 1एक्स | नवी 2एक्स | |
|---|---|---|---|---|---|---|---|---|
| विमोचित | जनवरी 2012 | सितंबर 2013 | जून 2015 | जून 2016 | जून 2017 | जुलाई 2019 | नवंबर 2020 | |
| मार्केटिंग का नाम | राडेन एचडी 7000 | राडेन आरएक्स 200 | राडेन आरएक्स 300 | राडेन आरएक्स 400/500 | राडॉन आरएक्स वेगा/राडॉन VII(7 एनएम) | राडेन आरएक्स 5000 | राडॉन आरएक्स 6000 | |
| एएमडी समर्थन | ||||||||
| निर्देश समुच्चय | जीसीएन निर्देश सेट | आरडीएनए निर्देश सेट | ||||||
| माइक्रोआर्किटेक्चर | जीसीएन 1st gen | जीसीएन 2nd gen | जीसीएन 3rd gen | जीसीएन 4th gen | जीसीएन 5th gen | आरडीएनए | आरडीएनए 2 | |
| प्रकार | एकीकृत शेडर मॉडल | |||||||
| आरओसीएम[13] | ||||||||
| ओपनसीएल | 1.2 (लिंक्स पर: 1.1 (कोई छवि समर्थन नहीं) मेसा 3डी के साथ) | 2.0 (Win7+ पर एड्रेनालाईन ड्राइवर)
(लिंक्स पर: 1.1 (कोई छवि समर्थन नहीं) मेसा 3डी के साथ, 2.0 एडीएमडी ड्राइवरों या एमडी आरओसीएम के साथ) |
2.0 | 2.1[14] | ||||
| वल्कन | 1.0 (Win 7+ or मेसा 17+) |
1.2 (एड्रेनालिन 20.1, लिंक्स मेसा 3डी 20.0) | ||||||
| शेडर मॉडल | 5.1 | 5.1 6.3 |
6.4 | 6.5 | ||||
| ओपनजीएल | 4.6 (लिंक्स पर: 4.6 (मेसा 3डी 20.0)) | |||||||
| डायरेक्ट 3 डी | 11 (11_1) 12 (11_1) |
11 (12_0) 12 (12_0) |
11 (12_1) 12 (12_1) |
11 (12_1) 12 (12_2) | ||||
/drm/amdgpu[lower-alpha 1]
|
Experimental[15] | |||||||
- ↑ DRM (Direct Rendering Manager) is a component of the Linux kernel.
सॉफ्टवेयर पारिस्थितिकी तंत्र
सीखने के संसाधन
एएमडी आरओसीएम उत्पाद प्रबंधक ने स्टैक का दौरा किया था।[16]
तृतीय-पक्ष एकीकरण
स्टैक के मुख्य उपभोक्ता मशीन लर्निंग और हाई-परफॉरमेंस कंप्यूटिंग/जीपीजीपीयू अनुप्रयोग हैं।
मशीन लर्निंग
विभिन्न डीप लर्निंग फ्रेमवर्क में आरओसीएम बैकएंड होता है:[17]
- पाइटौर्च
- टेंसरफ्लो
- ओएनएक्स
- अपाचे एमएक्सनेट
- क्यूपी[18]
- एमआईओपेन
- कैफ (सॉफ्टवेयर)
- इरी (जो एलएलवीएम मल्टी-लेवल इंटरमीडिएट रिप्रेजेंटेशन (एमएलआईआर) का उपयोग करता है)
सुपरकंप्यूटिंग
आरओसीएम टॉप500 में महत्वपूर्ण कर्षण प्राप्त कर रहा है।[19]आरओसीएम का उपयोग एक्सास्केल सुपरकंप्यूटर एल कैपिटन (सुपरकंप्यूटर)[20][21] और फ्रंटियर (सुपरकंप्यूटर) के साथ किया जाता है।
कुछ संबंधित सॉफ़्टवेयर एएमडी इन्फिनिटी हब पर उपलब्ध हैं।
अन्य त्वरण और ग्राफिक्स इंटरऑपरेशन
संस्करण 3.0 के अनुसार, ब्लेंडर (सॉफ्टवेयर) अब अपने रेंडरिंग (कंप्यूटर ग्राफिक्स) चक्रों के लिए एचआईपी कंप्यूट कर्नेल का उपयोग कर सकता है।[22]
अन्य भाषाएँ
जूलिया
जूलिया (प्रोग्रामिंग भाषा) में एएमडीजीपीयू.जेएल पैकेज है,[23] जो एलएलवीएम के साथ एकीकृत होता है और आरओसीएम स्टैक के घटकों का चयन करता है। एचआईपी के माध्यम से कोड संकलित करने के अतिरिक्त, एएमडीजीपीयू.जेएल सीधे एलएलवीएम आईआर उत्पन्न करने के लिए जूलिया के कंपाइलर का उपयोग करता है, जिसे बाद में एलएलवीएम द्वारा देशी डिवाइस कोड उत्पन्न करने के लिए उपयोग किया जाता है। एएमडीजीपीयू.जेएल डिवाइस पर नेटिव कोड अभिभारण करने और इसे निष्पादित करने के लिए आरओसीआर के एचएसए कार्यान्वयन का उपयोग करता है, ठीक उसी तरह जिस तरह एचआईपी अपने स्वयं के जनरेट किए गए डिवाइस कोड को लोड करता है।
एएमडीजीपीयू.जेएल भी आरओसीएम के रॉकब्लास (ब्लास के लिए), रॉकरैंड (यादृच्छिक संख्या जनन के लिए), और आरओसीके एफएफटी (एफएफटी के लिए) के साथ एकीकरण का अवलंब करता है। रोसाल्यूशन, रोको सॉल्वर, एमआईओपेन, और कुछ अन्य आरओसीएम लाइब्रेरी के साथ भविष्य के एकीकरण की योजना बनाई गई है।
सॉफ्टवेयर वितरण
आधिकारिक
आरओसीएम सॉफ्टवेयर वर्तमान में दर्जनों सार्वजनिक गिटहब रिपॉजिटरी में फैला हुआ है। मुख्य सार्वजनिक [https://github.com/radeonopencompute/rocm मेटा-रिपॉजिटरी] के भीतर, प्रत्येक अधिकारी के लिए एक्सएमएल मेनिफ़ेस्ट है रिलीज़: जीआईटी-रेपो का उपयोग करना, जीआईटी के शीर्ष पर निर्मित संस्करण नियंत्रण उपकरण, स्टैक के साथ स्थानीय रूप से समकालिक करने का अनुशंसित तरीका है।[24]
आरओसीएम 5.1 की रिलीज आसन्न है, संभवत: फरवरी के मध्य में हर महीने मामूली रिलीज दी जाती है।[17]
| स्टैक एरिया | सार्वजनिक गिटहब संगठन |
|---|---|
| निम्न-स्तर (अधिकतर) | https://github.com/radeonopencompute |
| मध्य स्तर (ज्यादातर) | https://github.com/rocm-developer-टूल |
| उच्च-स्तरीय (ज्यादातर) | https://github.com/rocmsoftwareplatform/ |
एएमडी आरओसीएम के लिए कंटेनरीकृत अनुप्रयोगों का वितरण विशेष रूप से एएमडी इन्फिनिटी हब के अनुसार एकत्र किए गए वैज्ञानिक अनुसंधान अनुप्रयोगों के लिए शुरू करता है।[25]
एएमडी विभिन्न लिनक्स वितरणों के अनुरूप पैकेज खुद को वितरित करता है।
तृतीय-पक्ष
तृतीय-पक्ष पारिस्थितिकी तंत्र पैकेजिंग आरओसीएम बढ़ रहा है।
लिनक्स वितरण आधिकारिक तौर पर (मूल रूप से) आरओसीएम की पैकेजिंग कर रहे हैं, उन्नति की विभिन्न डिग्री के साथ: आर्क,[26] जेंटू,[27] डेबियन और फेडोरा,[28] जीएनयू गुइक्स, निक्सओएस हैं।
स्पैक पैकेज हैं।[29]
कंपोनेंट्स
कर्नेल-स्पेस कंपोनेंट है, आरओसीके, और बाकी - स्टैक में लगभग सौ कंपोनेंट्स हैं - जो यूजर-स्पेस मॉड्यूल से बना है।
अनौपचारिक टाइपोग्राफ़िक नीति का उपयोग करना है: निम्न-स्तरीय लाइब्रेरी के लिए अपरकेस आरओसी लोअरकेस अनुसरण करना, अर्थात आरओसीटी, और इसके विपरीत उपयोगकर्ता-सामना करने वाले लाइब्रेरी के लिए, अर्थात रॉकब्लास है।[30]
एएमडी एलएलवीएम समुदाय के साथ सक्रिय विकास कर रहा है, लेकिन अपस्ट्रीमिंग तात्कालिक नहीं है, और जनवरी 2022 तक, अभी भी पिछड़ रहा है।[31] एएमडी अभी भी आधिकारिक तौर पर विभिन्न एलएलवीएम फोर्क्स को पैकेज करता है[32][33][7]उन हिस्सों के लिए जो अभी तक उजान नहीं हुए हैं - कंपाइलर ऑप्टिमाइज़ेशन स्वामित्व, डीबग अवलंब, ओपनएमपी ऑफ़लोडिंग रहने के लिए नियत हैं ...
निम्न स्तर
आरओसीके - कर्नेल ड्राइवर
आरओसीएम - डिवाइस लाइब्रेरी
सपोर्ट लाइब्रेरी एलएलवीएम बिटकोड के रूप में लागू किया गया हैं। ये गणित ऑपरेशंस, एटॉमिक्स, प्रारंभ पैरामीटर्स के लिए प्रश्नों, ऑन-डिवाइस कर्नेल प्रारंभ आदि के लिए विभिन्न यूटिलिटीज और फंक्शन प्रदान करते हैं।
आरओसीटी - थंक
थंक ढेर में जाने वाली सभी सोच और कतार के लिए ज़िम्मेदार है।
आरओसीआर - रनटाइम
आरओसी रनटाइम आरओसी कॉमन लैंग्वेज रनटाइम से इस मायने में अलग है कि यह एक ही नहीं है।
आरओसीएम - कंपाइलर सपोर्ट
आरओसीएम कोड ऑब्जेक्ट मैनेजर एलएलवीएम इंटरमीडिएट प्रतिनिधित्व के साथ अन्योन्यकारी करने के प्रभारी हैं।
मध्य स्तर
आरओसीक्लर सामान्य भाषा रनटाइम
सामान्य भाषा रनटाइम अप्रत्यक्ष स्तर है जो विंडोज़ पर लिनक्स और पाल पर आरओसीआर को कॉल्स को अनुकूलित करती है। यह एचएसएआईएल-कंपाइलर जैसे विभिन्न कंपाइलरों के बीच रूट करने में सक्षम होता था। यह अब ऊपरी अप्रत्यक्ष परतों (एचआईपी, ओपनसीएल) द्वारा अवशोषित किया जा रहा है।
ओपनसीएल
आरओसीएम अपने इंस्टाल करने योग्य क्लाइंट ड्राइवर आईसीडी लोडर और ओपनसीएल को [34] इम्प्लीमेंटेशन बुंदलेङ टुगेदर शिप करता है। जनवरी 2022 तक, आरओसीएम 4.5.2 ओपनसीएल 2.2 को शिप करता है, और प्रतिस्पर्धा में पिछड़ रहा है।[35]
हिप - पोर्टेबिलिटी के लिए हेटेरोगेनोस इंटरफ़ेस
इसके जीपीयू के लिए एएमडी कार्यान्वयन को एचआईपीएएमडी कहा जाता है। ज्यादातर प्रदर्शन उद्देश्यों के लिए सीपीयूकार्यान्वयन भी है।
एचआईपीसीसी
एचआईपी एक `एचआईपीसीसी` कंपाइलर बनाता है जो या तो क्लैङ को लपेटता है और एलएलवीएम खुले एएमडीजीपीयू बैकएंड के साथ संकलित करता है, या एनवीडिया क्यूडा कंपाइलर पर पुनर्निर्देशन करता है।[36]
एचआईपीआईएफवाई
एचआईपीआईएफवाई एक सोर्स-टू-सोर्स कंपाइलिंग टूल है, यह क्यूडा को एचआईपी और विपरीत में बदलता है, या तो क्लैंग-बेस्ड टूल या सीड-जैसे पर्ल का उपयोग करता है।
जीपीयूएफओआरटी
एचआईपीआईएफवाई की तरह, जीपीयूएफओआरटी एक टूल है जो स्रोत कोड को अन्य तीसरी जनन के भाषा स्रोतों में संकलित करता है, जिससे उपयोगकर्ता क्यूडा फोरट्रान से एचआईपी फोरट्रान में प्रवास कर सकते हैं। यह अनुसंधान परियोजनाओं के प्रदर्शनों की सूची में भी है, इससे भी ज्यादा भी है।[37]
उच्च स्तर
आरओसीएम उच्च-स्तरीय लाइब्रेरीको सामान्यतः यंत्र अधिगम फ्रेमवर्क जैसे अनुप्रयोग सॉफ़्टवेयर द्वारा सीधे उपयोग किया जाता है। निम्नलिखित में से अधिकांश लाइब्रेरी सामान्य मैट्रिक्स गुणा (जीईएमएम) श्रेणी में हैं, जिसमें जीपीयू आर्किटेक्चर उत्कृष्ट है।
इनमें से अधिकांश उपयोगकर्ता-सामना करने वाले लाइब्रेरी दोहरे रूप में आते हैं: अप्रत्यक्ष स्तर के लिए हिप जो एनवीडिया हार्डवेयर को रूट कर सकता है, और एएमडी कार्यान्वयन के लिए आरओसी को रूट कर सकता है।[38]
रोकब्लास / हिपब्लास
रॉकब्लास और [2] उच्च-स्तरीय लाइब्रेरीमें केंद्रीय हैं, यह बुनियादी रेखीय बीजगणित उपप्रोग्राम के लिए एएमडी कार्यान्वयन है। यह निजी तौर पर लाइब्रेरी टेन्साइल का उपयोग करता है।
रॉक्सोल्वर / हिप्सोल्वर
लाइब्रेरीकी यह जोड़ी आरओसीएम के लिए लैपैक कार्यान्वयन का गठन करती है और इसे रॉकब्लास से मजबूती से जोड़ा जाता है।
उपयोगिताएँ
- आरओसीएम डेवलपर टूल: डिबग, ट्रेसर, प्रोफाइलर, सिस्टम मैनेजमेंट इंटरफेस, वैलिडेशन सूट, क्लस्टर मैनेजमेंट।
- जीपीयूओपन टूल: जीपीयू विश्लेषक, मेमोरी विज़ुअलाइज़र...
- बाहरी उपकरण: रैडॉनटॉप (पाठ-आधारित उपयोगकर्ता इंटरफ़ेस अवलोकन)
प्रतिस्पर्धियों के साथ तुलना
आरओसीएम जीपीयू कंप्यूटिंग के उद्देश्य से समान स्टैक का प्रतियोगी है: एनवीडिया सीयूडीए और वनएपीआई (कंप्यूट त्वरण)।
एनवीडिया क्यूडा
क्यूब्लास और ऐसी उच्च-स्तरीय लाइब्रेरी तक एनवीडिया क्लोज-सोर्स है।
एनवीडिया क्यूडा कम्पाइलर (एनवीसीसी) के रूप में क्लैंग फ्रंटएंड और इसके समानांतर थ्रेड निष्पादन (पीटीएक्स) एलएलवीएम जीपीयू बैकएंड को वेंडर करता है।
इसके ऊपर एक ओपन-सोर्स लेयर है, उदाहरण के लिए रैपिड्स है।
इंटेल वनएपीआई
यह भी देखें
- एएमडी सॉफ्टवेयर - एएमडी के ड्राइवरों, एपीआई और विकास प्रयासों का एक सामान्य अवलोकन।
- जीपीयूओपन - एएमडी का पूरक ग्राफ़िक्स स्टैक
- एएमडी राडॉन सॉफ्टवेयर - एएमडी का सॉफ्टवेयर वितरण चैनल
संदर्भ
- ↑ "ROCm 5.3 release". GitHub. October 4, 2022. Retrieved October 10, 2022.
- ↑ "Question: What does ROCm stand for? · Issue #1628 · RadeonOpenCompute/ROCm". Github.com. Retrieved January 18, 2022.
- ↑ "Debian -- Details of package firmware-amd-graphics in buster". Packages.debian.org. Retrieved January 18, 2022.
- ↑ "AMD @ SC16: Radeon Open Compute Platform (ROCm) 1.3 Released, Boltzmann Comes to Fruition". anandtech.com. Retrieved January 19, 2022.
- ↑ "AMD @ SC15: Boltzmann Initiative Announced - C++ and CUDA Compilers for AMD GPUs". anandtech.com. Retrieved January 19, 2022.
- ↑