WebGPU to interfejs API do grafiki internetowej, który zapewnia wiele korzyści, np. znacznie zmniejsza obciążenie JavaScriptem przy tej samej grafice i ponad trzykrotnie poprawia wnioskowanie w modelach systemów uczących się. Jest to możliwe dzięki elastycznemu programowaniu GPU i dostępowi do zaawansowanych funkcji, których nie zapewnia WebGL.
Interfejs API został zaprojektowany z myślą o platformie internetowej. Oferuje idiomatyczny interfejs API JavaScript, integrację z obietnicami, obsługę importowania filmów oraz dopracowane środowisko programistyczne z zrozumiałymi komunikatami o błędach.
Platforma WebGPU jest wynikiem współpracy grupy Społeczności „GPU for the Web” W3C, do której należą między innymi największe firmy, takie jak Mozilla, Apple, Intel i Microsoft.
Obsługa przeglądarek
Ta wstępna wersja WebGPU została udostępniona w Chrome 113, na urządzeniach z ChromeOS z obsługą interfejsu Vulkan, na urządzeniach z systemem Windows z obsługą Direct3D 12 i z systemem macOS. Wkrótce udostępnimy obsługę Linuksa, Androida i dotychczasowych platform.
WebGPU jest obecnie w trakcie opracowywania w przypadku przeglądarek Firefox i Safari, a także w przypadku wstępnej implementacji w Chrome.
Pomoc dotycząca biblioteki
Wiele powszechnie używanych bibliotek WebGL jest już w trakcie implementowania obsługi WebGPU lub już ją obsługuje. Oznacza to, że korzystanie z WebGPU może wymagać zmiany tylko jednego wiersza.
- Babylon.js obsługuje WebGPU w pełni.
- 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.
- Three.js obsługuje WebGPU (w trakcie tworzenia – zobacz przykłady).
Zarówno biblioteka Dawn dla Chromium, jak i biblioteka wgpu dla Firefoxa są dostępne jako samodzielne pakiety. Zapewniają one dużą przenośność i ergonomiczne warstwy, które abstrahują interfejsy API procesora graficznego systemu operacyjnego. Korzystanie z tych bibliotek w natywności ułatwia przenoszenie na WASM za pomocą Emscripten i Rust web-sys.
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.
- Przeczytaj oficjalny artykuł i sprawdzone metody.
- Dowiedz się więcej o GPU i nie tylko.