מה השלב הבא ב-WebGPU

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

תאריך פרסום: 21 בנובמבר 2024

מפרט WebGPU מתפתח כל הזמן, וחברות גדולות כמו Google,‏ Mozilla,‏ Apple,‏ Intel ו-Microsoft נפגשות מדי שבוע כדי לדון בפיתוח שלו. בפגישה האחרונה של קבוצת העבודה של ה-Web, הוצגה הצצה ליעדים ולתכונות העיקריים שתוכננו לגרסה הבאה של WebGPU. בפוסט הזה בבלוג נסקור כמה מהמסקנות העיקריות מהפגישה.

אחד מהנושאים המרכזיים בפגישה היה דיון על ההתקדמות של ציון הדרך 0 ועל סיום הטיפול בבעיות שצריך לטפל בהן כדי להגיע לסטטוס 'מומלץ' ב-W3C. זהו השלב הבא בתהליך התקינה, והוא כולל ערבויות חזקות יותר ליציבות ולהגנה על קניין רוחני.

כל המשתתפים בפגישה הסכימו שאין חסמים, ושהבעיות האלה ניתנות לפתרון בזמן, כך שאפשר יהיה להמליץ על WebGPU כמועמדת להמלצה של W3C.

קביעת עדיפות לפיצ'רים חדשים

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

לוח לבן עם רשימה בכתב יד של מונחים שקשורים לממשקי API של גרפיקה ממוחשבת, כולל 'ללא קישור', 'קבוצות משנה', 'MDI', 'Push Constants', 'UMA', 'Subgroup Matrix' ועוד.

לאחר דיון, זוהו התכונות הבאות של WebGPU ל-AI:

  • קבוצות משנה ומטריצות של קבוצות משנה: מאפשרים לאפליקציה להשתמש בתקשורת מקומית מהירה בין חוטי GPU, ולנצל את החומרה של כפל מטריצות בגודל קבוע לצד ליבות של שדרנים. הצעה ליצירת קבוצות משנה

  • מאגרי טקסלים: דרך יעילה יותר לאחסון ולגישה לסוגי נתונים קטנים, כמו ערכים של 16 ביט או 8 ביט, באופן נייד. הדבר חשוב לחלק מהאלגוריתמים של עיבוד תמונות ב-ML. השקפים בנושא מאגר texel

  • מיפוי מאגר UMA: שיפור הביצועים של העלאת הנתונים על ידי צמצום או ביטול של העלויות הנוספות של העתקות וסנכרון. בעיה במפרט 2388

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

  • Bindless: הצעת התכונה הזו, שרבים חיכו לה, היא דרישה מוקדמת לרוב אלגוריתמי הרינדור המתקדמים כי הם זקוקים למידע ברמת הסצנה. התכונה Bindless מאפשרת לשימרים להשתמש במספר בלתי מוגבל של משאבים, כולל טקסטורות, בהשוואה למגבלות הקפדניות יחסית הקיימות כרגע.

  • Multi-draw indirect: מאפשרת לחישוב הקודם ב-GPU ליצור כמה משיכות במקום רק אחת באמצעות drawIndirect בעבר. זוהי יכולת חשובה לעיבוד גרפי שמבוסס על GPU, כמו סינון אובייקטים ב-GPU. בקשת המשיכה 2315

  • פעולות אטומיות של 64 ביט: בקטעי זיכרון או בטקסטורות, הן נדרשות כדי לבצע 'רסטורציה בתוכנה' ב-GPU, על ידי קיבוץ של בדיקת העומק וכתיבה של עומס עבודה (payload) של 32 ביט בפעולה יחידה של atomicMax. בעיה מס' 4329

כדי לשפר את היכולות של WebGPU ואת השילוב שלו עם פלטפורמת האינטרנט הרחבה יותר, דנו בתכונות הבאות של WebGPU:

  • מצב תאימות: המטרה של המצב הזה היא לאפשר ל-WebGPU לפעול במגוון רחב יותר של מכשירים, כולל אלה שתומכים רק ב-OpenGL ES 3.1. הצעה למצב תאימות

  • WebXR: מאפשרת למודול הקיים של שכבות WebXR ליצור ממשק עם WebGPU על ידי מתן שרשרות swap של WebGPU לכל סוג שכבה. במצגות על שילוב WebGPU/WebXR

  • Canvas2D: יוצרת יכולת פעולה הדדית טובה יותר בין Canvas 2D לבין WebGPU, ומטפלת בבעיות שקשורות לביצועים ולנוחות השימוש. הצעה להעברת WebGPU הזו תאפשר גישה לציור טקסט ונתיבים ב-WebGPU, ואפשרות להחיל עיבוד (רנדרינג) של WebGPU על Canvas 2D.

בפגישה הוצגו גם מצגות ודיונים על המאמצים לשפר את הכלים והספריות של WGSL. אחת מהיוזמות הבולטות היא הפיתוח של WESL (שפת הצללה מורחבת של WGSL), שמטרתה לספק קבוצה של תוספים ל-WGSL שמנוהלים על ידי הקהילה.

מידע נוסף זמין בהערות הלא מעובדות של הפגישה.

מחשבות

בפגישה הזו הדגשנו את החשיבות של שיתוף הפעולה בין קבוצת העבודה של WebGPU, המפתחים וקהילת הגרפיקה הרחבה יותר, בעיצוב העתיד של WebGPU. קבוצת העבודה מחפשת באופן פעיל משוב על התכונות המוצעות, ומחויבת לעבוד עם מפתחים כדי לוודא ש-WebGPU יענה על הצרכים שלהם.

השיפורים הבאים של WebGPU צפויים להיות צעד משמעותי קדימה, שיפתח אפשרויות חדשות לגרפיקה באינטרנט ויאפשר למפתחים ליצור חוויות אינטרנט immersive ומושכות יותר ל-AI.