RISC-V इंस्ट्रक्शन सेट आर्किटेक्चर पर आधारित ओपन-सोर्स GPGPU विकसित करने वाला Vortex 3.0 प्रोजेक्ट, जो OpenCL API और SIMT (सिंगल इंस्ट्रक्शन, मल्टीपल थ्रेड्स) एक्जीक्यूशन मॉडल का उपयोग करके पैरेलल कंप्यूटिंग के लिए डिज़ाइन किया गया है, अब उपलब्ध है। इस प्रोजेक्ट का उपयोग 3D ग्राफिक्स अनुसंधान और नए GPU आर्किटेक्चर के विकास के लिए भी किया जा सकता है। स्कीमेटिक्स, वेरिलॉग में हार्डवेयर ब्लॉक विवरण, सिम्युलेटर, ड्राइवर और संबंधित डिज़ाइन दस्तावेज़ Apache 2.0 लाइसेंस के तहत वितरित किए जाते हैं।
GPGPU मानक RISC-V ISA पर आधारित है, जिसे GPU सुविधाओं और थ्रेड प्रबंधन का समर्थन करने के लिए अतिरिक्त निर्देशों के साथ विस्तारित किया गया है। RISC-V निर्देश सेट आर्किटेक्चर में परिवर्तन न्यूनतम रखे गए हैं, और जहां भी संभव हो मौजूदा वेक्टर निर्देशों का उपयोग किया गया है। अतिरिक्त निर्देशों में शामिल हैं: टेक्सचर प्रोसेसिंग को तेज करने के लिए "tex"; रैस्टराइज़ेशन नियंत्रण के लिए vx_rast; फ़्रैगमेंट, डेप्थ और पारदर्शिता प्रोसेसिंग के लिए vx_rop; गुणा और जोड़ कार्यों के लिए vx_imadd; और SIMD इंजन द्वारा समानांतर रूप से निष्पादित थ्रेड समूहों (वेवफ्रंट्स) को सक्रिय करने के लिए vx_wspawn, vx_split, vx_join, vx_tmc और vx_bar।

विकसित किया जा रहा GPGPU 32- और 64-बिट RISC-V RV32IMF और RV64IMAFD इंस्ट्रक्शन सेट आर्किटेक्चर को सपोर्ट करता है और इसमें वैकल्पिक शेयर्ड मेमोरी, L1, L2 और L3 कैश, और कॉन्फ़िगर करने योग्य संख्या में कोर, वार्प और थ्रेड शामिल हो सकते हैं। प्रत्येक कोर में कॉन्फ़िगर करने योग्य संख्या में ALU, FPU, LSU और SFU भी शामिल हो सकते हैं। प्रोटोटाइपिंग के लिए Xilinx और Altera FPGA का उपयोग किया जा सकता है, और चिप सिमुलेशन के लिए Verilator (Verilog सिम्युलेटर), RTLSIM (RTL सिमुलेशन) और SimX (सॉफ्टवेयर सिमुलेशन) का उपयोग किया जा सकता है।
एप्लिकेशन डेवलपमेंट के लिए, एक टूलकिट उपलब्ध कराया गया है, जिसमें वॉर्टेक्स के अनुकूल PoCL (ओपनसीएल कंपाइलर और रनटाइम), LLVM/Clang, GCC और Binutils के संस्करण शामिल हैं। यह प्रोजेक्ट ओपनसीएल 1.2 विनिर्देश का समर्थन करता है और ओपनसीएल में अनुवाद के माध्यम से शेडर्स के SPIR-V मध्यवर्ती प्रतिनिधित्व के लिए समर्थन लागू करता है।
वोर्टेक्स 3.0 में निम्नलिखित परिवर्तन शामिल हैं:
- हार्डवेयर ग्राफिक्स स्टैक जोड़ा गया है, जिसमें रैस्टराइज़ेशन, टेक्सचर मैपिंग और आउटपुट मर्जिंग (OM) के लिए ब्लॉक शामिल हैं। कार्यान्वित ग्राफिक्स स्टैक और लावापाइप सॉफ्टवेयर रैस्टराइज़र के आधार पर मेसा के लिए एक वल्कन ड्राइवर, वोर्टेक्सपाइप विकसित किया गया है।
- मशीन लर्निंग मॉडल के निष्पादन को गति देने के लिए डिज़ाइन किए गए टेंसर कोर की क्षमताओं का विस्तार किया गया है, जिसमें वेट मैट्रिक्स को संपीड़ित करने के लिए संरचित विरलता के लिए समर्थन लागू किया गया है।
- मैट्रिक्स गुणन के लिए अतुल्यकालिक मोड में WGMMA (वार्पग्रुप-स्तरीय मैट्रिक्स गुणन) ऑपरेशन को कार्यान्वित किया गया है।
- ग्लोबल मेमोरी से लोकल मेमोरी में डेटा ट्रांसफर की गति बढ़ाने के लिए DXA (डेटा ट्रांसफर एक्सेलरेशन) इंजन जोड़ा गया है।
- एक नई वास्तुकला को कमांड प्रोसेसर (सीपी) और कंप्यूटिंग कोर के हार्डवेयर शेड्यूलर (केएमयू - कर्नेल मैनेजमेंट यूनिट) के आधार पर लागू किया गया है, जो कंप्यूटिंग थ्रेड्स को चिप साइड में भेजने की अनुमति देता है।
- एक नई रनटाइम लाइब्रेरी प्रस्तावित की गई है जो नॉन-ब्लॉकिंग मोड में काम करती है और ऐसे एब्स्ट्रैक्शन प्रदान करती है जो अतुल्यकालिक रूप से निष्पादित हार्डवेयर कमांड में परिवर्तित होते हैं। इसमें क्यू, इवेंट, मॉड्यूल और अराइव/वेट/इवेंट सिमेंटिक्स के साथ अतुल्यकालिक बैरियर पर आधारित सिंक्रोनाइज़ेशन समर्थित हैं।
- RISC-V शॉर्टेड इंस्ट्रक्शंस (RVC) के लिए समर्थन जोड़ा गया।
- परमाणु संचालन के लिए हार्डवेयर समर्थन (हार्डवेयर एटॉमिक्स) लागू किया गया है।
- एफपीयू को पूरी तरह से नया रूप दिया गया है और नए गुणक (वॉलेस-ट्री, फोल्डेड-रेडिक्स) और योजक (कोग्गे-स्टोन) ब्लॉक पेश किए गए हैं।
- 32-बिट SV32 वर्चुअल एड्रेसिंग आर्किटेक्चर के समर्थन के साथ मेमोरी मैनेजमेंट यूनिट (MMU) पर आधारित एक वर्चुअल मेमोरी स्टैक जोड़ा गया है।
- सशर्त संचालन के कार्यान्वयन के साथ RISC-V Zicond एक्सटेंशन के लिए समर्थन।
- एकीकृत क्लॉक गेटिंग।
- HIP (Heterogeneous Interface for Portability) भाषा के लिए समर्थन chipStar फ्रेमवर्क के माध्यम से कार्यान्वित किया गया है, जो HIP को SPIR-V में अनुवादित करता है।
- GEM5 सिम्युलेटर के साथ पूर्ण एकीकरण प्रदान किया गया है, और TLM (ट्रांजैक्शन-लेवल मॉडलिंग) आर्किटेक्चर पर SimX सिम्युलेटर के लिए समर्थन जोड़ा गया है।
- चिप निर्माण के लिए लॉजिक सिंथेसिस हेतु Synopsys और Yosys टूलकिट के लिए समर्थन जोड़ा गया है, साथ ही ASAP7 (7nm), SAED14 (14nm) और NanGate (15nm) मानक तत्व पुस्तकालयों के उपयोग के लिए भी समर्थन जोड़ा गया है।
- रेफरेंस टूलचेन को LLVM 20 और POCL 7.0 में अपडेट कर दिया गया है।
स्रोत: opennet.ru
