סקירה כללית של WebGPU

François Beaufort
François Beaufort

WebGPU הוא ממשק API לגרפיקת אינטרנט שמציע יתרונות משמעותיים, כמו הפחתה משמעותית של עומס העבודה ב-JavaScript לאותה גרפיקה ושיפור של יותר מפי שלושה בהסקת המסקנות של מודלים של למידת מכונה. זה אפשרי בגלל תכנות גמישה של GPU וגישה ליכולות מתקדמות ש-WebGL לא מספק.

ה-API תוכנן תוך התמקדות בפלטפורמת האינטרנט, וכולל ממשק API של JavaScript, שילוב עם הבטחות, תמיכה בייבוא סרטונים וחוויית פיתוח משופרת עם הודעות שגיאה ברורות.

WebGPU הוא תוצאה של מאמץ משותף של קבוצת הקהילה 'GPU for the Web' של W3C, שכוללת תרומות מחברות גדולות כמו 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 זמינות כחבילת עצמאית. הם מציעים ניידות רבה ושכבות ארגונומיות שמציגות ממשקי API של GPU במערכת ההפעלה בצורה מופשטת. השימוש בספריות האלה באפליקציות מקוריות מקל על ההעברה ל-WASM באמצעות Emscripten ו-Rust web-sys.

משאבים

הטכנולוגיה של WebGPU חשובה מאוד, ואנחנו ממליצים להשתמש במקורות המידע הבאים כדי לקבל מידע נוסף: