תאריך פרסום: 21 בנובמבר 2024
מפרט WebGPU מתפתח כל הזמן, וחברות גדולות כמו Google, Mozilla, Apple, Intel ו-Microsoft נפגשות מדי שבוע כדי לדון בפיתוח שלו. בפגישה האחרונה של קבוצת העבודה של ה-Web, הוצגה הצצה ליעדים ולתכונות העיקריים שתוכננו לגרסה הבאה של WebGPU. בפוסט הזה בבלוג נסקור כמה מהמסקנות העיקריות מהפגישה.
הגעה לסטטוס 'מומלץ'
אחד מהנושאים המרכזיים בפגישה היה דיון על ההתקדמות בציון הדרך 0 ועל סיום הטיפול בבעיות שצריך לטפל בהן כדי להגיע לסטטוס 'מומלץ' ב-W3C. זהו השלב הבא בתהליך התקינה, והוא כולל ערבויות חזקות יותר ליציבות ולהגנה על קניין רוחני.
המשתתפים בפגישה הסכימו באופן כללי שהבעיות האלה לא מונעות את ההתקדמות, ואפשר לפתור אותן בזמן, כך שאפשר יהיה להמליץ על WebGPU כמועמדת להמלצה של W3C.
קביעת עדיפות לתכונות חדשות
המשתתפים בפגישה גם קבעו עדיפות לתכונות חדשות. הם התחילו עם רשימה של בקשות לתכונות שנאספו מהמשוב של מפתחים, מוטמעים ובעלי עניין.
לאחר דיון, זוהו התכונות הבאות של WebGPU ל-AI:
קבוצות משנה ומטריצות של קבוצות משנה: מאפשרים לאפליקציה להשתמש בתקשורת מקומית מהירה בין חוטי GPU, ולנצל את החומרה של כפל מטריצות בגודל קבוע לצד ליבות ה-shader. הצעה ליצירת קבוצות משנה
מאגרי טקסלים: דרך יעילה יותר לאחסון ולגישה לסוגי נתונים קטנים, כמו ערכים של 16 ביט או 8 ביט, באופן נייד. הדבר חשוב לחלק מהאלגוריתמים של עיבוד תמונות ב-ML. השקפים בנושא מאגר הטקסלים
מיפוי מאגר 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.