WebGPU – Übersicht

François Beaufort
François Beaufort

WebGPU ist eine Webgrafik-API, die erhebliche Vorteile bietet, z. B. eine stark reduzierte JavaScript-Arbeitslast für dieselben Grafiken und mehr als dreimal bessere Inferenzen von Modellen für maschinelles Lernen. Dies ist auf die flexible GPU-Programmierung und den Zugriff auf erweiterte Funktionen zurückzuführen, die WebGL nicht bietet.

Die API wurde speziell für die Webplattform entwickelt und bietet eine idiomatische JavaScript API, die Einbindung von Promises, Unterstützung für den Import von Videos und eine ausgefeilte Entwicklererfahrung mit klaren Fehlermeldungen.

WebGPU ist das Ergebnis einer gemeinsamen Anstrengung der Community-Gruppe „GPU for the Web“ des W3C, die Beiträge von großen Unternehmen wie Mozilla, Apple, Intel und Microsoft umfasst.

Unterstützte Browser

Diese erste Version von WebGPU wurde in Chrome 113 auf ChromeOS-Geräten mit Vulkan-Unterstützung, Windows-Geräten mit Direct3D 12-Unterstützung und macOS-Geräten verfügbar gemacht. Linux, Android und eine erweiterte Unterstützung für bestehende Plattformen folgen demnächst.

WebGPU ist neben der ursprünglichen Implementierung in Chrome auch für Firefox und Safari in der Entwicklung.

Bibliotheksunterstützung

Für viele weit verbreitete WebGL-Bibliotheken wird bereits WebGPU-Unterstützung implementiert oder sie wurde bereits implementiert. Das bedeutet, dass für die Verwendung von WebGPU möglicherweise nur eine Zeile geändert werden muss.

  • Babylon.js unterstützt WebGPU vollständig.
  • PlayCanvas hat die anfängliche Unterstützung von WebGPU angekündigt.
  • TensorFlow.js unterstützt WebGPU-optimierte Versionen der meisten Operatoren.
  • Die WebGPU-Unterstützung für Three.js ist in Arbeit. Beispiele

Sowohl die Dawn-Bibliothek für Chromium als auch die wgpu-Bibliothek für Firefox sind als eigenständiges Paket verfügbar. Sie bieten eine hohe Portabilität und ergonomische Schichten, die GPU-APIs des Betriebssystems abstrahieren. Wenn Sie diese Bibliotheken in nativen Anwendungen verwenden, lässt sich die Umstellung auf WASM über Emscripten und Rust web-sys einfacher durchführen.

Ressourcen

WebGPU ist eine wichtige Technologie. Weitere Informationen finden Sie unter den folgenden Links: