Nach Jahren der Entwicklung führt das Chrome-Team WebGPU ein, das leistungsstarke 3D-Grafiken und dateparallele Berechnungen im Web ermöglicht.
Das Chrome-Team freut sich, Ihnen mitteilen zu können, dass WebGPU jetzt standardmäßig in Chrome 113 verfügbar ist, das derzeit im Beta-Kanal ist. WebGPU ist eine neue 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 flexiblere GPU-Programmierung und den Zugriff auf erweiterte Funktionen zurückzuführen, die WebGL nicht bietet.
Diese erste Version von WebGPU ist für ChromeOS, macOS und Windows verfügbar. Unterstützung für andere Plattformen wird im Laufe des Jahres hinzukommen.
Ein neuer Tag für Webgrafiken
WebGPU ist eine neue API für das Web, die moderne Hardwarefunktionen bereitstellt und Rendering- und Berechnungsvorgänge auf einer GPU ermöglicht, ähnlich wie Direct3D 12, Metal und Vulkan. Im Gegensatz zur WebGL-API-Familie bietet WebGPU Zugriff auf erweiterte GPU-Funktionen und erstklassige Unterstützung für allgemeine Berechnungen auf der GPU. 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 Entwicklerumgebung mit hilfreichen Fehlermeldungen.
Diese erste Version von WebGPU dient als Baustein für zukünftige Updates und Verbesserungen. Die API bietet erweiterte Grafikfunktionen. Entwickler können Anfragen für zusätzliche Funktionen senden. Das Chrome-Team plant außerdem, den Zugriff auf Shaderkerne zu verbessern, um noch mehr Optimierungen für maschinelles Lernen und zusätzliche Ergonomie in WGSL (WebGPU Shading Language) zu ermöglichen.
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. Nach sechs Jahren Entwicklungszeit (90 Mitwirkende, 2.000 Commits, 3.000 Probleme) ist die erste Implementierung des ursprünglichen Designs von 2017 jetzt in Chrome verfügbar. Die Unterstützung für Firefox und Safari ist in Arbeit.
Sowohl die Dawn-Bibliothek für Chromium als auch die wgpu-Bibliothek für Firefox sind als eigenständige Pakete verfügbar. Sie bieten eine hohe Portabilität und ergonomische Schichten, die die GPU-APIs des Betriebssystems abstrahieren. Die Verwendung dieser Bibliotheken in nativen Anwendungen erleichtert auch den Portierungsvorgang zu WASM über Emscripten und Rust web-sys.
Unterstützte Browser
Diese erste Version von WebGPU ist in Chrome 113 auf ChromeOS-Geräten mit Vulkan-Unterstützung, Windows-Geräten mit Direct3D 12-Unterstützung und macOS verfügbar. Linux, Android und eine erweiterte Unterstützung für bestehende Plattformen folgen bald.
WebGPU ist in Firefox und Safari in der Entwicklungsphase, zusätzlich zur ursprünglichen Implementierung in Chrome.
Bibliotheksunterstützung
Für viele weit verbreitete WebGL-Bibliotheken ist die WebGPU-Unterstützung bereits implementiert oder wird gerade implementiert. Das bedeutet, dass für die Verwendung von WebGPU möglicherweise nur eine Zeile geändert werden muss:
- Babylon.js unterstützt bereits vollständig WebGPU.
- 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
Ressourcen
WebGPU ist eine wichtige Technologie. Weitere Informationen finden Sie unter den folgenden Links:
- Weitere Informationen finden Sie in den W3C-Spezifikationen für WebGPU und WGSL.
- Experimentieren Sie mit Beispielen und lernen Sie WGSL mit einer Demo kennen.
- Weitere Informationen finden Sie in der MDN-Dokumentation.
- Lesen Sie die offizielle Erläuterung und die Best Practices.
- Weitere Informationen zu GPU-Computing und weitere Informationen
Danksagung
Vielen Dank an alle Chromium-Entwickler und insbesondere an Intel für ihre wertvolle Unterstützung, die diese Entwicklung ermöglicht hat.