11 पॉइंट द्वारा xguru 2024-07-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • C++ में सरल तरीके से general-purpose GPU computing को संभव बनाने वाली एक हल्की लाइब्रेरी
  • WebGPU स्पेसिफिकेशन का उपयोग करके low-level GPU interface प्रदान करती है, जिससे विभिन्न GPU पर चल सकने वाला कोड लिखा जा सकता है
  • यानी, C++ प्रोजेक्ट में GPU कोड एम्बेड करके उसे Nvidia, Intel, AMD और अन्य GPU पर चलाया जा सकता है, और Vulkan, Metal, DirectX को सपोर्ट करने वाले अधिकांश हार्डवेयर पर उसी C++ कोड से GPU का उपयोग संभव होता है

तकनीकी लक्ष्य: हल्कापन, तेज development iteration, कम boilerplate code

  • लक्ष्य है कि न्यूनतम API के साथ GPU computing के लिए आवश्यक पूरे दायरे को कवर किया जाए
  • प्रोजेक्ट बिल्ड लगभग तुरंत हो, और compile/run cycle 5 सेकंड से कम रहे
  • standard C++ compiler के अलावा dependencies और tooling का बोझ न्यूनतम रखा जाए
  • छोटा API surface और न्यूनतम boilerplate code पर जोर, तथा abstraction layers को कम से कम रखकर gpu.cpp लाइब्रेरी और WebGPU API के बीच mapping को स्पष्ट बनाया गया है
  • Google के Dawn WebGPU implementation के pre-built binaries प्रदान करके compile समय को कम किया जाता है
    • अभी केवल Dawn backend सपोर्ट है, लेकिन आगे अन्य WebGPU implementations के लिए भी सपोर्ट की योजना है

gpu.cpp के लक्षित उपयोगकर्ता

  • मुख्य लक्ष्य वे प्रोजेक्ट हैं जिन्हें personal computing devices पर उच्च पोर्टेबिलिटी वाली GPU computing की आवश्यकता है
  • GPU algorithm development, neural network models का direct implementation, physics simulation, multimodal applications, offline graphics rendering, और machine learning inference engines में इसका उपयोग किया जा सकता है
  • लक्ष्य है personal devices पर व्यापक GPU computing को अधिक आसान बनाना
  • यह data movement और GPU code control को बारीकी से सीधे संभालने की सुविधा देता है

gpu.cpp क्या नहीं है

  • यह high-level numerical computing, machine learning framework, या inference engine नहीं है (हालांकि ऐसे implementations को सपोर्ट करने के लिए इसका उपयोग किया जा सकता है)
  • यह महत्वपूर्ण है that WebGPU सिर्फ web browser तक सीमित नहीं है, इसके native implementations भी हैं ("WebGPU is Not Just About the Web")
  • इसका फोकस rendering/graphics की बजाय general-purpose GPU computing पर है

सीमाएँ और आगे की योजना

  • API सुधार: वास्तविक use cases के माध्यम से API design को आगे विकसित किया जाएगा
  • browser target support जोड़ा जाएगा
  • reusable kernels और shader libraries बनाना
  • अधिक usage examples और tests जोड़ना
  • llm.c के kernels को WebGPU में implement करना अल्पकालिक लक्ष्यों में से एक है

1 टिप्पणियां

 
xguru 2024-07-15

प्रोजेक्ट का परिचय gpu.cpp: portable GPU compute for C++ with WebGPU में थोड़ी और विस्तार से दिया गया है.