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