समाचार
समाचार
CUDA ट्रांसप्लांट किया गया है, और जोखिम-वी-आधारित GPU चल रहा है?
2022-03-17 459

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


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


आज, शोधकर्ताओं ने वोर्टेक्स नामक आरआईएससी-वी जीपीजीपीयू परियोजना पर सीयूडीए सॉफ्टवेयर टूलकिट समर्थन को सक्षम करने के तरीके की जांच की। वोर्टेक्स आरआईएससी-वी जीपीजीपीयू को आरवी32आईएमएफ आईएसए पर आधारित सिस्टम-वाइड आरआईएससी-वी जीपीयू प्रदान करने के लिए डिज़ाइन किया गया है। इसका मतलब है कि 32-बिट कोर 1-कोर से 32-कोर जीपीयू डिज़ाइन तक स्केल कर सकते हैं। यह ओपनसीएल 1.2 ग्राफ़िक्स एपीआई का समर्थन करता है, और आज यह कुछ CUDA संचालन का भी समर्थन करता है।


शोधकर्ता समझाते हैं: "...इस परियोजना में, हम एंड-टू-एंड CUDA माइग्रेशन का समर्थन करने के लिए एक पाइपलाइन का प्रस्ताव और निर्माण करते हैं: पाइपलाइन CUDA स्रोत कोड को इनपुट के रूप में स्वीकार करती है और उन्हें विस्तारित RISC-V GPU आर्किटेक्चर पर निष्पादित करती है। हमारा पाइपलाइन में कई चरण होते हैं: CUDA स्रोत कोड को NVVM IR में अनुवाद करना, NVVM IR को SPIR-V IR में बदलना, RISC-V बाइनरी प्राप्त करने के लिए SPIR-V IR को POCL में अग्रेषित करना, और अंत में विस्तारित RISC-V GPU बाइनरी फ़ाइल आर्किटेक्चर पर निष्पादित करना। "



प्रक्रिया ऊपर की छवि में दिखाई गई है, जिसमें इसे काम करने के सभी चरण दिखाए गए हैं। सरल शब्दों में, CUDA स्रोत कोड को एक मध्यवर्ती प्रतिनिधित्व (IR) प्रारूप में दर्शाया जाता है जिसे NVVM IR कहा जाता है, जो ओपन सोर्स LLVM IR पर आधारित है। बाद में इसे स्टैंडर्ड पोर्टेबल इंटरमीडिएट रिप्रेजेंटेशन (एसपीआईआर-वी) आईआर में बदल दिया गया, जिसे बाद में पीओसीएल नामक ओपनसीएल मानक के पोर्टेबल ओपन-सोर्स कार्यान्वयन में भेज दिया गया। चूँकि Vortex OpenCL का समर्थन करता है, यह समर्थित कोड प्रदान करता है और इसे बिना किसी समस्या के निष्पादित कर सकता है।


इस जटिल प्रक्रिया के बारे में अधिक जानकारी के लिए, मूल लेख पढ़ने के लिए नीचे क्लिक करें। महत्वपूर्ण रूप से, आपको CUDA को RISC-V GPGPUs पर चलाने के उनके प्रयासों के लिए इन शोधकर्ताओं को धन्यवाद देना चाहिए। हालांकि यह अभी के लिए केवल एक छोटा कदम है, यह एक ऐसे युग की शुरुआत हो सकती है जहां आरआईएससी-वी का उपयोग कंप्यूटिंग अनुप्रयोगों को तेज करने के लिए किया जाता है, आज एनवीडिया के जीपीयू लाइनअप की तरह।


विस्तारित रीडिंग: क्या आरआईएससी-वी जीपीयू बदल सकता है?


क्या आरआईएससी-वी जीपीयू लेनदेन संभाल सकता है? यह एक कार्य प्रगति पर है जिसे कस्टम प्रोग्रामेबिलिटी और स्केलेबिलिटी के साथ एक छोटे क्षेत्र-कुशल डिज़ाइन बनाकर हासिल किया जा सकता है।  
  जिस किसी ने भी GPU आर्किटेक्चर का अध्ययन किया है वह जानता है कि यह एक वेक्टर प्रोसेसर का SIMD निर्माण है। यह एक अति-कुशल समानांतर प्रोसेसर है जिसका उपयोग सिमुलेशन और महान गेम चलाने से लेकर रोबोटों को एआई प्राप्त करने के तरीके सिखाने और स्मार्ट लोगों को शेयर बाजार में हेरफेर करने में मदद करने तक हर चीज के लिए किया जाता है। जब मैं इसे लिखता हूं तो यह मेरे व्याकरण की भी जांच करता है।  
  लेकिन GPU क्षेत्र एक निजी क्षेत्र बन गया है, और इसका आंतरिक कार्य IP और द्वारा किया जाता है प्रभावी AMD, Intel और Nvidia जैसे डेवलपर्स की आपूर्ति। क्या होगा अगर 3D ग्राफिक्स और मीडिया प्रोसेसिंग के लिए डिज़ाइन किए गए ग्राफिक्स निर्देशों का एक नया सेट हो? खैर, हो सकता है।  
  नए निर्देश आरआईएससी-वी बेसिक वेक्टर इंस्ट्रक्शन सेट पर बनाए जा रहे हैं। वे मूल आरआईएससी-वी आईएसए की भावना में स्तरित एक्सटेंशन के रूप में नए ग्राफ़-विशिष्ट डेटा प्रकारों के लिए समर्थन जोड़ेंगे। वेक्टर, पूर्व गणित, पिक्सेल और बनावट, और Z/फ़्रेम बफ़र संचालन का समर्थन करता है। यह एक फ़्यूज्ड CPU-GPU ISA हो सकता है। लिलाइब्रेरी - आरआईएससी 3डी समूह इसे आरवी64एक्स (चित्र 1) कहता है क्योंकि निर्देश 64 बिट लंबे होंगे (32 बिट एक मजबूत आईएसए का समर्थन करने के लिए पर्याप्त नहीं होंगे)।  
 

चित्र 1. RV64X ग्राफिक्स प्रोसेसर में समर्पित बनावट इकाइयों और फ़ंक्शन ब्लॉकों के अलावा कई डीएसपी शामिल हैं।
 
  समूह ने कहा कि उनकी प्रेरणा और लक्ष्य कस्टम प्रोग्रामयोग्यता और विस्तारशीलता के साथ एक छोटा, कुशल डिज़ाइन बनाना था। इसे कम लागत वाला आईपी स्वामित्व और विकास प्रदान करना चाहिए, न कि वाणिज्यिक उत्पादों के साथ प्रतिस्पर्धा करना चाहिए। इसे FPGA और ASIC लक्ष्यों पर लागू किया जा सकता है और यह मुफ़्त और खुला स्रोत है। मूल डिज़ाइन कम शक्ति वाले माइक्रोकंट्रोलर्स को लक्षित करता है जो ख्रोनोस वल्कन संगत होंगे और अन्य एपीआई (ओपनजीएल, डायरेक्टएक्स, आदि) का समर्थन करेंगे।  
               

जीपीयू + आरआईएससी-वी


लक्ष्य हार्डवेयर में एक GPU कार्यात्मक इकाई और एक RISC-V कोर होगा। यह संयोजन प्रोसेसर के रूप में आता है जहां 64-बिट निर्देश स्केलर निर्देशों के रूप में एन्कोड किए जाते हैं। मुद्दा यह है कि कंपाइलर प्रीफ़िक्स्ड स्केलर ऑपकोड से SIMD निर्देश उत्पन्न करेगा। अन्य विशेषताओं में परिवर्तनशील मुद्दे, एक विधेय-आधारित SIMD बैकएंड शामिल हैं; शाखा ट्रैकिंग; सटीक अपवाद; और एक वेक्टर फ्रंटएंड। डिज़ाइन में 16-बिट फिक्स्ड-पॉइंट संस्करण और 32-बिट फ़्लोटिंग-पॉइंट संस्करण शामिल होगा। पूर्व FPGA कार्यान्वयन के लिए उपयुक्त है।  
  टीम ने कहा: "अप्रयुक्त सीपीयू मेमोरी स्पेस या अप्रयुक्त सीपीयू मेमोरी स्पेस को जीपीयू मेमोरी स्पेस में 3 डी एपीआई कॉल भेजने के लिए आरपीसी/आईपीसी कॉल तंत्र का उपयोग करने की कोई आवश्यकता नहीं है और इसके विपरीत,"  
  "फ्यूज्ड" सीपीयू-जीपीयू आईएसए दृष्टिकोण का लाभ यह है कि मानक ग्राफिक्स पाइपलाइनों का उपयोग माइक्रोकोड में किया जा सकता है, और कस्टम शेडर्स का समर्थन किया जा सकता है। यहां तक ​​कि रे ट्रेसिंग एक्सटेंशन भी शामिल हो सकते हैं।  
  डिज़ाइन वीब्लॉक प्रारूप में होगा (लिबरे जीपीयू प्रयास से):  
 
  • यह कुछ-कुछ VLIW जैसा है (लेकिन वास्तव में नहीं)।
  • निर्देश ब्लॉक रजिस्टर मार्करों से पहले होते हैं जो उस ब्लॉक के भीतर स्केलर निर्देशों के लिए अतिरिक्त संदर्भ प्रदान करते हैं।
  • सबब्लॉक में वेक्टर लंबाई, रोटेशन, वेक्टर/चौड़ाई ओवरले और भविष्यवाणी शामिल हैं।
  • यह सब स्केलर ऑपकोड में जोड़ा जाता है!
  • कोई वेक्टर ऑपकोड नहीं हैं (न ही किसी की आवश्यकता है)।
  • एक वेक्टर संदर्भ में, यह इस प्रकार होता है: यदि एक स्केलर ऑपकोड एक रजिस्टर का उपयोग करता है, और वह रजिस्टर वेक्टर संदर्भ में सूचीबद्ध है, तो वेक्टर मोड सक्रिय हो जाएगा।
  • सक्रियण के कारण लूप के लिए हार्डवेयर-स्तर कई लगातार स्केलर ऑपरेशन (सिर्फ एक के बजाय) उत्सर्जित करता है।
  • कार्यान्वयनकर्ता किसी भी तरह से लूप लागू करने के लिए स्वतंत्र हैं - SIMD, मल्टी-इश्यू, सिंगल-एक्ज़ीक्यूटिव; बहुत ज्यादा कुछ भी.

  RV32-V वेक्टर 8 से 16 तत्वों के 32-बिट, 2-बिट या 4-बिट/एलिमेंट वेक्टर संचालन को संभालता है। 3-बिट और 64-बिट फिक्स्ड और फ्लोटिंग पॉइंट XYZW पॉइंट के लिए सामान्य 128D ग्राफ़िक्स रेंडरिंग पाइपलाइन के लिए समर्पित निर्देश भी होंगे। 8-, 16-, 24- और 32-बिट आरजीबीए पिक्सेल; प्रति घटक 8-बिट, 16-बिट UVW टेक्सल्स; और प्रकाश और सामग्री सेटिंग्स (Ia, ka, Id, kd, Is, ks, आदि)।  
  विशेषता वेक्टर को 4×4 मैट्रिक्स के रूप में दर्शाया गया है। सिस्टम मूल रूप से 2×2 और 3×3 मैट्रिसेस का समर्थन करेगा। वेक्टर समर्थन एआई और मशीन लर्निंग अनुप्रयोगों में आम 8-बिट पूर्णांक डेटा प्रकारों का उपयोग करके संख्यात्मक सिमुलेशन के लिए भी उपयुक्त हो सकता है।  
  डिज़ाइन में कस्टम रैस्टराइज़र जैसे स्प्लिन, सबडिव सरफेस और पैच शामिल किए जा सकते हैं। यह विधि कस्टम पाइपलाइन चरणों, कस्टम ज्यामिति/पिक्सेल/फ़्रेमबफ़र चरणों, कस्टम सबडिवाइडर और कस्टम इंस्टेंसिंग संचालन को शामिल करने की भी अनुमति देती है।  
             

आरवी64एक्स


RV64X संदर्भ कार्यान्वयन में शामिल हैं:
 
 
  • निर्देश/डेटा एसआरएएम कैश (32 केबी)

  • माइक्रोकोड SRAM (8 kB)

  • डुअल फंक्शन इंस्ट्रक्शन डिकोडर (आरवी32वी और एक्स के लिए हार्डवेयर्ड; कस्टम आईएसए के लिए माइक्रोकोडेड इंस्ट्रक्शन डिकोडर)

  • क्वाड-वेक्टर ALU (32-बिट/ALU-फिक्स्ड/फ्लोट)

  • 136-बिट रजिस्टर फ़ाइल (1k तत्व)

  • विशेष कार्य इकाई

  • बनावट इकाई

  • कॉन्फ़िगर करने योग्य स्थानीय फ़्रेमबफ़र


  RV64X एक स्केलेबल आर्किटेक्चर है (चित्र 2)। इसकी फ़्यूज़न विधि नई है, जैसा कि कस्टम डेटा प्रकारों के लिए कॉन्फ़िगर करने योग्य रजिस्टरों का उपयोग है। उपयोगकर्ता-परिभाषित SRAM-आधारित माइक्रोकोड का उपयोग कस्टम रैस्टराइज़र चरणों, रे ट्रेसिंग, मशीन विज़न और मशीन लर्निंग जैसे एक्सटेंशन को लागू करने के लिए किया जा सकता है। एक एकल डिज़ाइन को स्टैंड-अलोन ग्राफिक्स माइक्रोकंट्रोलर या स्केलेबल शेडर इकाइयों के साथ मल्टी-कोर समाधान पर लागू किया जा सकता है।  
 

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

आगे क्या होगा


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





अस्वीकरण: यह लेख "सेमीकंडक्टर इंडस्ट्री ऑब्जर्वेशन" से पुन: प्रस्तुत किया गया है। यह लेख केवल लेखक की व्यक्तिगत राय का प्रतिनिधित्व करता है, सैक माइक्रो और उद्योग की राय का नहीं, केवल पुनर्मुद्रण और साझा करने के लिए, समर्थन बौद्धिक संपदा अधिकारों की रक्षा के लिए, कृपया पुनर्मुद्रण के लिए मूल स्रोत और लेखक को इंगित करें। यदि कोई उल्लंघन है, तो कृपया उसे हटाने के लिए हमसे संपर्क करें।

whatsapp

सेवा हॉटलाइन

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950