आरओसीएम: Difference between revisions
(Created page with "{{Short description|Parallel computing platform: GPGPU libraries and application programming interface}} {{Use American English|date=December 2022}} {{Use mdy dates|date=Decem...") |
|||
| Line 1: | Line 1: | ||
{{Short description|Parallel computing platform: GPGPU libraries and application programming interface}} | {{Short description|Parallel computing platform: GPGPU libraries and application programming interface}} | ||
{{Infobox software | {{Infobox software | ||
| name = ROCm | | name = ROCm | ||
| Line 21: | Line 20: | ||
| website = {{URL|https://www.amd.com/en/graphics/servers-solutions-rocm}} | | website = {{URL|https://www.amd.com/en/graphics/servers-solutions-rocm}} | ||
}} | }} | ||
आरओसीएम<ref>{{Cite web|url=https://github.com/RadeonOpenCompute/ROCm/issues/1628|title=Question: What does ROCm stand for? · Issue #1628 · RadeonOpenCompute/ROCm|website=Github.com|access-date=January 18, 2022}}</ref> [[ग्राफ़िक्स प्रोसेसिंग युनिट]] (जीपीयू) प्रोग्रामिंग के लिए | आरओसीएम<ref>{{Cite web|url=https://github.com/RadeonOpenCompute/ROCm/issues/1628|title=Question: What does ROCm stand for? · Issue #1628 · RadeonOpenCompute/ROCm|website=Github.com|access-date=January 18, 2022}}</ref> [[ग्राफ़िक्स प्रोसेसिंग युनिट]] (जीपीयू) प्रोग्रामिंग के लिए ऍड्वांस्ड माइक्रो डिवाइसेज़ (एएमडी) सॉफ्टवेयर स्टैक है। आरओसीएम कई क्षेत्रों में फैला हुआ है: जनरल-पर्पस कंप्यूटिंग ऑन ग्राफिक्स प्रोसेसिंग यूनिट (जीपीजीपीयू), [[उच्च प्रदर्शन कंप्यूटिंग|हाई-परफॉरमेंस कंप्यूटिंग]] (एचपीसी), [[विषम कंप्यूटिंग|हेटेरोगेनोस कंप्यूटिंग]] है। यह कई प्रोग्रामिंग मॉडल प्रदान करता है: एचआईपी (जीपीयू-कर्नेल-आधारित प्रोग्रामिंग), [[OpenMP|ओपनएमपी]]/मैसेज [[संदेश पासिंग इंटरफ़ेस|पासिंग इंटरफ़ेस]](एमपीआई) निर्देश-आधारित प्रोग्रामिंग), [[OpenCL|ओपनसीएल]] है। | ||
आरओसीएम मुफ़्त, कामचलाऊ और [[खुला स्रोत सॉफ्टवेयर|मुक्त स्रोत सॉफ्टवेयर]] है (जीपीयू [[बाइनरी ब्लॉब]] को छोड़कर<ref>{{Cite web|url=https://packages.debian.org/buster/firmware-amd-graphics|title=Debian -- Details of package firmware-amd-graphics in buster|website=Packages.debian.org|access-date=January 18, 2022}}</ref>), यह विभिन्न अनुज्ञप्ति के तहत वितरित किया जाता है। | |||
{{TOC limit|5}} | {{TOC limit|5}} | ||
== पृष्ठभूमि == | == पृष्ठभूमि == | ||
एटीआई टेक्नोलॉजीज/एएमडी से पहला जीपीजीपीयू सॉफ्टवेयर स्टैक मेटल के करीब था, जो एएमडी स्ट्रीम प्रोसेसर | एटीआई टेक्नोलॉजीज/एएमडी से पहला जीपीजीपीयू सॉफ्टवेयर स्टैक मेटल के करीब था, जो एएमडी स्ट्रीम प्रोसेसर सॉफ्टवेयर डेवलपमेंट किट बन गया। | ||
आरओसीएम को 2016 के आसपास | आरओसीएम को 2016 के आसपास <ref>{{Cite web|url=https://www.anandtech.com/show/10831/amd-sc16-rocm-13-released-boltzmann-realized|title=AMD @ SC16: Radeon Open Compute Platform (ROCm) 1.3 Released, Boltzmann Comes to Fruition|website=anandtech.com|access-date=January 19, 2022}}</ref> बोल्ट्ज़मैन इनिशिएटिव (आरओसीएम) के साथ प्रारंभ किया गया था।<ref>{{Cite web|url=https://www.anandtech.com/show/9792/amd-sc15-boltzmann-initiative-announced-c-and-cuda-compilers-for-amd-gpus|title=AMD @ SC15: Boltzmann Initiative Announced - C++ and CUDA Compilers for AMD GPUs|website=anandtech.com|access-date=January 19, 2022}}</ref> आरओसीएम स्टैक पिछले एएमडी जीपीयू स्टैक पर बनाता है, कुछ उपकरण [[GPUOpen|जीपीयूओपन]], अन्य [[विषम प्रणाली वास्तुकला|हेटेरोगेनोस सिस्टम आर्किटेक्चर]] (एचएसए) पर वापस जाते हैं। | ||
=== | === हेटेरोगेनोस सिस्टम आर्किटेक्चर === | ||
एचएसए का उद्देश्य | एचएसए का उद्देश्य मध्य-स्तर, हार्डवेयर-अज्ञेयवादी मध्यवर्ती प्रतिनिधित्व का उत्पादन करना था, जो उपयुक्त अंतिम रूप का उपयोग करके अंतिम हार्डवेयर (जीपीयू, एफपीजीए ...) के लिए जेआईटी-संकलित किया जा सकता है। आरओसीएम के लिए यह दृष्टिकोण हटा दिया गया था: अब यह [[एलएलवीएम]] का उपयोग करके केवल जीपीयू कोड बनाता है, और इसका एलएलवीएम बैकएंड जो उजान किया गया था,<ref>{{Cite web|url=https://llvm.org/docs/AMDGPUUsage.html|title=User Guide for AMDGPU Backend — LLVM 13 documentation|website=Llvm.org|access-date=January 18, 2022}}</ref> हालांकि एलएलवीएम एमएलआईआर के साथ इस तरह के संवर्धित प्रतिरूपकता पर अभी भी शोध चल रहा है।<ref name="The LLVM Compiler Infrastructure">{{Cite web|url=https://github.com/ROCmSoftwarePlatform/llvm-project-mlir|title=The LLVM Compiler Infrastructure|website=[[GitHub]]|date=January 19, 2022}}</ref> | ||
=== माइक्रोसॉफ्ट एएमपी C ++ 1.2 === | |||
=== माइक्रोसॉफ्ट एएमपी | |||
== प्रोग्रामिंग क्षमता == | == प्रोग्रामिंग क्षमता == | ||
आरओसीएम स्टैक के रूप में कर्नेल ड्राइवर से लेकर एंड-यूज़र अनुप्रयोग तक होता है।एएमडी में एएमडी जीसीएन हार्डवेयर के बारे में <ref>{{Cite web|url=https://www.youtube.com/watch?v=uu-3aEyesWQ|title=Introduction to AMD GPU Hardware|via=www.youtube.com}}</ref> और आरओसीएम प्रोग्रामिंग<ref>{{Cite web|url=https://developer.amd.com/resources/rocm-learning-center/fundamentals-of-hip-programming/|title=Fundamentals of HIP Programming|website=AMD}}</ref> इसके लर्निंग पोर्टल के माध्यम से परिचयात्मक वीडियो हैं।<ref>{{Cite web|url=https://developer.amd.com/resources/rocm-learning-center/|title=ROCm™ Learning Center|website=AMD}}</ref> | |||
स्टैक और आरओसीएम/एचआईपी प्रोग्रामिंग के बारे में सबसे अच्छे तकनीकी परिचयों में से एक, आज तक रेडिट पर पाया जाना बाकी है।<ref>{{Cite web|url=http://www.reddit.com/r/Amd/comments/a9tjge/amd_rocm_hcc_programming_introduction/|title=AMD ROCm / HCC programming: Introduction|date=December 26, 2018}}</ref> | |||
=== उच्च स्तरीय प्रोग्रामिंग === | === उच्च स्तरीय प्रोग्रामिंग === | ||
| Line 54: | Line 46: | ||
==== मेमोरी आवंटन ==== | ==== मेमोरी आवंटन ==== | ||
===नुमा === | |||
=== | === हेटेरोगेनोस मेमोरी मॉडल और साझा वर्चुअल मेमोरी === | ||
==== | ====आरओसीएम कोड ऑब्जेक्ट्स ==== | ||
==== कंप्यूट/ग्राफिक्स इंटरऑप ==== | ==== कंप्यूट/ग्राफिक्स इंटरऑप ==== | ||
| Line 65: | Line 57: | ||
== हार्डवेयर समर्थन == | == हार्डवेयर समर्थन == | ||
आरओसीएम मुख्य रूप से असतत पेशेवर जीपीयू पर लक्षित है,[https://docs.amd.com/bundle/ROCm-Getting-Started-Guide-v5.2.3/page/Introduction_to_AMD_ROCm_Getting_Started_Guide_for_Linux.html], लेकिन अनौपचारिक समर्थन में वेगा- वर्ग और आरडीएनए2 उपभोक्ता जीपीयू शामिल हैं। | |||
[[AMD Accelerated Processing Unit]] (APU) सक्षम हैं, लेकिन आधिकारिक रूप से समर्थित नहीं हैं। | [[AMD Accelerated Processing Unit|एएमडी Accelerated Processing Unit]] (APU) सक्षम हैं, लेकिन आधिकारिक रूप से समर्थित नहीं हैं। आरओसीएम के कार्यशील होने में शामिल है।<ref>{{Cite web|url=https://www.reddit.com/r/Amd/comments/rd7mmi/heres_something_you_dont_see_every_day_pytorch/|title = Here's something you don't see every day: PyTorch running on top of ROCm on a 6800M (6700XT) laptop! Took a ton of minor config tweaks and a few patches but it actually functionally works. HUGE!|date = December 10, 2021}}</ref> | ||
{{See also|List of AMD graphics processing units}} | {{See also|List of AMD graphics processing units}} | ||
| Line 73: | Line 65: | ||
=== प्रोफेशनल-ग्रेड जीपीयू === | === प्रोफेशनल-ग्रेड जीपीयू === | ||
[https://en.wiktionary.org/wiki/prosumer#Etymology_2 prosumer] Radeon Pro के साथ | [https://en.wiktionary.org/wiki/prosumer#Etymology_2 prosumer] Radeon Pro के साथ एएमडी Instinct Accelerators प्रथम श्रेणी के आरओसीएम नागरिक हैं: वे ज्यादातर पूर्ण समर्थन देखते हैं। | ||
जनवरी 2022 तक राडॉन VII (GCN 5 - वेगा) एकमात्र उपभोक्ता-ग्रेड | जनवरी 2022 तक राडॉन VII (GCN 5 - वेगा) एकमात्र उपभोक्ता-ग्रेड जीपीयू है जिसे अपेक्षाकृत समान समर्थन प्राप्त है। | ||
=== उपभोक्ता-ग्रेड जीपीयू === | === उपभोक्ता-ग्रेड जीपीयू === | ||
{| class="wikitable" style="font-size: 85%; text-align: center" | {| class="wikitable" style="font-size: 85%; text-align: center" | ||
! Name of [[Graphics processing unit| | ! Name of [[Graphics processing unit|जीपीयू]] series | ||
! [[Radeon HD 7000 Series|Southern<br />Islands]] | ! [[Radeon HD 7000 Series|Southern<br />Islands]] | ||
! [[AMD Radeon Rx 200 series|Sea<br />Islands]] | ! [[AMD Radeon Rx 200 series|Sea<br />Islands]] | ||
| Line 106: | Line 98: | ||
| Radeon RX 6000 | | Radeon RX 6000 | ||
|- | |- | ||
! {{rh}} | | ! {{rh}} | एएमडी support | ||
| colspan="3" {{na}} || colspan=4 {{ya|Current}} | | colspan="3" {{na}} || colspan=4 {{ya|Current}} | ||
|- | |- | ||
! {{rh}} | [[Instruction set]] | ! {{rh}} | [[Instruction set]] | ||
| colspan=5 | [[Graphics Core Next#Instruction set|GCN instruction set]] | | colspan=5 | [[Graphics Core Next#Instruction set|GCN instruction set]] | ||
| colspan=2 | [[RDNA (microarchitecture)#Instruction set| | | colspan=2 | [[RDNA (microarchitecture)#Instruction set|आरडीएनए instruction set]] | ||
|- | |- | ||
! {{rh}} | [[Microarchitecture]] | ! {{rh}} | [[Microarchitecture]] | ||
| Line 119: | Line 111: | ||
| [[Graphics Core Next#fourth|GCN 4th gen]] | | [[Graphics Core Next#fourth|GCN 4th gen]] | ||
| [[Graphics Core Next#fifth|GCN 5th gen]] | | [[Graphics Core Next#fifth|GCN 5th gen]] | ||
| [[RDNA (microarchitecture)#Architecture| | | [[RDNA (microarchitecture)#Architecture|आरडीएनए]] | ||
| [[RDNA (microarchitecture)#RDNA 2| | | [[RDNA (microarchitecture)#RDNA 2|आरडीएनए 2]] | ||
|- | |- | ||
! {{rh}} | Type | ! {{rh}} | Type | ||
| Line 126: | Line 118: | ||
|- style="border-top:2px solid grey" | |- style="border-top:2px solid grey" | ||
! {{rh}} | | ! {{rh}} | आरओसीएम<ref>{{cite web |title=ROCm Getting Started Guide v5.2.3 | url=https://docs.amd.com/bundle/ROCm-Getting-Started-Guide-v5.2.3}}</ref> | ||
| colspan=4 {{na}} | | colspan=4 {{na}} | ||
| colspan=1 {{ya}} | | colspan=1 {{ya}} | ||
| Line 132: | Line 124: | ||
| colspan=2 {{ya}} | | colspan=2 {{ya}} | ||
|- | |- | ||
! {{rh}} | [[OpenCL]] | ! {{rh}} | [[OpenCL|ओपनसीएल]] | ||
|1.2 (on [[Linux]]: 1.1 (no Image support) with Mesa 3D) | |1.2 (on [[Linux]]: 1.1 (no Image support) with Mesa 3D) | ||
| colspan=4 | 2.0 (Adrenalin driver on [[Windows 7|Win7+]])<br />(on [[Linux]]: 1.1 (no Image support) with Mesa 3D, 2.0 with | | colspan=4 | 2.0 (Adrenalin driver on [[Windows 7|Win7+]])<br />(on [[Linux]]: 1.1 (no Image support) with Mesa 3D, 2.0 with एएमडी drivers or एएमडी आरओसीएम) | ||
| 2.0 | | 2.0 | ||
| 2.1<ref>{{cite web |title=AMD Radeon RX 6800 XT Specs |url=https://www.techpowerup.com/gpu-specs/radeon-rx-6800-xt.c3694 |website=TechPowerUp |access-date=January 1, 2021}}</ref> | | 2.1<ref>{{cite web |title=AMD Radeon RX 6800 XT Specs |url=https://www.techpowerup.com/gpu-specs/radeon-rx-6800-xt.c3694 |website=TechPowerUp |access-date=January 1, 2021}}</ref> | ||
| Line 178: | Line 170: | ||
=== तृतीय-पक्ष एकीकरण === | === तृतीय-पक्ष एकीकरण === | ||
स्टैक के मुख्य उपभोक्ता मशीन लर्निंग और उच्च-प्रदर्शन कंप्यूटिंग/ | स्टैक के मुख्य उपभोक्ता मशीन लर्निंग और उच्च-प्रदर्शन कंप्यूटिंग/जीपीजीपीयू अनुप्रयोग हैं। | ||
==== मशीन लर्निंग ==== | ==== मशीन लर्निंग ==== | ||
विभिन्न डीप लर्निंग फ्रेमवर्क में | विभिन्न डीप लर्निंग फ्रेमवर्क में आरओसीएम बैकएंड होता है:<ref name=infoq-mi200>{{Cite web|url=https://www.infoq.com/news/2021/12/amd-deep-learning-accelerator/|title=AMD Introduces Its Deep-Learning Accelerator Instinct MI200 Series GPUs|website=Infoq.com|access-date=January 18, 2022}}</ref> | ||
* [[PyTorch]] | * [[PyTorch]] | ||
* टेंसरफ्लो | * टेंसरफ्लो | ||
| Line 193: | Line 185: | ||
==== सुपरकंप्यूटिंग ==== | ==== सुपरकंप्यूटिंग ==== | ||
आरओसीएम टॉप500 में महत्वपूर्ण कर्षण प्राप्त कर रहा है।<ref>{{Cite web|url=https://www.crn.com/news/components-peripherals/amd-chips-away-at-intel-in-world-s-top-500-supercomputers-as-gpu-war-looms|title = AMD Chips Away at Intel in World's Top 500 Supercomputers as GPU War Looms|date = November 16, 2020}}</ref> | आरओसीएम टॉप500 में महत्वपूर्ण कर्षण प्राप्त कर रहा है।<ref>{{Cite web|url=https://www.crn.com/news/components-peripherals/amd-chips-away-at-intel-in-world-s-top-500-supercomputers-as-gpu-war-looms|title = AMD Chips Away at Intel in World's Top 500 Supercomputers as GPU War Looms|date = November 16, 2020}}</ref> | ||
आरओसीएम का उपयोग Exascale सुपरकंप्यूटर ElCapitan (सुपरकंप्यूटर) के साथ किया जाता है<ref>{{Cite web|url=https://www.anandtech.com/show/15581/el-capitan-supercomputer-detailed-amd-cpus-gpus-2-exaflops|title = El Capitan Supercomputer Detailed: AMD CPUs & GPUs to Drive 2 Exaflops of Compute}}</ref><ref>{{Cite web|url=https://www.hpcwire.com/2021/02/18/livermores-el-capitan-supercomputer-hpe-rabbit-storage-nodes/|title=Livermore's el Capitan Supercomputer to Debut HPE 'Rabbit' Near Node Local Storage|date=February 18, 2021}}</ref> और [[फ्रंटियर (सुपरकंप्यूटर)]]। | |||
कुछ संबंधित सॉफ़्टवेयर [https://www.amd.com/fr/technologies/infinity-hub | कुछ संबंधित सॉफ़्टवेयर [https://www.amd.com/fr/technologies/infinity-hub एएमडी Infinity हब] पर उपलब्ध हैं। | ||
==== अन्य त्वरण और ग्राफिक्स इंटरऑपरेशन ==== | ==== अन्य त्वरण और ग्राफिक्स इंटरऑपरेशन ==== | ||
संस्करण 3.0 के अनुसार, [[ब्लेंडर (सॉफ्टवेयर)]] अब अपने रेंडरिंग (कंप्यूटर ग्राफिक्स) चक्रों के लिए | संस्करण 3.0 के अनुसार, [[ब्लेंडर (सॉफ्टवेयर)]] अब अपने रेंडरिंग (कंप्यूटर ग्राफिक्स) चक्रों के लिए एचआईपी कंप्यूट कर्नेल का उपयोग कर सकता है।<ref>{{Cite web|url=https://gpuopen.com/blender-cycles-amd-gpu/|title=Blender 3.0 takes support for AMD GPUs to the next level. Beta support available now!|date=November 15, 2021|website=Gpuopen.com|access-date=January 18, 2022}}</ref> | ||
| Line 205: | Line 197: | ||
===== जूलिया ===== | ===== जूलिया ===== | ||
[[जूलिया (प्रोग्रामिंग भाषा)]] में AMDGPU.jl पैकेज है,<ref>{{Cite web|url=https://juliagpu.org/rocm/|title=AMD ROCm ⋅ JuliaGPU|website=juliagpu.org}}</ref> जो एलएलवीएम के साथ एकीकृत होता है और आरओसीएम स्टैक के घटकों का चयन करता है। एचआईपी के माध्यम से कोड संकलित करने के बजाय, एएमडीजीपीयू.जेएल सीधे एलएलवीएम आईआर उत्पन्न करने के लिए जूलिया के कंपाइलर का उपयोग करता है, जिसे बाद में एलएलवीएम द्वारा देशी डिवाइस कोड उत्पन्न करने के लिए उपयोग किया जाता है। AMDGPU.jl डिवाइस पर नेटिव कोड अपलोड करने और इसे निष्पादित करने के लिए ROCr के | [[जूलिया (प्रोग्रामिंग भाषा)]] में AMDGPU.jl पैकेज है,<ref>{{Cite web|url=https://juliagpu.org/rocm/|title=AMD ROCm ⋅ JuliaGPU|website=juliagpu.org}}</ref> जो एलएलवीएम के साथ एकीकृत होता है और आरओसीएम स्टैक के घटकों का चयन करता है। एचआईपी के माध्यम से कोड संकलित करने के बजाय, एएमडीजीपीयू.जेएल सीधे एलएलवीएम आईआर उत्पन्न करने के लिए जूलिया के कंपाइलर का उपयोग करता है, जिसे बाद में एलएलवीएम द्वारा देशी डिवाइस कोड उत्पन्न करने के लिए उपयोग किया जाता है। AMDGPU.jl डिवाइस पर नेटिव कोड अपलोड करने और इसे निष्पादित करने के लिए ROCr के एचएसए कार्यान्वयन का उपयोग करता है, ठीक उसी तरह जिस तरह एचआईपी अपने स्वयं के जनरेट किए गए डिवाइस कोड को लोड करता है। | ||
AMDGPU.jl भी | AMDGPU.jl भी आरओसीएम के rocBLAS (BLAS के लिए), rocRAND (यादृच्छिक संख्या पीढ़ी के लिए), और rocFFT (FFTs के लिए) के साथ एकीकरण का समर्थन करता है। RocALUTION, rocSOLVER, MIOpen, और कुछ अन्य आरओसीएम पुस्तकालयों के साथ भविष्य के एकीकरण की योजना बनाई गई है। | ||
=== सॉफ्टवेयर वितरण === | === सॉफ्टवेयर वितरण === | ||
| Line 229: | Line 221: | ||
|https://github.com/rocmsoftwareplatform/ | |https://github.com/rocmsoftwareplatform/ | ||
|} | |} | ||
एएमडी आरओसीएम के लिए कंटेनरीकृत अनुप्रयोगों का वितरण शुरू करता है, विशेष रूप से [https://www.amd.com/en/technologies/infinity-hub एएमडी Infinity Hub] के तहत एकत्र किए गए वैज्ञानिक अनुसंधान अनुप्रयोगों के लिए।<ref>{{Cite web|url=https://www.hpcwire.com/2021/10/18/running-scientific-applications-on-amd-instinct-accelerators-just-got-easier|title=Running Scientific Applications on AMD Instinct Accelerators Just Got Easier|date=October 18, 2021|access-date=January 25, 2022|website=HPCwire.com}}</ref> | |||
एएमडी [https://repo.radeon.com/rocm खुद को वितरित करता है] विभिन्न लिनक्स वितरणों के अनुरूप पैकेज। | एएमडी [https://repo.radeon.com/rocm खुद को वितरित करता है] विभिन्न लिनक्स वितरणों के अनुरूप पैकेज। | ||
| Line 236: | Line 228: | ||
==== तृतीय-पक्ष ==== | ==== तृतीय-पक्ष ==== | ||
[https://repology.org/projects/r/?search=rocm तृतीय-पक्ष पारिस्थितिकी तंत्र पैकेजिंग | [https://repology.org/projects/r/?search=rocm तृतीय-पक्ष पारिस्थितिकी तंत्र पैकेजिंग आरओसीएम] बढ़ रहा है। | ||
लिनक्स वितरण आधिकारिक तौर पर (मूल रूप से) | लिनक्स वितरण आधिकारिक तौर पर (मूल रूप से) आरओसीएम की पैकेजिंग कर रहे हैं, उन्नति की विभिन्न डिग्री के साथ: आर्क,<ref>{{Cite web|url=https://github.com/rocm-arch/rocm-arch|title=ROCm for Arch Linux|date=January 17, 2022|access-date=January 18, 2022|website=Github.com}}</ref> जेंटू,<ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Gentoo-2021-Recap|title=Gentoo Linux Packages Up AMD ROCm, Makes Progress On RISC-V, LTO+PGO Python|website=Phoronix.com|access-date=January 18, 2022}}</ref> डेबियन और फेडोरा,<ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Fedora-Debian-ROCm-Work|title=Fedora & Debian Developers Look At Packaging ROCm For Easier Radeon GPU Computing Experience|website=Phoronix.com|access-date=January 18, 2022}}</ref> जीएनयू गुइक्स, निक्सओएस। | ||
स्पैक पैकेज हैं।<ref>{{Cite web|url=https://github.com/spack/spack|title=The Spack Package Manager: Bringing Order to HPC Software Chaos|first1=Todd|last1=Gamblin|first2=Matthew|last2=LeGendre|first3=Michael R.|last3=Collette|first4=Gregory L.|last4=Lee|first5=Adam|last5=Moody|first6=Bronis R.|last6=de Supinski|first7=Scott|last7=Futral|date=November 15, 2015|via=GitHub}}</ref> | स्पैक पैकेज हैं।<ref>{{Cite web|url=https://github.com/spack/spack|title=The Spack Package Manager: Bringing Order to HPC Software Chaos|first1=Todd|last1=Gamblin|first2=Matthew|last2=LeGendre|first3=Michael R.|last3=Collette|first4=Gregory L.|last4=Lee|first5=Adam|last5=Moody|first6=Bronis R.|last6=de Supinski|first7=Scott|last7=Futral|date=November 15, 2015|via=GitHub}}</ref> | ||
| Line 248: | Line 240: | ||
अनौपचारिक टाइपोग्राफ़िक नीति का उपयोग करना है: निम्न-स्तरीय पुस्तकालयों के लिए अपरकेस ROC लोअरकेस अनुसरण करना, यानी ROCt, और इसके विपरीत उपयोगकर्ता-सामना करने वाले पुस्तकालयों के लिए, यानी rocBLAS।<ref>{{Cite mailing list|url=https://lists.debian.org/debian-ai/2021/12/msg00028.html|title=20211221 Packaging session notes and small update|mailing-list=debian-ai@lists.debian.org|last=Bloor|first=Cordell|language=english|access-date=January 18, 2022}}</ref> | अनौपचारिक टाइपोग्राफ़िक नीति का उपयोग करना है: निम्न-स्तरीय पुस्तकालयों के लिए अपरकेस ROC लोअरकेस अनुसरण करना, यानी ROCt, और इसके विपरीत उपयोगकर्ता-सामना करने वाले पुस्तकालयों के लिए, यानी rocBLAS।<ref>{{Cite mailing list|url=https://lists.debian.org/debian-ai/2021/12/msg00028.html|title=20211221 Packaging session notes and small update|mailing-list=debian-ai@lists.debian.org|last=Bloor|first=Cordell|language=english|access-date=January 18, 2022}}</ref> | ||
एएमडी एलएलवीएम समुदाय के साथ सक्रिय विकास कर रहा है, लेकिन अपस्ट्रीमिंग तात्कालिक नहीं है, और जनवरी 2022 तक, अभी भी पिछड़ रहा है।<ref>{{Cite web|url=https://github.com/ROCm-Developer-Tools/HIP/issues/2449|title = [Debian official packaging] How is ROCm LLVM fork still needed? · Issue #2449 · ROCm-Developer-Tools/HIP|website = [[GitHub]]}}</ref> एएमडी अभी भी आधिकारिक तौर पर विभिन्न एलएलवीएम फोर्क्स को पैकेज करता है<ref>{{Cite web|url=https://github.com/ROCm-Developer-Tools/aomp|title = Aomp - V 14.0-1|website = [[GitHub]]|date = January 22, 2022}}</ref><ref>{{Cite web|url=https://github.com/RadeonOpenCompute/llvm-project|title = The LLVM Compiler Infrastructure|website = [[GitHub]]|date = January 10, 2022}}</ref><ref name="The LLVM Compiler Infrastructure"/>उन हिस्सों के लिए जो अभी तक | एएमडी एलएलवीएम समुदाय के साथ सक्रिय विकास कर रहा है, लेकिन अपस्ट्रीमिंग तात्कालिक नहीं है, और जनवरी 2022 तक, अभी भी पिछड़ रहा है।<ref>{{Cite web|url=https://github.com/ROCm-Developer-Tools/HIP/issues/2449|title = [Debian official packaging] How is ROCm LLVM fork still needed? · Issue #2449 · ROCm-Developer-Tools/HIP|website = [[GitHub]]}}</ref> एएमडी अभी भी आधिकारिक तौर पर विभिन्न एलएलवीएम फोर्क्स को पैकेज करता है<ref>{{Cite web|url=https://github.com/ROCm-Developer-Tools/aomp|title = Aomp - V 14.0-1|website = [[GitHub]]|date = January 22, 2022}}</ref><ref>{{Cite web|url=https://github.com/RadeonOpenCompute/llvm-project|title = The LLVM Compiler Infrastructure|website = [[GitHub]]|date = January 10, 2022}}</ref><ref name="The LLVM Compiler Infrastructure"/>उन हिस्सों के लिए जो अभी तक उजान नहीं हुए हैं - कंपाइलर ऑप्टिमाइज़ेशन स्वामित्व, डीबग समर्थन, ओपनएमपी ऑफ़लोडिंग रहने के लिए नियत हैं ... | ||
=== निम्न स्तर === | === निम्न स्तर === | ||
| Line 257: | Line 249: | ||
==== आरओसीएम - डिवाइस लाइब्रेरी ==== | ==== आरओसीएम - डिवाइस लाइब्रेरी ==== | ||
[https://github.com/RadeonOpenCompute/ROCm-Device-Libs सपोर्ट लाइब्रेरी] एलएलवीएम बिटकोड के रूप में लागू किया गया। ये मैथ ऑपरेशंस, एटॉमिक्स, | [https://github.com/RadeonOpenCompute/ROCm-Device-Libs सपोर्ट लाइब्रेरी] एलएलवीएम बिटकोड के रूप में लागू किया गया। ये मैथ ऑपरेशंस, एटॉमिक्स, प्रारंभ पैरामीटर्स के लिए क्वेश्चन, ऑन-डिवाइस कर्नेल प्रारंभ आदि के लिए विभिन्न यूटिलिटीज और फंक्शन प्रदान करते हैं। | ||
==== आरओसीटी - थंक ==== | ==== आरओसीटी - थंक ==== | ||
| Line 266: | Line 258: | ||
==== आरओसीएम - कंपाइलर सपोर्ट ==== | ==== आरओसीएम - कंपाइलर सपोर्ट ==== | ||
[https://github.com/radeonopencompute/rocm-compilersupport | [https://github.com/radeonopencompute/rocm-compilersupport आरओसीएम कोड ऑब्जेक्ट मैनेजर] एलएलवीएम इंटरमीडिएट प्रतिनिधित्व के साथ बातचीत करने के प्रभारी हैं। | ||
=== मध्य स्तर === | === मध्य स्तर === | ||
| Line 272: | Line 264: | ||
==== ROCclr सामान्य भाषा रनटाइम ==== | ==== ROCclr सामान्य भाषा रनटाइम ==== | ||
[https://github.com/rocm-developer-tools/rocclr सामान्य भाषा रनटाइम] एक अप्रत्यक्ष परत है जो विंडोज़ पर Linux और PAL पर ROCr को कॉल्स को अनुकूलित करती है। | [https://github.com/rocm-developer-tools/rocclr सामान्य भाषा रनटाइम] एक अप्रत्यक्ष परत है जो विंडोज़ पर Linux और PAL पर ROCr को कॉल्स को अनुकूलित करती है। | ||
यह एचएसएआईएल-कंपाइलर जैसे विभिन्न कंपाइलरों के बीच रूट करने में सक्षम होता था। यह अब ऊपरी अप्रत्यक्ष परतों ( | यह एचएसएआईएल-कंपाइलर जैसे विभिन्न कंपाइलरों के बीच रूट करने में सक्षम होता था। यह अब ऊपरी अप्रत्यक्ष परतों (एचआईपी, ओपनसीएल) द्वारा अवशोषित किया जा रहा है। | ||
==== ओपनसीएल ==== | ==== ओपनसीएल ==== | ||
{{See|OpenCL}} | {{See|OpenCL}} | ||
आरओसीएम अपने इंस्टाल करने योग्य क्लाइंट ड्राइवर ICD लोडर और एक ओपनसीएल को शिप करता है<ref>{{Cite web|url=https://www.khronos.org/registry/OpenCL/|title=Khronos OpenCL Registry - The Khronos Group Inc|website=www.khronos.org}}</ref> [https://github.com/radeonopencompute/rocm-opencl-runtime कार्यान्वयन एक साथ बंडल]। | |||
जनवरी 2022 तक, | जनवरी 2022 तक, आरओसीएम 4.5.2 ओपनसीएल 2.2 को शिप करता है, और प्रतिस्पर्धा में पिछड़ रहा है।<ref>{{Cite web|url=https://www.khronos.org/conformance/adopters/conformant-products/opencl|title=List of OpenCL Conformant Products - The Khronos Group Inc|website=www.khronos.org|date=February 3, 2022}}</ref> | ||
==== हिप - [https://github.com/rocm-developer-tools/hip पोर्टेबिलिटी के लिए | ==== हिप - [https://github.com/rocm-developer-tools/hip पोर्टेबिलिटी के लिए हेटेरोगेनोस इंटरफ़ेस] ==== | ||
इसके जीपीयू के लिए एएमडी कार्यान्वयन को [https://github.com/ROCm-Developer-Tools HIPAMD] कहा जाता है। ज्यादातर प्रदर्शन उद्देश्यों के लिए [https://github.com/ROCm-Developer-Tools/HIP-CPU CPU कार्यान्वयन] भी है। | इसके जीपीयू के लिए एएमडी कार्यान्वयन को [https://github.com/ROCm-Developer-Tools HIPAMD] कहा जाता है। ज्यादातर प्रदर्शन उद्देश्यों के लिए [https://github.com/ROCm-Developer-Tools/HIP-CPU CPU कार्यान्वयन] भी है। | ||
==== एचआईपीसीसी ==== | ==== एचआईपीसीसी ==== | ||
एचआईपी एक `HIPCC` कंपाइलर बनाता है जो या तो [[बजना]] को लपेटता है और LLVM खुले AMDGPU बैकएंड के साथ संकलित करता है, या Nvidia CUDA कंपाइलर पर रीडायरेक्ट करता है।<ref>{{Cite web|url=https://www.researchgate.net/figure/HIPCC-compilation-process-illustration-The-clang-compiler-skips-the-step-to-generate-the_fig3_346904487|title = Figure 3. HIPCC compilation process illustration. The clang compiler}}</ref> | |||
==== हिप्पी ==== | ==== हिप्पी ==== | ||
[https://github.com/ROCm-Developer-Tools/HIPIFY HIPIFY] एक सोर्स-टू-सोर्स कंपाइलिंग टूल है, यह CUDA को | [https://github.com/ROCm-Developer-Tools/HIPIFY HIPIFY] एक सोर्स-टू-सोर्स कंपाइलिंग टूल है, यह CUDA को एचआईपी और रिवर्स में ट्रांसलेट करता है, या तो क्लैंग-बेस्ड टूल या सीड-जैसे पर्ल का उपयोग करता है लिखी हुई कहानी। | ||
==== जीपीयूएफओआरटी ==== | ==== जीपीयूएफओआरटी ==== | ||
HIPIFY की तरह, [https://github.com/rocmsoftwareplatform/gpufort GPUFORT] एक टूल है जो स्रोत कोड को अन्य तीसरी पीढ़ी के भाषा स्रोतों में संकलित करता है, जिससे उपयोगकर्ता CUDA फोरट्रान से | HIPIFY की तरह, [https://github.com/rocmsoftwareplatform/gpufort GPUFORT] एक टूल है जो स्रोत कोड को अन्य तीसरी पीढ़ी के भाषा स्रोतों में संकलित करता है, जिससे उपयोगकर्ता CUDA फोरट्रान से एचआईपी फोरट्रान में माइग्रेट कर सकते हैं। यह अनुसंधान परियोजनाओं के प्रदर्शनों की सूची में भी है, इससे भी ज्यादा।<ref>{{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=AMD-Radeon-GPUFORT|title = AMD Publishes Open-Source "GPUFORT" as Newest Effort to Help Transition Away from CUDA}}</ref> | ||
=== उच्च स्तर === | === उच्च स्तर === | ||
आरओसीएम उच्च-स्तरीय पुस्तकालयों को आमतौर पर [[यंत्र अधिगम]] फ्रेमवर्क जैसे अनुप्रयोग सॉफ़्टवेयर द्वारा सीधे उपयोग किया जाता है। निम्नलिखित में से अधिकांश लाइब्रेरी [[सामान्य मैट्रिक्स गुणा]] (जीईएमएम) श्रेणी में हैं, जिसमें जीपीयू आर्किटेक्चर उत्कृष्ट है। | |||
इनमें से अधिकांश उपयोगकर्ता-सामना करने वाले पुस्तकालय दोहरे रूप में आते हैं: अप्रत्यक्ष परत के लिए हिप जो एनवीडिया हार्डवेयर को रूट कर सकता है, और एएमडी कार्यान्वयन के लिए आरओसी।<ref> | इनमें से अधिकांश उपयोगकर्ता-सामना करने वाले पुस्तकालय दोहरे रूप में आते हैं: अप्रत्यक्ष परत के लिए हिप जो एनवीडिया हार्डवेयर को रूट कर सकता है, और एएमडी कार्यान्वयन के लिए आरओसी।<ref> | ||
| Line 323: | Line 315: | ||
==== रोकब्लास / हिपब्लास ==== | ==== रोकब्लास / हिपब्लास ==== | ||
[https://github.com/rocmsoftwareplatform/rocblas rocBLAS] और [https://github.com/rocmsoftwareplatform/hipblashipBLAS] उच्च-स्तरीय पुस्तकालयों में केंद्रीय हैं, यह [[बुनियादी रेखीय बीजगणित उपप्रोग्राम]] के लिए | [https://github.com/rocmsoftwareplatform/rocblas rocBLAS] और [https://github.com/rocmsoftwareplatform/hipblashipBLAS] उच्च-स्तरीय पुस्तकालयों में केंद्रीय हैं, यह [[बुनियादी रेखीय बीजगणित उपप्रोग्राम]] के लिए एएमडी कार्यान्वयन है। | ||
यह निजी तौर पर पुस्तकालय [https://github.com/ROCmSoftwarePlatform/Tensile Tensile] का उपयोग करता है। | यह निजी तौर पर पुस्तकालय [https://github.com/ROCmSoftwarePlatform/Tensile Tensile] का उपयोग करता है। | ||
==== रॉक्सोल्वर / हिप्सोल्वर ==== | ==== रॉक्सोल्वर / हिप्सोल्वर ==== | ||
पुस्तकालयों की यह जोड़ी | पुस्तकालयों की यह जोड़ी आरओसीएम के लिए [[LAPACK]] कार्यान्वयन का गठन करती है और इसे rocBLAS से मजबूती से जोड़ा जाता है। | ||
=== उपयोगिताएँ === | === उपयोगिताएँ === | ||
* [https://github.com/orgs/ROCm-Developer-Tools | * [https://github.com/orgs/ROCm-Developer-Tools आरओसीएम डेवलपर टूल]: डिबग, ट्रेसर, प्रोफाइलर, सिस्टम मैनेजमेंट इंटरफेस, वैलिडेशन सूट, क्लस्टर मैनेजमेंट। | ||
* [https://github.com/GPUOpen-Tools | * [https://github.com/GPUOpen-Tools जीपीयूओपन tools]: जीपीयू विश्लेषक, मेमोरी विज़ुअलाइज़र... | ||
* बाहरी उपकरण: रैडॉनटॉप (पाठ-आधारित उपयोगकर्ता इंटरफ़ेस अवलोकन) | * बाहरी उपकरण: रैडॉनटॉप (पाठ-आधारित उपयोगकर्ता इंटरफ़ेस अवलोकन) | ||
| Line 340: | Line 332: | ||
{{Main|CUDA}} | {{Main|CUDA}} | ||
क्यूब्लास और ऐसी उच्च-स्तरीय लाइब्रेरी तक एनवीडिया क्लोज-सोर्स है।<br /> | क्यूब्लास और ऐसी उच्च-स्तरीय लाइब्रेरी तक एनवीडिया क्लोज-सोर्स है।<br /> | ||
Nvidia Nvidia CUDA Compiler (NVCC) के रूप में Clang फ्रंटएंड और इसके [[समानांतर थ्रेड निष्पादन]] (PTX) LLVM | Nvidia Nvidia CUDA Compiler (NVCC) के रूप में Clang फ्रंटएंड और इसके [[समानांतर थ्रेड निष्पादन]] (PTX) LLVM जीपीयू बैकएंड को वेंडर करता है।<br /> | ||
इसके ऊपर एक ओपन-सोर्स लेयर है, उदाहरण के लिए [https://github.com/rapidsai RAPIDS]। | इसके ऊपर एक ओपन-सोर्स लेयर है, उदाहरण के लिए [https://github.com/rapidsai RAPIDS]। | ||
| Line 350: | Line 342: | ||
== यह भी देखें == | == यह भी देखें == | ||
*एएमडी#सॉफ्टवेयर - एएमडी के ड्राइवरों, एपीआई और विकास प्रयासों का एक सामान्य अवलोकन। | *एएमडी#सॉफ्टवेयर - एएमडी के ड्राइवरों, एपीआई और विकास प्रयासों का एक सामान्य अवलोकन। | ||
* | *जीपीयूओपन - एएमडी का पूरक ग्राफ़िक्स स्टैक | ||
*[[AMD Radeon Software]] - | *[[AMD Radeon Software|एएमडी Radeon Software]] - एएमडी का सॉफ्टवेयर वितरण चैनल | ||
==संदर्भ== | ==संदर्भ== | ||
Revision as of 13:07, 9 March 2023
| 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 उपभोक्ता जीपीयू शामिल हैं।
एएमडी Accelerated Processing Unit (APU) सक्षम हैं, लेकिन आधिकारिक रूप से समर्थित नहीं हैं। आरओसीएम के कार्यशील होने में शामिल है।[12]
प्रोफेशनल-ग्रेड जीपीयू
prosumer Radeon Pro के साथ एएमडी Instinct Accelerators प्रथम श्रेणी के आरओसीएम नागरिक हैं: वे ज्यादातर पूर्ण समर्थन देखते हैं।
जनवरी 2022 तक राडॉन VII (GCN 5 - वेगा) एकमात्र उपभोक्ता-ग्रेड जीपीयू है जिसे अपेक्षाकृत समान समर्थन प्राप्त है।
उपभोक्ता-ग्रेड जीपीयू
| Name of जीपीयू series | Southern Islands |
Sea Islands |
Volcanic Islands |
Arctic Islands/Polaris |
Vega | Navi 1X | Navi 2X | |
|---|---|---|---|---|---|---|---|---|
| Released | Jan 2012 | Sep 2013 | Jun 2015 | Jun 2016 | Jun 2017 | Jul 2019 | Nov 2020 | |
| Marketing Name | Radeon HD 7000 | Radeon Rx 200 | Radeon Rx 300 | Radeon RX 400/500 | Radeon RX Vega/Radeon VII(7 nm) | Radeon RX 5000 | Radeon RX 6000 | |
| एएमडी support | Current | |||||||
| Instruction set | GCN instruction set | आरडीएनए instruction set | ||||||
| Microarchitecture | GCN 1st gen | GCN 2nd gen | GCN 3rd gen | GCN 4th gen | GCN 5th gen | आरडीएनए | आरडीएनए 2 | |
| Type | Unified shader model | |||||||
| आरओसीएम[13] | Yes | Yes | ||||||
| ओपनसीएल | 1.2 (on Linux: 1.1 (no Image support) with Mesa 3D) | 2.0 (Adrenalin driver on Win7+) (on Linux: 1.1 (no Image support) with Mesa 3D, 2.0 with एएमडी drivers or एएमडी आरओसीएम) |
2.0 | 2.1[14] | ||||
| Vulkan | 1.0 (Win 7+ or Mesa 17+) |
1.2 (Adrenalin 20.1, Linux Mesa 3D 20.0) | ||||||
| Shader model | 5.1 | 5.1 6.3 |
6.4 | 6.5 | ||||
| OpenGL | 4.6 (on Linux: 4.6 (Mesa 3D 20.0)) | |||||||
| Direct3D | 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] | Yes | ||||||
- ↑ DRM (Direct Rendering Manager) is a component of the Linux kernel.
सॉफ्टवेयर पारिस्थितिकी तंत्र
सीखने के संसाधन
This section needs expansion. You can help by adding to it. (January 2022) |
एएमडी आरओसीएम उत्पाद प्रबंधक ने स्टैक का दौरा किया।[16]
तृतीय-पक्ष एकीकरण
स्टैक के मुख्य उपभोक्ता मशीन लर्निंग और उच्च-प्रदर्शन कंप्यूटिंग/जीपीजीपीयू अनुप्रयोग हैं।
मशीन लर्निंग
विभिन्न डीप लर्निंग फ्रेमवर्क में आरओसीएम बैकएंड होता है:[17]
- PyTorch
- टेंसरफ्लो
- ओएनएक्स
- अपाचे एमएक्सनेट
- क्यूपी[18]
- MIOpen
- कैफ (सॉफ्टवेयर)
- Iree (जो LLVM मल्टी-लेवल इंटरमीडिएट रिप्रेजेंटेशन (MLIR) का उपयोग करता है)
सुपरकंप्यूटिंग
आरओसीएम टॉप500 में महत्वपूर्ण कर्षण प्राप्त कर रहा है।[19] आरओसीएम का उपयोग Exascale सुपरकंप्यूटर ElCapitan (सुपरकंप्यूटर) के साथ किया जाता है[20][21] और फ्रंटियर (सुपरकंप्यूटर)।
कुछ संबंधित सॉफ़्टवेयर एएमडी Infinity हब पर उपलब्ध हैं।
अन्य त्वरण और ग्राफिक्स इंटरऑपरेशन
संस्करण 3.0 के अनुसार, ब्लेंडर (सॉफ्टवेयर) अब अपने रेंडरिंग (कंप्यूटर ग्राफिक्स) चक्रों के लिए एचआईपी कंप्यूट कर्नेल का उपयोग कर सकता है।[22]
अन्य भाषाएँ
जूलिया
जूलिया (प्रोग्रामिंग भाषा) में AMDGPU.jl पैकेज है,[23] जो एलएलवीएम के साथ एकीकृत होता है और आरओसीएम स्टैक के घटकों का चयन करता है। एचआईपी के माध्यम से कोड संकलित करने के बजाय, एएमडीजीपीयू.जेएल सीधे एलएलवीएम आईआर उत्पन्न करने के लिए जूलिया के कंपाइलर का उपयोग करता है, जिसे बाद में एलएलवीएम द्वारा देशी डिवाइस कोड उत्पन्न करने के लिए उपयोग किया जाता है। AMDGPU.jl डिवाइस पर नेटिव कोड अपलोड करने और इसे निष्पादित करने के लिए ROCr के एचएसए कार्यान्वयन का उपयोग करता है, ठीक उसी तरह जिस तरह एचआईपी अपने स्वयं के जनरेट किए गए डिवाइस कोड को लोड करता है।
AMDGPU.jl भी आरओसीएम के rocBLAS (BLAS के लिए), rocRAND (यादृच्छिक संख्या पीढ़ी के लिए), और rocFFT (FFTs के लिए) के साथ एकीकरण का समर्थन करता है। RocALUTION, rocSOLVER, MIOpen, और कुछ अन्य आरओसीएम पुस्तकालयों के साथ भविष्य के एकीकरण की योजना बनाई गई है।
सॉफ्टवेयर वितरण
आधिकारिक
आरओसीएम सॉफ्टवेयर वर्तमान में दर्जनों सार्वजनिक गिटहब रिपॉजिटरी में फैला हुआ है। मुख्य सार्वजनिक [https://github.com/radeonopencompute/rocm मेटा-रिपॉजिटरी] के भीतर, प्रत्येक अधिकारी के लिए एक xml मेनिफ़ेस्ट है रिलीज़: git-repo का उपयोग करना, git के शीर्ष पर निर्मित संस्करण नियंत्रण उपकरण, स्टैक के साथ स्थानीय रूप से सिंक्रनाइज़ करने का अनुशंसित तरीका है।[24] आरओसीएम 5.1 की रिलीज आसन्न है, संभवत: फरवरी के मध्य में हर महीने एक मामूली रिलीज दी जाती है।[17]
| Stack area | Public GitHub organisation |
|---|---|
| Low-level (mostly) | https://github.com/radeonopencompute |
| Mid-level (mostly) | https://github.com/rocm-developer-tools |
| High-level (mostly) | https://github.com/rocmsoftwareplatform/ |
एएमडी आरओसीएम के लिए कंटेनरीकृत अनुप्रयोगों का वितरण शुरू करता है, विशेष रूप से एएमडी Infinity Hub के तहत एकत्र किए गए वैज्ञानिक अनुसंधान अनुप्रयोगों के लिए।[25] एएमडी खुद को वितरित करता है विभिन्न लिनक्स वितरणों के अनुरूप पैकेज।
तृतीय-पक्ष
तृतीय-पक्ष पारिस्थितिकी तंत्र पैकेजिंग आरओसीएम बढ़ रहा है।
लिनक्स वितरण आधिकारिक तौर पर (मूल रूप से) आरओसीएम की पैकेजिंग कर रहे हैं, उन्नति की विभिन्न डिग्री के साथ: आर्क,[26] जेंटू,[27] डेबियन और फेडोरा,[28] जीएनयू गुइक्स, निक्सओएस।
स्पैक पैकेज हैं।[29]
अवयव
This section needs expansion. You can help by adding to it. (January 2022) |
एक कर्नेल-स्पेस कंपोनेंट है, ROCk, और बाकी - स्टैक में लगभग सौ कंपोनेंट्स हैं - जो यूजर स्पेस | यूजर-स्पेस मॉड्यूल से बना है।
अनौपचारिक टाइपोग्राफ़िक नीति का उपयोग करना है: निम्न-स्तरीय पुस्तकालयों के लिए अपरकेस ROC लोअरकेस अनुसरण करना, यानी ROCt, और इसके विपरीत उपयोगकर्ता-सामना करने वाले पुस्तकालयों के लिए, यानी rocBLAS।[30] एएमडी एलएलवीएम समुदाय के साथ सक्रिय विकास कर रहा है, लेकिन अपस्ट्रीमिंग तात्कालिक नहीं है, और जनवरी 2022 तक, अभी भी पिछड़ रहा है।[31] एएमडी अभी भी आधिकारिक तौर पर विभिन्न एलएलवीएम फोर्क्स को पैकेज करता है[32][33][7]उन हिस्सों के लिए जो अभी तक उजान नहीं हुए हैं - कंपाइलर ऑप्टिमाइज़ेशन स्वामित्व, डीबग समर्थन, ओपनएमपी ऑफ़लोडिंग रहने के लिए नियत हैं ...
निम्न स्तर
रॉक - कर्नेल ड्राइवर
आरओसीएम - डिवाइस लाइब्रेरी
सपोर्ट लाइब्रेरी एलएलवीएम बिटकोड के रूप में लागू किया गया। ये मैथ ऑपरेशंस, एटॉमिक्स, प्रारंभ पैरामीटर्स के लिए क्वेश्चन, ऑन-डिवाइस कर्नेल प्रारंभ आदि के लिए विभिन्न यूटिलिटीज और फंक्शन प्रदान करते हैं।
आरओसीटी - थंक
thunk ढेर में जाने वाली सभी सोच और कतार के लिए ज़िम्मेदार है।
आरओसीआर - रनटाइम
ROC रनटाइम ROC कॉमन लैंग्वेज रनटाइम से इस मायने में अलग है कि यह एक ही चीज़ नहीं है।
आरओसीएम - कंपाइलर सपोर्ट
आरओसीएम कोड ऑब्जेक्ट मैनेजर एलएलवीएम इंटरमीडिएट प्रतिनिधित्व के साथ बातचीत करने के प्रभारी हैं।
मध्य स्तर
ROCclr सामान्य भाषा रनटाइम
सामान्य भाषा रनटाइम एक अप्रत्यक्ष परत है जो विंडोज़ पर Linux और PAL पर ROCr को कॉल्स को अनुकूलित करती है। यह एचएसएआईएल-कंपाइलर जैसे विभिन्न कंपाइलरों के बीच रूट करने में सक्षम होता था। यह अब ऊपरी अप्रत्यक्ष परतों (एचआईपी, ओपनसीएल) द्वारा अवशोषित किया जा रहा है।
ओपनसीएल
आरओसीएम अपने इंस्टाल करने योग्य क्लाइंट ड्राइवर ICD लोडर और एक ओपनसीएल को शिप करता है[34] कार्यान्वयन एक साथ बंडल। जनवरी 2022 तक, आरओसीएम 4.5.2 ओपनसीएल 2.2 को शिप करता है, और प्रतिस्पर्धा में पिछड़ रहा है।[35]
हिप - पोर्टेबिलिटी के लिए हेटेरोगेनोस इंटरफ़ेस
इसके जीपीयू के लिए एएमडी कार्यान्वयन को HIPAMD कहा जाता है। ज्यादातर प्रदर्शन उद्देश्यों के लिए CPU कार्यान्वयन भी है।
एचआईपीसीसी
एचआईपी एक `HIPCC` कंपाइलर बनाता है जो या तो बजना को लपेटता है और LLVM खुले AMDGPU बैकएंड के साथ संकलित करता है, या Nvidia CUDA कंपाइलर पर रीडायरेक्ट करता है।[36]
हिप्पी
HIPIFY एक सोर्स-टू-सोर्स कंपाइलिंग टूल है, यह CUDA को एचआईपी और रिवर्स में ट्रांसलेट करता है, या तो क्लैंग-बेस्ड टूल या सीड-जैसे पर्ल का उपयोग करता है लिखी हुई कहानी।
जीपीयूएफओआरटी
HIPIFY की तरह, GPUFORT एक टूल है जो स्रोत कोड को अन्य तीसरी पीढ़ी के भाषा स्रोतों में संकलित करता है, जिससे उपयोगकर्ता CUDA फोरट्रान से एचआईपी फोरट्रान में माइग्रेट कर सकते हैं। यह अनुसंधान परियोजनाओं के प्रदर्शनों की सूची में भी है, इससे भी ज्यादा।[37]
उच्च स्तर
आरओसीएम उच्च-स्तरीय पुस्तकालयों को आमतौर पर यंत्र अधिगम फ्रेमवर्क जैसे अनुप्रयोग सॉफ़्टवेयर द्वारा सीधे उपयोग किया जाता है। निम्नलिखित में से अधिकांश लाइब्रेरी सामान्य मैट्रिक्स गुणा (जीईएमएम) श्रेणी में हैं, जिसमें जीपीयू आर्किटेक्चर उत्कृष्ट है।
इनमें से अधिकांश उपयोगकर्ता-सामना करने वाले पुस्तकालय दोहरे रूप में आते हैं: अप्रत्यक्ष परत के लिए हिप जो एनवीडिया हार्डवेयर को रूट कर सकता है, और एएमडी कार्यान्वयन के लिए आरओसी।[38]
रोकब्लास / हिपब्लास
rocBLAS और [2] उच्च-स्तरीय पुस्तकालयों में केंद्रीय हैं, यह बुनियादी रेखीय बीजगणित उपप्रोग्राम के लिए एएमडी कार्यान्वयन है। यह निजी तौर पर पुस्तकालय Tensile का उपयोग करता है।
रॉक्सोल्वर / हिप्सोल्वर
पुस्तकालयों की यह जोड़ी आरओसीएम के लिए LAPACK कार्यान्वयन का गठन करती है और इसे rocBLAS से मजबूती से जोड़ा जाता है।
उपयोगिताएँ
- आरओसीएम डेवलपर टूल: डिबग, ट्रेसर, प्रोफाइलर, सिस्टम मैनेजमेंट इंटरफेस, वैलिडेशन सूट, क्लस्टर मैनेजमेंट।
- जीपीयूओपन tools: जीपीयू विश्लेषक, मेमोरी विज़ुअलाइज़र...
- बाहरी उपकरण: रैडॉनटॉप (पाठ-आधारित उपयोगकर्ता इंटरफ़ेस अवलोकन)
प्रतिस्पर्धियों के साथ तुलना
आरओसीएम जीपीयू कंप्यूटिंग के उद्देश्य से समान स्टैक का एक प्रतियोगी है: एनवीडिया सीयूडीए और वनएपीआई (कंप्यूट त्वरण)।
एनवीडिया क्यूडा
क्यूब्लास और ऐसी उच्च-स्तरीय लाइब्रेरी तक एनवीडिया क्लोज-सोर्स है।
Nvidia Nvidia CUDA Compiler (NVCC) के रूप में Clang फ्रंटएंड और इसके समानांतर थ्रेड निष्पादन (PTX) LLVM जीपीयू बैकएंड को वेंडर करता है।
इसके ऊपर एक ओपन-सोर्स लेयर है, उदाहरण के लिए RAPIDS।
इंटेल वनएपीआई
This section is empty. You can help by adding to it. (January 2022) |
यह भी देखें
- एएमडी#सॉफ्टवेयर - एएमडी के ड्राइवरों, एपीआई और विकास प्रयासों का एक सामान्य अवलोकन।
- जीपीयूओपन - एएमडी का पूरक ग्राफ़िक्स स्टैक
- एएमडी Radeon Software - एएमडी का सॉफ्टवेयर वितरण चैनल
संदर्भ
- ↑ "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.
- ↑ "User Guide for AMDGPU Backend — LLVM 13 documentation". Llvm.org. Retrieved January 18, 2022.
- ↑ 7.0 7.1 "The LLVM Compiler Infrastructure". GitHub. January 19, 2022.
- ↑ "Introduction to AMD GPU Hardware" – via www.youtube.com.
- ↑ "Fundamentals of HIP Programming". AMD.
- ↑ "ROCm™ Learning Center". AMD.
- ↑ "AMD ROCm / HCC programming: Introduction". December 26, 2018.
- ↑ "Here's something you don't see every day: PyTorch running on top of ROCm on a 6800M (6700XT) laptop! Took a ton of minor config tweaks and a few patches but it actually functionally works. HUGE!". December 10, 2021.
- ↑ "ROCm Getting Started Guide v5.2.3".
- ↑ "AMD Radeon RX 6800 XT Specs". TechPowerUp. Retrieved January 1, 2021.
- ↑ Larabel, Michael (December 7, 2016). "The Best Features of the Linux 4.9 Kernel". Phoronix. Retrieved December 7, 2016.
- ↑ "ROCm presentation". HPCwire.com. July 6, 2020. Retrieved January 18, 2022.
- ↑ 17.0 17.1 "AMD Introduces Its Deep-Learning Accelerator Instinct MI200 Series GPUs". Infoq.com. Retrieved January 18, 2022.
- ↑ "Installation".
- ↑ "AMD Chips Away at Intel in World's Top 500 Supercomputers as GPU War Looms". November 16, 2020.
- ↑ "El Capitan Supercomputer Detailed: AMD CPUs & GPUs to Drive 2 Exaflops of Compute".
- ↑ "Livermore's el Capitan Supercomputer to Debut HPE 'Rabbit' Near Node Local Storage". February 18, 2021.
- ↑ "Blender 3.0 takes support for AMD GPUs to the next level. Beta support available now!". Gpuopen.com. November 15, 2021. Retrieved January 18, 2022.
- ↑ "AMD ROCm ⋅ JuliaGPU". juliagpu.org.
- ↑ "ROCm Installation v4.3 — ROCm 4.5.0 documentation". Rocmdocs.amd.com. Retrieved January 18, 2022.
- ↑ "Running Scientific Applications on AMD Instinct Accelerators Just Got Easier". HPCwire.com. October 18, 2021. Retrieved January 25, 2022.
- ↑ "ROCm for Arch Linux". Github.com. January 17, 2022. Retrieved January 18, 2022.
- ↑ "Gentoo Linux Packages Up AMD ROCm, Makes Progress On RISC-V, LTO+PGO Python". Phoronix.com. Retrieved January 18, 2022.
- ↑ "Fedora & Debian Developers Look At Packaging ROCm For Easier Radeon GPU Computing Experience". Phoronix.com. Retrieved January 18, 2022.
- ↑ Gamblin, Todd; LeGendre, Matthew; Collette, Michael R.; Lee, Gregory L.; Moody, Adam; de Supinski, Bronis R.; Futral, Scott (November 15, 2015). "The Spack Package Manager: Bringing Order to HPC Software Chaos" – via GitHub.
- ↑ Bloor, Cordell. "20211221 Packaging session notes and small update". debian-ai@lists.debian.org (Mailing list) (in English). Retrieved January 18, 2022.
- ↑ "[Debian official packaging] How is ROCm LLVM fork still needed? · Issue #2449 · ROCm-Developer-Tools/HIP". GitHub.
- ↑ "Aomp - V 14.0-1". GitHub. January 22, 2022.
- ↑ "The LLVM Compiler Infrastructure". GitHub. January 10, 2022.
- ↑ "Khronos OpenCL Registry - The Khronos Group Inc". www.khronos.org.
- ↑ "List of OpenCL Conformant Products - The Khronos Group Inc". www.khronos.org. February 3, 2022.
- ↑ "Figure 3. HIPCC compilation process illustration. The clang compiler".
- ↑ "AMD Publishes Open-Source "GPUFORT" as Newest Effort to Help Transition Away from CUDA".
- ↑ Maia, Julio; Chalmers, Noel; T. Bauman, Paul; Curtis, Nicholas; Malaya, Nicholas; McDougall, Damon; van Oostrum, Rene; Wolfe, Noah (May 2021). ROCm Library Support & Profiling Tools (PDF). AMD.
बाहरी संबंध
- "ROCm official documentation". AMD. February 10, 2022.
- "ROCm Learning Center". AMD. January 25, 2022.
- "ROCm official documentation on the github super-project". AMD. January 25, 2022.
- "ROCm official documentation - pre 5.0". AMD. January 19, 2022.
- "GPU-Accelerated Applications with AMD Instinct Accelerators & AMD ROCm Software" (PDF). AMD. January 25, 2022.
- "AMD Infinity Hub". AMD. January 25, 2022. — Docker containers for scientific applications.