بعد سنوات من التطوير، طرح فريق Chrome WebGPU الذي يتيح رسومات ثلاثية الأبعاد (3D) عالية الأداء وعمليات حسابية متوازية للبيانات على الويب.
يسرّ فريق Chrome الإعلان عن توفّر WebGPU تلقائيًا في الإصدار 113 من Chrome، وهو متوفّر حاليًا في القناة التجريبية. WebGPU هي واجهة برمجة تطبيقات جديدة لرسومات الويب توفّر مزايا كبيرة، مثل تقليل حجم العمل الذي تُجريه JavaScript بشكل كبير للرسومات نفسها وتحسينات تزيد عن ثلاثة أضعاف في الاستنتاجات المستندة إلى نماذج تعلُّم الآلة. ويعود ذلك إلى برمجة وحدة معالجة الرسومات الأكثر مرونة والوصول إلى إمكانات متقدّمة لا يوفّرها WebGL.
يتوفّر هذا الإصدار الأولي من WebGPU على ChromeOS وmacOS وWindows. وستتوفّر الميزة للأنظمة الأساسية الأخرى في وقت لاحق من هذا العام.
فجر جديد لرسومات الويب
WebGPU هي واجهة برمجة تطبيقات جديدة للويب، وهي توفّر إمكانات الأجهزة الحديثة وتسمح بعمليات التقديم والحساب على وحدة معالجة الرسومات، تمامًا مثل Direct3D 12 وMetal وVulkan. على عكس مجموعة واجهات برمجة التطبيقات WebGL، تتيح WebGPU إمكانية الوصول إلى ميزات أكثر تقدّمًا لوحدة معالجة الرسومات، كما توفّر دعمًا من الدرجة الأولى للعمليات الحسابية العامة على وحدة معالجة الرسومات. تم تصميم واجهة برمجة التطبيقات مع مراعاة منصة الويب، وهي تتضمّن واجهة برمجة تطبيقات JavaScript مألوفة، وإمكانية دمجها مع الوعود، ودعم استيراد الفيديوهات، وتجربة مطوّرين محسّنة مع رسائل خطأ رائعة.
يشكّل هذا الإصدار الأولي من WebGPU لبنة أساسية للتحديثات والتحسينات المستقبلية. ستوفّر واجهة برمجة التطبيقات ميزات رسومات أكثر تقدّمًا، ونشجّع المطوّرين على إرسال طلبات للحصول على ميزات إضافية. يخطّط فريق Chrome أيضًا لتوفير إمكانية وصول أكبر إلى نوى Shader لإجراء المزيد من التحسينات باستخدام تعلُّم الآلة وتوفير ميزات سهولة الاستخدام الإضافية في WGSL، وهي لغة WebGPU Shading.
WebGPU هو نتيجة جهد تعاوني من قِبل مجموعة "وحدة معالجة الرسومات للويب" في W3C، والتي تتضمّن مساهمات من شركات كبرى مثل Mozilla وApple وIntel وMicrosoft. بعد ست سنوات من التطوير (90 مساهمًا و2000 عملية إرسال و3000 مشكلة)، أصبح التنفيذ الأول متاحًا الآن في Chrome، مع إتاحة Firefox وSafari في المستقبل.
تتوفّر كلّ من مكتبة Dawn لمتصفّح Chromium ومكتبة wgpu لمتصفّح Firefox كحِزم مستقلة، وتقدّم هاتان المكتبتان إمكانات رائعة للنقل وطبقات مريحة تُنشئ واجهة برمجة تطبيقات مجردة لوحدة معالجة الرسومات في نظام التشغيل. ويسهّل استخدام هذه المكتبات في التطبيقات الأصلية أيضًا نقلها إلى WASM من خلال Emscripten وRust web-sys.
دعم المتصفح
يتوفّر هذا الإصدار الأولي من 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، يمكنك الاطّلاع على الأمثلة.
الموارد
WebGPU هي تقنية مهمة، وننصحك بالاطّلاع على المراجع التالية لمعرفة المزيد من المعلومات:
- اطّلِع على مواصفات W3C لكل من WebGPU وWGSL.
- جرِّب عيّنات واستكشِف WGSL من خلال جولة.
- اطّلِع على مستندات MDN.
- اطّلِع على الشرح الرسمي وأفضل الممارسات.
- اطّلِع على مزيد من المعلومات عن المعالجة باستخدام وحدة معالجة الرسومات والمزيد.
خدمات الإقرار
نشكر جميع المساهمين في Chromium، وخاصةً فريق Intel، على دعمهم القيّم في تحقيق ذلك.