Data publikacji: 21 listopada 2024 r.
Specyfikacja WebGPU jest stale rozwijana. Co tydzień spotykają się przedstawiciele takich firm jak Google, Mozilla, Apple, Intel i Microsoft, aby omawiać jej rozwój. Najnowsze spotkanie grupy roboczej dotyczącej GPU dla przeglądarek internetowych pozwoliło poznać główne cele i funkcje zaplanowane na następną iterację WebGPU. W tym poście na blogu znajdziesz najważniejsze wnioski z tego spotkania.
Osiągnięcie stanu rekomendacji kandydata
Głównym celem spotkania było omówienie postępów w realizacji etapu 0 oraz ostateczne rozwiązanie problemów, które należy rozwiązać, zanim etap ten uzyska status rekomendacji kandydata w W3C. Jest to kolejny krok w procesie standaryzacji, który zapewnia większą stabilność i ochronę własności intelektualnej.
Uczestnicy spotkania byli zgodni, że nie ma żadnych blokujących problemów i że te kwestie można rozwiązać w stosunku do zalecenia W3C dotyczącego WebGPU.
Priorytetyzacja nowych funkcji
Uczestnicy spotkania również wskazali nowe funkcje jako priorytetowe. Zaczęli od listy funkcji, które chcieliby wprowadzić, sporządzonej na podstawie opinii programistów, implementatorów i interesariuszy.
Po dyskusji zidentyfikowaliśmy te najważniejsze funkcje WebGPU dotyczące AI:
Macierze podgrup i podpodgrup: aplikacja może korzystać z szybkiej komunikacji lokalnej między wątkami GPU i wykorzystywać sprzętowe mnożenie macierzy o stałym rozmiarze obok rdzeni shadera. Zobacz propozycję dotyczącą podgrup.
Bufory teł: zapewniają wydajniejszy sposób przechowywania małych typów danych, takich jak wartości 16- lub 8-bitowe, oraz dostęp do nich w przenośny sposób. Jest to ważne w przypadku niektórych algorytmów przetwarzania obrazu opartych na systemach uczących się. Zobacz slajdy dotyczące bufora pikselowego.
Mapowanie bufora UMA: zwiększa wydajność przesyłania danych przez ograniczenie lub wyeliminowanie kopiowania i nadmiarowego obciążenia synchronizacją. Zobacz problem ze specyfikacją 2388.
Pod uwagę brane są też inne funkcje WebGPU, które mogą być priorytetowe, ponieważ umożliwiają tworzenie nowych rodzajów algorytmów renderowania:
Bindless: ta długo wyczekiwana propozycja funkcji jest warunkiem wstępnym dla większości najnowocześniejszych algorytmów renderowania, ponieważ potrzebują one informacji o całej scenie. Dzięki temu shadery mogą używać nieograniczonej liczby zasobów, w tym tekstur, w porównaniu z obecnie stosowanymi stosunkowo ścisłymi limitami.
Wielokrotne rysowanie pośrednie: pozwala na tworzenie przez poprzednie obliczenia na GPU wielu rysowań zamiast tylko jednego z
drawIndirect
. Jest to ważna funkcja w przypadku renderowania z wykorzystaniem GPU, np. w przypadku odrzucania obiektów przez GPU. Zobacz prośbę pull 2315.64-bitowe operacje atomowe: w buforach lub teksturach są niezbędne do wykonania „rasteryzacji programowej” na procesorze graficznym, poprzez połączenie testu głębi i zapisu 32-bitowego ładunku w ramach pojedynczej operacji
atomicMax
. Zobacz problem 4329.
Aby zwiększyć możliwości WebGPU i jego integrację z szerszą platformą internetową, omówiliśmy te funkcje WebGPU:
Tryb zgodności: ten tryb ma na celu umożliwienie działania WebGPU na większej liczbie urządzeń, w tym na tych, które obsługują tylko OpenGL ES 3.1. Zapoznaj się z propozycją trybu zgodności.
WebXR umożliwia dotychczasowemu modułowi WebXR Layers nawiązywanie interfejsu z WebGPU przez udostępnianie łańcuchów wymiany WebGPU dla każdego typu warstwy. Zobacz prezentację na temat integracji WebGPU/WebXR.
Canvas2D: zapewnia lepszą interoperacyjność między Canvas2D a WebGPU, rozwiązując problemy z wydajnością i ergonomiką. Ta propozycja przeniesienia WebGPU umożliwiłaby dostęp do rysowania tekstu i ścieżek w WebGPU oraz stosowanie renderowania WebGPU do Canvas 2D.
W ramach spotkania odbyły się też prezentacje i dyskusje na temat ulepszania narzędzi i bibliotek WGSL. Jedną z ciekawych inicjatyw jest opracowanie WESL (rozszerzony język cieniowania WGSL), który ma stanowić zestaw rozszerzeń WGSL opracowanych przez społeczność.
Więcej informacji znajdziesz w notatkach z nieprzetworzonych spotkań.
Myśli
Podczas tego spotkania podkreślaliśmy, jak ważna jest współpraca grupy roboczej WebGPU, deweloperów i szerszej społeczności zajmującej się grafiką w kształtowaniu przyszłości WebGPU. Grupa robocza aktywnie zbiera opinie na temat proponowanych funkcji i współpracuje z deweloperami, aby zapewnić im wsparcie WebGPU.
Kolejne wersje WebGPU zapowiadają się jako znaczący krok naprzód, który otworzy nowe możliwości dla grafiki internetowej i umożliwi deweloperom tworzenie jeszcze bardziej wciągających i angażujących treści internetowych dla AI.