WebGPU नेटवर्क को कैप्चर करना

François Beaufort
François Beaufort

WebGPU को अक्सर एक वेब ग्राफ़िक्स एपीआई माना जाता है. यह जीपीयू, जीपीयू पर काम करके, जीपीयू को एक साथ और तेज़ी से ऐक्सेस करने की सुविधा देता है. इससे, Direct3D 12, मेटल, और Vulkan के मुकाबले, जीपीयू पर रेंडरिंग और कंप्यूटेशन की सुविधाएं मिलती हैं.

हालांकि, WebGPU सिर्फ़ JavaScript API की सीमाओं को पार करता है. यह WebAssembly की तरह ही एक बुनियादी इमारत है. इसका असर वेब से बाहर भी होता है, क्योंकि इसके बढ़ते इकोसिस्टम की वजह से यह काफ़ी अहम है. Chrome की टीम WebGPU को सिर्फ़ वेब टेक्नोलॉजी के अलावा दूसरी टेक्नोलॉजी के रूप में भी मान्यता देती है. यह एक उभरता हुआ नेटवर्क है, जो मुख्य टेक्नोलॉजी पर आधारित है.

मौजूदा ईकोसिस्टम को एक्सप्लोर करना

इस प्रक्रिया की शुरुआत JavaScript की शर्तों से होती है. यह मिलकर काम करने की एक कोशिश है, जिसमें Apple, Google, Intel, Mozilla, और Microsoft जैसे कई संगठन शामिल होते हैं. फ़िलहाल, सभी प्रमुख वेब ब्राउज़र WebGPU लागू कर चुके हैं या लागू करने की प्रक्रिया में हैं.

साथ ही, Mozilla और Google ने जाना कि WebGPU की क्षमता को खास प्लैटफ़ॉर्म के हिसाब से बनाया गया है. साथ ही, WebGPU लागू करने के तरीकों को ब्राउज़र से अलग किया गया. इससे, अलग-अलग प्लैटफ़ॉर्म के इस्तेमाल को बढ़ावा मिला.

Chrome के लिए, इसे Dawn के तौर पर फ़ॉर्मैट किया जाता है. यह एक C/C++ लाइब्रेरी है, जो WebGPU कॉल को जीपीयू ड्राइवर के निर्देशों में बदल देती है. डॉन, C और C++ ऐप्लिकेशन को WebGPU के मूल रूप से इस्तेमाल करने में सक्षम बनाता है. यह ब्राउज़र वेंडर एक्सपर्टाइज़ का इस्तेमाल करके, पोर्टेबल और एर्गोनॉमिक जीपीयू ऐब्स्ट्रैक्टेशन उपलब्ध कराता है.

जैसा कि WebGPU: क्रॉस-प्लैटफ़ॉर्म ग्राफ़िक्स एपीआई ऑफ़ टुमॉरो में दिखाया गया है, प्लैटफ़ॉर्म के हिसाब से खास WebGPU ऐप्लिकेशन को वेब पर पोर्ट करना काफ़ी आसान है. Emscripten यानी C++ WebAssembly टूलचेन, WebGPU के साथ काम करता है. इसे वेब पर पोर्ट करने के लिए, बहुत कम बदलाव करने की ज़रूरत होती है.

अपने JavaScript WebGPU कोड को, ब्राउज़र के बाहर भी Node.js JavaScript रनटाइम की मदद से चलाया जा सकता है. ऐसा इसलिए किया जाता है, क्योंकि इसमें Dwn पर आधारित WebGPU मॉड्यूल होता है. इसकी मदद से, सर्वर साइड या प्लैटफ़ॉर्म के हिसाब से अलग-अलग कॉन्टेक्स्ट में बदलाव किए बिना, अपने कोड को चलाया जा सकता है.

wgpu के साथ Rust के लिए ऐसा ही इकोसिस्टम मौजूद है, जो Firefox के WebGPU के लागू होने का तरीका है. Wgpu को Rust ऐप्लिकेशन में सीधे इंटिग्रेट किया जा सकता है, जिसे web-sys का इस्तेमाल करके वेब पर पोर्ट किया जा सकता है. इसके अलावा, Deno JavaScript रनटाइम, wgpu के ज़रिए WebGPU के साथ काम करता है. wgpu atiance with Deno ब्लॉग पोस्ट देखें.

यह रस्ट और C++ के बीच एक समानांतर पारिस्थितिकी तंत्र को स्थापित करता है, जैसा कि नीचे दिए गए डायग्राम में दिखाया गया है.

साल 2023 में WebGPU नेटवर्क का डायग्राम.
साल 2023 में WebGPU नेटवर्क.

उभरते क्षितिज

WebGPU ईकोसिस्टम, JavaScript, C++, और रस्ट देशों से आगे तक फैला हुआ है.

आपकी पसंदीदा प्रोग्रामिंग भाषा में WebGPU के लिए पहले से ही बाइंडिंग हो सकती हैं. इसकी वजह यह है कि WebGPU को लागू करने पर काम करने वाले इंजीनियर, WebGPU के लिए एक सामान्य सी हेडर भी डेवलप कर रहे हैं. इसका इस्तेमाल डॉन, wgpu वगैरह को टारगेट करने के लिए किया जा सकता है, ताकि सी FFI का इस्तेमाल करके भाषाओं के लिए बाइंडिंग आसानी से बनाई जा सकें.

Chrome टीम, ब्राउज़र के सभी यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए, डिफ़ॉल्ट रेंडरिंग बैकएंड के तौर पर Dawn का इस्तेमाल करने पर विचार कर रही है. इन एलिमेंट में मेन्यू, टूलबार, डेवलपर टूल, और वेब कॉन्टेंट शामिल हैं. इससे हर नेटिव एपीआई के लिए, अलग-अलग रेंडरिंग लागू करने की ज़रूरत नहीं होगी और डेवलपमेंट की प्रोसेस आसान हो जाएगी. फ़िलहाल, macOS और Windows पर chrome://flags/#skia-graphite फ़्लैग के बाद, यह सुविधा एक्सपेरिमेंट के तौर पर उपलब्ध है.

स्वीकार हैं

Unsplash पर डैनियल ओबर्ग की हीरो इमेज.