Omówienie WebGPU

François Beaufort
François Beaufort

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 FirefoxSafari, 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ą EmscriptenRust web-sys.

Zasoby

WebGPU to ważna technologia. Aby dowiedzieć się więcej, zapoznaj się z tymi materiałami: