Wat is de toekomst voor WebGPU?

François Beaufort
François Beaufort

Gepubliceerd: 21 november 2024

De WebGPU-specificatie evolueert voortdurend, waarbij grote bedrijven als Google, Mozilla, Apple, Intel en Microsoft wekelijks bijeenkomen om de ontwikkeling ervan te bespreken. De meest recente GPU for the Web-werkgroepbijeenkomst bood een kijkje in de belangrijkste doelstellingen en functies die gepland zijn voor de volgende versie van WebGPU. In deze blogpost worden enkele van de belangrijkste conclusies uit de bijeenkomst besproken.

Het bereiken van de aanbevelingsstatus van kandidaten

Een belangrijk aandachtspunt van de bijeenkomst was het bespreken van de voortgang van Milestone 0 en het afronden van de kwesties die moeten worden aangepakt voordat het de status van kandidaat-aanbeveling voor het W3C kan bereiken. Dit is de volgende stap in het normalisatieproces en gaat gepaard met sterkere garanties voor stabiliteit en bescherming van intellectueel eigendom.

Er was algemene overeenstemming onder de deelnemers aan de bijeenkomst dat zij geen blokkers zijn en dat deze problemen tijdig kunnen worden opgelost, wat de weg vrijmaakt voor de W3C-kandidaataanbeveling van WebGPU.

Prioriteit geven aan nieuwe functies

Deelnemers aan de bijeenkomst gaven ook prioriteit aan nieuwe functies. Ze begonnen met een lijst met functieverzoeken, samengesteld op basis van feedback van ontwikkelaars, implementeerders en belanghebbenden.

Een whiteboard met een handgeschreven lijst met termen die verband houden met grafische computer-API's, waaronder 'Bindless', 'Subgroups', 'MDI', 'Push Constants', 'UMA', 'Subgroup Matrix' en andere.

Na discussie werden de volgende belangrijke WebGPU-functies voor AI geïdentificeerd:

  • Subgroepen en subgroepmatrices : laat de applicatie gebruik maken van snelle lokale communicatie tussen GPU-threads en profiteer van hardware voor matrixvermenigvuldiging met een vaste grootte naast shader-cores. Zie het subgroepvoorstel .

  • Texelbuffers : bieden een efficiëntere manier om kleine gegevenstypen, zoals 16-bits of 8-bits waarden, op een draagbare manier op te slaan en te openen. Dit is belangrijk voor sommige ML-beeldverwerkingsalgoritmen. Zie de texelbufferdia's .

  • UMA-buffertoewijzing : Verbeter de prestaties van het uploaden van gegevens door het verminderen of elimineren van kopieën en synchronisatieoverhead. Zie specificatienummer 2388 .

Ook worden de volgende WebGPU-functies overwogen en geprioriteerd om nieuwe soorten weergave-algoritmen te ontgrendelen:

  • Bindless : dit langverwachte functievoorstel is een vereiste voor de meeste geavanceerde rendering-algoritmen, omdat ze informatie over de hele scène nodig hebben. Met Bindless kunnen shaders een onbeperkt aantal bronnen gebruiken, inclusief texturen, vergeleken met de momenteel relatief strikte limieten.

  • Multi-draw indirect : Hiermee kunnen eerdere berekeningen op de GPU meerdere trekkingen creëren in plaats van slechts één eerder met drawIndirect . Het is een belangrijke mogelijkheid voor GPU-gestuurde weergave, zoals voor het GPU-ruimen van objecten. Zie het pull-verzoek 2315 .

  • 64-bit atomics : Of het nu gaat om buffers of texturen, het is noodzakelijk voor het uitvoeren van "software rasterisatie" op de GPU, door de dieptetest en het schrijven van een 32-bit payload in een enkele atomicMax bewerking te bundelen. Zie uitgave 4329 .

Om de mogelijkheden en integratie van WebGPU met het bredere webplatform te verbeteren, zijn de volgende WebGPU-functies besproken:

  • Compatibiliteitsmodus : deze modus is bedoeld om WebGPU op een breder scala aan apparaten te laten draaien, inclusief apparaten die alleen OpenGL ES 3.1 ondersteunen. Zie het voorstel voor de compatibiliteitsmodus .

  • WebXR : Hiermee kan de bestaande WebXR Layers-module communiceren met WebGPU door WebGPU-swapchains te bieden voor elk laagtype. Zie de WebGPU/WebXR-integratiedia's .

  • Canvas2D : Creëert een betere interoperabiliteit tussen Canvas 2D en WebGPU, waarbij zowel prestatie- als ergonomieproblemen worden aangepakt. Dit WebGPU-overdrachtsvoorstel zou het mogelijk maken om toegang te krijgen tot tekst en padtekenen in WebGPU, en om WebGPU-rendering toe te passen op Canvas 2D.

De bijeenkomst omvatte ook presentaties en discussies over inspanningen om de WGSL-tooling en -bibliotheken te verbeteren. Een opmerkelijk initiatief is de ontwikkeling van WESL (WGSL Extended Shading Language), dat tot doel heeft een door de gemeenschap aangestuurde reeks uitbreidingen voor WGSL te bieden.

Meer informatie vindt u in de ruwe notulen van de vergadering .

Gedachten

Deze bijeenkomst benadrukte het belang van samenwerking tussen de WebGPU-werkgroep, ontwikkelaars en de bredere grafische gemeenschap bij het vormgeven van de toekomst van WebGPU. De werkgroep is actief op zoek naar feedback over de voorgestelde functies en wil graag samenwerken met ontwikkelaars om ervoor te zorgen dat WebGPU aan hun behoeften voldoet.

De volgende evoluties van WebGPU beloven een belangrijke stap voorwaarts te zijn, waardoor nieuwe mogelijkheden voor webgraphics worden ontgrendeld en ontwikkelaars in staat worden gesteld om nog meeslependere en boeiendere webervaringen voor AI te creëren.