WebGPU هي واجهة برمجة تطبيقات لرسومات الويب تقدّم مزايا كبيرة، مثل تقليل عبء عمل JavaScript بشكلٍ كبير للرسومات نفسها وتحسينات تزيد عن ثلاث مرات في استنتاجات نماذج تعلُّم الآلة. ويعود ذلك إلى إمكانية برمجة وحدة معالجة الرسومات بشكل مرن والوصول إلى إمكانات متقدّمة لا يوفّرها WebGL.
تم تصميم واجهة برمجة التطبيقات مع وضع منصة الويب في الاعتبار، وتتضمن واجهة برمجة تطبيقات مألوفة لسمة JavaScript، وإمكانية دمجها مع وعد بالأداء، ودعم استيراد الفيديوهات، وتوفر تجربة مطوّرين محسّنة مع رسائل خطأ واضحة.
WebGPU هو نتيجة جهد تعاوني من جانب مجموعة "وحدة معالجة الرسومات للويب" في W3C، التي تتضمّن مساهمات من شركات كبرى مثل Mozilla وApple وIntel وMicrosoft.
دعم المتصفح
تم توفير هذا الإصدار الأولي من WebGPU في الإصدار 113 من Chrome، وعلى أجهزة ChromeOS المتوافقة مع Vulkan، وأجهزة Windows المتوافقة مع Direct3D 12، وأجهزة macOS. ستتوفّر قريبًا ميزة "الوصول المحدود" على أجهزة Linux وAndroid، وستتوفّر أيضًا على المنصات الحالية.
لا يزال WebGPU قيد التطوير في Firefox وSafari، بالإضافة إلى التنفيذ الأولي في Chrome.
دعم المكتبة
إنّ العديد من مكتبات WebGL المستخدَمة على نطاق واسع قيد التنفيذ حاليًا لتوفير دعم WebGPU أو قد تم توفيره فيها. وهذا يعني أنّ استخدام WebGPU قد يتطلّب فقط إجراء تغيير في سطر واحد.
- توفّر Babylon.js دعمًا كاملاً لواجهة برمجة التطبيقات WebGPU.
- أعلنت شركة PlayCanvas عن توفّر WebGPU بشكل أوّلي.
- تتوافق TensorFlow.js مع الإصدارات المحسّنة من WebGPU لمعظم عوامل التشغيل.
- نحن نعمل على إتاحة WebGPU في Three.js، اطّلِع على الأمثلة.
تتوفّر مكتبة Dawn لمتصفّح Chromium ومكتبة wgpu لمتصفّح Firefox كتحميل مُستقل. وتوفّر هذه الوحدات إمكانية نقل رائعة وطبقات مريحة تصعِّد واجهات برمجة تطبيقات وحدة معالجة الرسومات في نظام التشغيل. إنّ استخدام هذه المكتبات في التطبيقات الأصلية يسهّل نقلها إلى WASM من خلال Emscripten وRust web-sys.
الموارد
WebGPU هي تقنية مهمة، وننصحك بالاطّلاع على المراجع التالية لمعرفة المزيد من المعلومات:
- اطّلِع على مواصفات W3C لكل من WebGPU وWGSL.
- جرِّب عيّنات واستكشِف WGSL من خلال جولة.
- اطّلِع على مستندات MDN.
- اطّلِع على الشرح الرسمي وأفضل الممارسات.
- اطّلِع على مزيد من المعلومات عن المعالجة باستخدام وحدة معالجة الرسومات والمزيد.