مروری بر WebGPU

فرانسوا بوفور
François Beaufort

تاریخ انتشار: 20 جولای 2023، آخرین به روز رسانی: 11 اوت 2025

WebGPU یک API گرافیک وب است که مزایای قابل توجهی را ارائه می دهد، مانند کاهش بسیار زیاد حجم کار جاوا اسکریپت برای همان گرافیک ها و بهبود بیش از سه برابری در استنتاج مدل یادگیری ماشین. این به دلیل برنامه نویسی GPU منعطف و دسترسی به قابلیت های پیشرفته ای که WebGL ارائه نمی دهد امکان پذیر است.

API با در نظر گرفتن پلتفرم وب طراحی شده است و دارای یک API اصطلاحی جاوا اسکریپت، ادغام با وعده‌ها، پشتیبانی از وارد کردن ویدیوها، و تجربه توسعه‌دهنده صیقلی با پیام‌های خطای واضح است.

WebGPU نتیجه تلاش مشترک گروه اجتماعی "GPU برای وب" W3C است که شامل مشارکت های شرکت های بزرگی مانند موزیلا، اپل، اینتل و مایکروسافت است.

پشتیبانی از مرورگر

این نسخه اولیه WebGPU در Chrome 113، در دستگاه‌های ChromeOS با پشتیبانی Vulkan، دستگاه‌های Windows با پشتیبانی Direct3D 12 و macOS در دسترس قرار گرفت. پشتیبانی از اندروید بعداً در Chrome 121 در دستگاه‌های دارای Android 12 و بالاتر با پردازنده‌های گرافیکی Qualcomm و ARM ارائه شد. لینوکس و پشتیبانی گسترده از پلتفرم های موجود به زودی ارائه می شود.

WebGPU علاوه بر پیاده سازی در کروم، در فایرفاکس 141 در ویندوز و سافاری 26 عرضه شد.

برای آخرین به‌روزرسانی‌ها در مورد وضعیت پیاده‌سازی WebGPU، می‌توانید صفحه وضعیت اجرای gpuweb را بررسی کنید.

پشتیبانی از کتابخانه

بسیاری از کتابخانه های پرکاربرد WebGL در حال حاضر در حال اجرای پشتیبانی WebGPU هستند یا قبلاً این کار را انجام داده اند. این بدان معنی است که استفاده از WebGPU ممکن است فقط نیاز به تغییر یک خط داشته باشد.

  • Babylon.js پشتیبانی کامل از WebGPU را دارد.
  • PlayCanvas پشتیبانی اولیه WebGPU را اعلام کرد.
  • TensorFlow.js از نسخه های بهینه شده توسط WebGPU اکثر اپراتورها پشتیبانی می کند.
  • پشتیبانی از WebGPU Three.js در حال انجام است، نمونه‌ها را ببینید.

هر دو کتابخانه Dawn برای Chromium و کتابخانه wgpu برای فایرفاکس به عنوان بسته مستقل در دسترس هستند. آنها قابلیت حمل و لایه های ارگونومیک عالی را ارائه می دهند که API های GPU سیستم عامل را انتزاعی می کند. استفاده از این کتابخانه ها در برنامه های کاربردی بومی، انتقال به WASM را از طریق Emscripten و Rust web-sys آسان تر می کند.

منابع

WebGPU یک فناوری قابل توجه است و ما منابع زیر را برای کسب اطلاعات بیشتر توصیه می کنیم: