Po wielu latach prac zespół Chrome udostępnia WebGPU, który umożliwia korzystanie z wysokiej jakości grafiki 3D i przetwarzanie danych równolegle w internecie.
Zespół Chrome chętnie informuje, że WebGPU jest teraz domyślnie dostępne w Chrome 113, która jest obecnie dostępna w kanale beta. WebGPU to nowy interfejs API do grafiki internetowej, który zapewnia znaczne korzyści, takie jak znacznie zmniejszone obciążenie JavaScriptem przy tej samej grafice i ponad 3-krotne zwiększenie wydajności wnioskowania przez modele systemów uczących się. Jest to możliwe dzięki bardziej elastycznemu programowaniu GPU i dostępowi do zaawansowanych funkcji, których nie oferuje WebGL.
Ta pierwsza wersja WebGPU jest dostępna na ChromeOS, macOS i Windows. Obsługa innych platform pojawi się jeszcze w tym roku.
Nowa era grafiki internetowej
WebGPU to nowy interfejs API dla sieci, który udostępnia nowoczesne możliwości sprzętowe i umożliwia operacje renderowania i obliczania na karcie graficznej, podobnie jak w przypadku Direct3D 12, Metal i Vulkan. W przeciwieństwie do interfejsów API z rodziny WebGL interfejs WebGPU zapewnia dostęp do bardziej zaawansowanych funkcji GPU i najlepszą obsługę ogólnych obliczeń na GPU. Interfejs API został zaprojektowany z myślą o platformie internetowej. Zawiera on idiomatyczny interfejs JavaScript API, integrację z obietnicami, obsługę importowania filmów oraz ulepszoną obsługę deweloperów z dodatkiem przydatnych komunikatów o błędach.
Ta wstępna wersja WebGPU stanowi element składowy przyszłych aktualizacji i ulepszeń. Interfejs API będzie oferować bardziej zaawansowane funkcje graficzne, a deweloperzy są zachęcani do przesyłania próśb o dodatkowe funkcje. Zespół Chrome planuje też zapewnić większy dostęp do rdzeni shaderów, aby jeszcze bardziej zoptymalizować systemy uczące się i zapewnić większą ergonomię w języku WGSL, czyli języku cieniowania WebGPU.
WebGPU to efekt współpracy grupy społecznościowej W3C „GPU for the Web”, która obejmuje wkład dużych firm takich jak Mozilla, Apple, Intel i Microsoft. Po 6 latach prac (90 współtwórców, 2000 commitów, 3000 problemów) od momentu opracowania projektu w 2017 r. pierwsza implementacja jest już dostępna w Chrome, a obsługa przeglądarek Firefox i Safari jest w toku.
Zarówno biblioteka Dawn dla Chromium, jak i biblioteka wgpu dla Firefoksa są dostępne jako samodzielne pakiety. Zapewniają one dużą przenośność i ergonomiczne warstwy, które abstrahują interfejsy API GPU systemu. Korzystanie z tych bibliotek w natywności ułatwia też przenoszenie kodu na WASM za pomocą Emscripten i Rust web-sys.
Obsługa przeglądarek
Ta pierwsza wersja WebGPU jest dostępna w Chrome 113 na urządzeniach z ChromeOS z obsługą Vulkana, urządzeniach z Windows z obsługą Direct3D 12 oraz na macOS. Wkrótce udostępnimy obsługę Linuksa, Androida i dodatkowych platform.
WebGPU jest obecnie w trakcie implementacji w Firefox i Safari, a także w pierwszej wersji w Chrome.
Pomoc dotycząca biblioteki
Wiele powszechnie używanych bibliotek WebGL jest już w trakcie implementowania obsługi WebGPU lub już ją wdrożyło. Oznacza to, że korzystanie z WebGPU może wymagać zmiany tylko jednego wiersza:
- Babylon.js obsługuje już WebGPU.
- Firma PlayCanvas ogłosiła początkową obsługę WebGPU.
- TensorFlow.js obsługuje wersje większości operatorów zoptymalizowane pod kątem WebGPU.
- Pracujemy nad obsługą WebGPU w Three.js (zobacz przykłady).
Zasoby
WebGPU to ważna technologia. Aby dowiedzieć się więcej, zapoznaj się z tymi materiałami:
- Zapoznaj się ze specyfikacjami W3C dotyczącymi WebGPU i WGSL.
- Eksperymentuj z próbkami i poznaj WGSL za pomocą prezentacji.
- Zapoznaj się z dokumentacją MDN.
- Zapoznaj się z oficjalnym materiałem i sprawdzonymi metodami.
- Dowiedz się więcej o procesorach graficznych i innych tematach.
Poświadczenia
Dziękujemy wszystkim autorom Chromium, a szczególnie zespołowi Intela za nieocenione wsparcie, dzięki któremu było to możliwe.