आरओसीएम

आरओसीएम ग्राफ़िक्स प्रोसेसिंग युनिट (जीपीयू) प्रोग्रामिंग के लिए एक उन्नत माइक्रो डिवाइसेस (एएमडी) सॉफ्टवेयर स्टैक है। ROCm कई क्षेत्रों में फैला हुआ है: ग्राफिक्स प्रोसेसिंग यूनिट (GPGPU), उच्च प्रदर्शन कंप्यूटिंग (HPC), विषम कंप्यूटिंग पर सामान्य-उद्देश्य कंप्यूटिंग। यह कई प्रोग्रामिंग मॉडल प्रदान करता है: #HIP_-_Heterogeneous_Interface_for_Portability (कर्नेल की गणना करें|GPU-कर्नेल-आधारित प्रोग्रामिंग), OpenMP/मैसेज संदेश पासिंग इंटरफ़ेसMPI) (निर्देश (प्रोग्रामिंग)|निर्देश-आधारित प्रोग्रामिंग), OpenCL।

ROCm मुफ़्त, लिबरे और खुला स्रोत सॉफ्टवेयर है (GPU बाइनरी ब्लॉब को छोड़कर ), यह विभिन्न लाइसेंस के तहत वितरित किया जाता है।

पृष्ठभूमि
एटीआई टेक्नोलॉजीज/एएमडी से पहला जीपीजीपीयू सॉफ्टवेयर स्टैक मेटल के करीब था, जो एएमडी स्ट्रीम प्रोसेसर # सॉफ्टवेयर डेवलपमेंट किट बन गया।

आरओसीएम को 2016 के आसपास लॉन्च किया गया था GPUOpen#Radeon Open Compute (ROCm) के साथ। ROCm स्टैक पिछले AMD GPU स्टैक पर बनाता है, कुछ उपकरण GPUOpen पर वापस जाते हैं, अन्य विषम प्रणाली वास्तुकला (HSA) पर।

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

प्रोग्रामिंग क्षमता
ROCm स्टैक के रूप में कर्नेल ड्राइवर से लेकर एंड-यूज़र एप्लिकेशन तक होता है। एएमडी में एएमडी जीसीएन हार्डवेयर के बारे में परिचयात्मक वीडियो हैं, और आरओसीएम प्रोग्रामिंग इसके लर्निंग पोर्टल के माध्यम से। स्टैक और ROCm/HIP प्रोग्रामिंग के बारे में सबसे अच्छे तकनीकी परिचयों में से एक, आज तक Reddit पर पाया जाना बाकी है।

हार्डवेयर समर्थन
ROCm मुख्य रूप से असतत पेशेवर GPU पर लक्षित है, लेकिन, लेकिन अनौपचारिक समर्थन में वेगा-परिवार और शामिल हैं RDNA2 उपभोक्ता जीपीयू।

AMD Accelerated Processing Unit (APU) सक्षम हैं, लेकिन आधिकारिक रूप से समर्थित नहीं हैं। ROCm के कार्यशील होने में शामिल है।

प्रोफेशनल-ग्रेड जीपीयू
prosumer Radeon Pro के साथ AMD Instinct Accelerators प्रथम श्रेणी के ROCm नागरिक हैं: वे ज्यादातर पूर्ण समर्थन देखते हैं।

जनवरी 2022 तक राडॉन VII (GCN 5 - वेगा) एकमात्र उपभोक्ता-ग्रेड GPU है जिसे अपेक्षाकृत समान समर्थन प्राप्त है।

सीखने के संसाधन
एएमडी आरओसीएम उत्पाद प्रबंधक ने स्टैक का दौरा किया।

तृतीय-पक्ष एकीकरण
स्टैक के मुख्य उपभोक्ता मशीन लर्निंग और उच्च-प्रदर्शन कंप्यूटिंग/GPGPU अनुप्रयोग हैं।

मशीन लर्निंग
विभिन्न डीप लर्निंग फ्रेमवर्क में ROCm बैकएंड होता है:
 * PyTorch
 * टेंसरफ्लो
 * ओएनएक्स
 * अपाचे एमएक्सनेट
 * क्यूपी
 * MIOpen
 * कैफ (सॉफ्टवेयर)
 * Iree (जो LLVM मल्टी-लेवल इंटरमीडिएट रिप्रेजेंटेशन (MLIR) का उपयोग करता है)

सुपरकंप्यूटिंग
आरओसीएम टॉप500 में महत्वपूर्ण कर्षण प्राप्त कर रहा है। ROCm का उपयोग Exascale सुपरकंप्यूटर ElCapitan (सुपरकंप्यूटर) के साथ किया जाता है और फ्रंटियर (सुपरकंप्यूटर)।

कुछ संबंधित सॉफ़्टवेयर AMD Infinity हब पर उपलब्ध हैं।

अन्य त्वरण और ग्राफिक्स इंटरऑपरेशन
संस्करण 3.0 के अनुसार, ब्लेंडर (सॉफ्टवेयर) अब अपने रेंडरिंग (कंप्यूटर ग्राफिक्स) चक्रों के लिए HIP कंप्यूट कर्नेल का उपयोग कर सकता है।

जूलिया
जूलिया (प्रोग्रामिंग भाषा) में AMDGPU.jl पैकेज है, जो एलएलवीएम के साथ एकीकृत होता है और आरओसीएम स्टैक के घटकों का चयन करता है। एचआईपी के माध्यम से कोड संकलित करने के बजाय, एएमडीजीपीयू.जेएल सीधे एलएलवीएम आईआर उत्पन्न करने के लिए जूलिया के कंपाइलर का उपयोग करता है, जिसे बाद में एलएलवीएम द्वारा देशी डिवाइस कोड उत्पन्न करने के लिए उपयोग किया जाता है। AMDGPU.jl डिवाइस पर नेटिव कोड अपलोड करने और इसे निष्पादित करने के लिए ROCr के HSA कार्यान्वयन का उपयोग करता है, ठीक उसी तरह जिस तरह HIP अपने स्वयं के जनरेट किए गए डिवाइस कोड को लोड करता है।

AMDGPU.jl भी ROCm के rocBLAS (BLAS के लिए), rocRAND (यादृच्छिक संख्या पीढ़ी के लिए), और rocFFT (FFTs के लिए) के साथ एकीकरण का समर्थन करता है। RocALUTION, rocSOLVER, MIOpen, और कुछ अन्य ROCm पुस्तकालयों के साथ भविष्य के एकीकरण की योजना बनाई गई है।

आधिकारिक
आरओसीएम सॉफ्टवेयर वर्तमान में दर्जनों सार्वजनिक गिटहब रिपॉजिटरी में फैला हुआ है। मुख्य सार्वजनिक ]hub.com/radeonopencompute/rocm मेटा-रिपॉजिटरी] के भीतर, प्रत्येक अधिकारी के लिए एक xml मेनिफ़ेस्ट है रिलीज़: git-repo का उपयोग करना, git के शीर्ष पर निर्मित संस्करण नियंत्रण उपकरण, स्टैक के साथ स्थानीय रूप से सिंक्रनाइज़ करने का अनुशंसित तरीका है। आरओसीएम 5.1 की रिलीज आसन्न है, संभवत: फरवरी के मध्य में हर महीने एक मामूली रिलीज दी जाती है।

AMD ROCm के लिए कंटेनरीकृत अनुप्रयोगों का वितरण शुरू करता है, विशेष रूप से AMD Infinity Hub के तहत एकत्र किए गए वैज्ञानिक अनुसंधान अनुप्रयोगों के लिए। एएमडी खुद को वितरित करता है विभिन्न लिनक्स वितरणों के अनुरूप पैकेज।

तृतीय-पक्ष
तृतीय-पक्ष पारिस्थितिकी तंत्र पैकेजिंग ROCm बढ़ रहा है।

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

स्पैक पैकेज हैं।

अवयव
एक कर्नेल-स्पेस कंपोनेंट है, ROCk, और बाकी - स्टैक में लगभग सौ कंपोनेंट्स हैं - जो यूजर स्पेस | यूजर-स्पेस मॉड्यूल से बना है।

अनौपचारिक टाइपोग्राफ़िक नीति का उपयोग करना है: निम्न-स्तरीय पुस्तकालयों के लिए अपरकेस ROC लोअरकेस अनुसरण करना, यानी ROCt, और इसके विपरीत उपयोगकर्ता-सामना करने वाले पुस्तकालयों के लिए, यानी rocBLAS। एएमडी एलएलवीएम समुदाय के साथ सक्रिय विकास कर रहा है, लेकिन अपस्ट्रीमिंग तात्कालिक नहीं है, और जनवरी 2022 तक, अभी भी पिछड़ रहा है। एएमडी अभी भी आधिकारिक तौर पर विभिन्न एलएलवीएम फोर्क्स को पैकेज करता है उन हिस्सों के लिए जो अभी तक अपस्ट्रीम नहीं हुए हैं - कंपाइलर ऑप्टिमाइज़ेशन स्वामित्व, डीबग समर्थन, ओपनएमपी ऑफ़लोडिंग रहने के लिए नियत हैं ...

आरओसीएम - डिवाइस लाइब्रेरी
सपोर्ट लाइब्रेरी एलएलवीएम बिटकोड के रूप में लागू किया गया। ये मैथ ऑपरेशंस, एटॉमिक्स, लॉन्च पैरामीटर्स के लिए क्वेश्चन, ऑन-डिवाइस कर्नेल लॉन्च आदि के लिए विभिन्न यूटिलिटीज और फंक्शन प्रदान करते हैं।

आरओसीटी - थंक
thunk ढेर में जाने वाली सभी सोच और कतार के लिए ज़िम्मेदार है।

आरओसीआर - रनटाइम
ROC रनटाइम ROC कॉमन लैंग्वेज रनटाइम से इस मायने में अलग है कि यह एक ही चीज़ नहीं है।

आरओसीएम - कंपाइलर सपोर्ट
ROCm कोड ऑब्जेक्ट मैनेजर एलएलवीएम इंटरमीडिएट प्रतिनिधित्व के साथ बातचीत करने के प्रभारी हैं।

ROCclr सामान्य भाषा रनटाइम
सामान्य भाषा रनटाइम एक अप्रत्यक्ष परत है जो विंडोज़ पर Linux और PAL पर ROCr को कॉल्स को अनुकूलित करती है। यह एचएसएआईएल-कंपाइलर जैसे विभिन्न कंपाइलरों के बीच रूट करने में सक्षम होता था। यह अब ऊपरी अप्रत्यक्ष परतों (HIP, OpenCL) द्वारा अवशोषित किया जा रहा है।

ओपनसीएल
ROCm अपने इंस्टाल करने योग्य क्लाइंट ड्राइवर ICD लोडर और एक OpenCL को शिप करता है कार्यान्वयन एक साथ बंडल। जनवरी 2022 तक, ROCm 4.5.2 OpenCL 2.2 को शिप करता है, और प्रतिस्पर्धा में पिछड़ रहा है।

हिप - पोर्टेबिलिटी के लिए विषम इंटरफ़ेस
इसके जीपीयू के लिए एएमडी कार्यान्वयन को HIPAMD कहा जाता है। ज्यादातर प्रदर्शन उद्देश्यों के लिए CPU कार्यान्वयन भी है।

एचआईपीसीसी
HIP एक `HIPCC` कंपाइलर बनाता है जो या तो बजना को लपेटता है और LLVM खुले AMDGPU बैकएंड के साथ संकलित करता है, या Nvidia CUDA कंपाइलर पर रीडायरेक्ट करता है।

हिप्पी
HIPIFY एक सोर्स-टू-सोर्स कंपाइलिंग टूल है, यह CUDA को HIP और रिवर्स में ट्रांसलेट करता है, या तो क्लैंग-बेस्ड टूल या सीड-जैसे पर्ल का उपयोग करता है लिखी हुई कहानी।

जीपीयूएफओआरटी
HIPIFY की तरह, GPUFORT एक टूल है जो स्रोत कोड को अन्य तीसरी पीढ़ी के भाषा स्रोतों में संकलित करता है, जिससे उपयोगकर्ता CUDA फोरट्रान से HIP फोरट्रान में माइग्रेट कर सकते हैं। यह अनुसंधान परियोजनाओं के प्रदर्शनों की सूची में भी है, इससे भी ज्यादा।

उच्च स्तर
ROCm उच्च-स्तरीय पुस्तकालयों को आमतौर पर यंत्र अधिगम फ्रेमवर्क जैसे एप्लिकेशन सॉफ़्टवेयर द्वारा सीधे उपयोग किया जाता है। निम्नलिखित में से अधिकांश लाइब्रेरी सामान्य मैट्रिक्स गुणा (जीईएमएम) श्रेणी में हैं, जिसमें जीपीयू आर्किटेक्चर उत्कृष्ट है।

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

रोकब्लास / हिपब्लास
rocBLAS और उच्च-स्तरीय पुस्तकालयों में केंद्रीय हैं, यह बुनियादी रेखीय बीजगणित उपप्रोग्राम के लिए AMD कार्यान्वयन है। यह निजी तौर पर पुस्तकालय Tensile का उपयोग करता है।

रॉक्सोल्वर / हिप्सोल्वर
पुस्तकालयों की यह जोड़ी ROCm के लिए LAPACK कार्यान्वयन का गठन करती है और इसे rocBLAS से मजबूती से जोड़ा जाता है।

उपयोगिताएँ

 * ROCm डेवलपर टूल: डिबग, ट्रेसर, प्रोफाइलर, सिस्टम मैनेजमेंट इंटरफेस, वैलिडेशन सूट, क्लस्टर मैनेजमेंट।
 * GPUOpen tools: GPU विश्लेषक, मेमोरी विज़ुअलाइज़र...
 * बाहरी उपकरण: रैडॉनटॉप (पाठ-आधारित उपयोगकर्ता इंटरफ़ेस अवलोकन)

प्रतिस्पर्धियों के साथ तुलना
आरओसीएम जीपीयू कंप्यूटिंग के उद्देश्य से समान स्टैक का एक प्रतियोगी है: एनवीडिया सीयूडीए और वनएपीआई (कंप्यूट त्वरण)।

एनवीडिया क्यूडा
क्यूब्लास और ऐसी उच्च-स्तरीय लाइब्रेरी तक एनवीडिया क्लोज-सोर्स है।

Nvidia Nvidia CUDA Compiler (NVCC) के रूप में Clang फ्रंटएंड और इसके समानांतर थ्रेड निष्पादन (PTX) LLVM GPU बैकएंड को वेंडर करता है।

इसके ऊपर एक ओपन-सोर्स लेयर है, उदाहरण के लिए RAPIDS।

यह भी देखें

 * एएमडी#सॉफ्टवेयर - एएमडी के ड्राइवरों, एपीआई और विकास प्रयासों का एक सामान्य अवलोकन।
 * GPUOpen - AMD का पूरक ग्राफ़िक्स स्टैक
 * AMD Radeon Software - AMD का सॉफ्टवेयर वितरण चैनल

बाहरी संबंध

 * — Docker containers for scientific applications.
 * — Docker containers for scientific applications.
 * — Docker containers for scientific applications.
 * — Docker containers for scientific applications.
 * — Docker containers for scientific applications.
 * — Docker containers for scientific applications.