תיעוד הסביבה העסקית של WebGPU

François Beaufort
François Beaufort

WebGPU נתפס לרוב כממשק API של גרפיקה באינטרנט שמעניק גישה מאוחדת ומהירה ל-GPU, על ידי חשיפת יכולות חומרה מתקדמות והפעלת פעולות עיבוד וחישוב ב-GPU, שמקבילות ל-Direct3D 12, Metal ו-Vulkan.

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

חקירת המערכת האקולוגית הנוכחית

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

במקביל, Mozilla ו-Google זיהו את הפוטנציאל של WebGPU באפליקציות ספציפיות לפלטפורמה, והפרידו בין יישומי WebGPU לדפדפנים, וכך אפשרו שימוש עצמאי.

ב-Chrome, המונח הזה נקרא Dawn, ספריית C/C++ שמתרגמת קריאות WebGPU לפקודות של מנהלי התקנים של GPU. שחר מאפשר לאפליקציות C ו-C++ להשתמש ב-WebGPU באופן מובנה, וכך לספק פשטת GPU ניידת וארגונומית תוך שימוש במומחיות בספקי דפדפנים.

כפי שניתן לראות בפוסט WebGPU: ממשק ה-API של הגרפיקה בפלטפורמות שונות של מחר, קל להעביר לאינטרנט אפליקציית WebGPU ספציפית לפלטפורמה. Emscripten, רשת הכלים של C++ WebAssembly, כבר תומכת ב-WebGPU, מה שדורש שינויים קלים בלבד כדי לנייד אותו לאינטרנט.

אתם יכולים גם להריץ את הקוד של JavaScript WebGPU מחוץ לדפדפן באמצעות זמן הריצה של Node.js JavaScript, כי הוא כולל מודול של WebGPU שמבוסס על שחר. היא מאפשרת להריץ את הקוד ללא שינויים בצד השרת או בהקשרים אחרים ספציפיים לפלטפורמה.

קיימת מערכת אקולוגית דומה עבור Rust עם wgpu, ההטמעה של WebGPU ב-Firefox. את Wgpu ניתן לשלב ישירות באפליקציות Rust, ולאחר מכן לנייד אותן לאינטרנט באמצעות web-sys. בנוסף, זמן הריצה של Deno JavaScript תומך ב-WebGPU באמצעות wgpu. כדאי לקרוא את הפוסט בבלוג wgpu Alliance with Deno.

הפעולה הזו יוצרת מערכת אקולוגית מקבילה בין Rust ל-C++ כפי שמוצג בתרשים הבא.

תרשים של הסביבה העסקית של WebGPU בשנת 2023.
הסביבה העסקית של WebGPU בשנת 2023.

אופקים מתפתחים

המערכת האקולוגית של WebGPU מתרחבת מעבר לתחומי JavaScript, C++ ו-Rust.

ייתכן ששפת התכנות המועדפת עליכם כבר כוללת קישורים ל-WebGPU, כי מהנדסים שעובדים על הטמעות של WebGPU מפתחים גם כותרת C נפוצה ל-WebGPU. אפשר להשתמש בו כדי לטרגט את שחר, wgpu ואחרים, וכך להקל על יצירת קישורים לשפות באמצעות C FFI.

צוות Chrome גם בודק את האפשרות להשתמש בזריחה כקצה העורפי לעיבוד ברירת המחדל של כל רכיבי ממשק המשתמש בדפדפן, כולל תפריטים, סרגלי כלים, כלים למפתחים ותוכן מהאינטרנט. דבר זה יבטל את הצורך בהטמעות נפרדות של רינדור עבור כל API מקורי, ויפשט את תהליך הפיתוח. התכונה הזו נמצאת כרגע בשלב הניסוי ב-macOS וב-Windows מאחורי הדגל chrome://flags/#skia-graphite.

אישורים

תמונה ראשית (Hero) מאת דניאל אוברג ב-UnFlood.