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