Présentation de WebGPU

François Beaufort
François Beaufort

WebGPU est une API de graphisme Web qui offre des avantages importants, tels qu'une charge de travail JavaScript considérablement réduite pour les mêmes graphismes et une amélioration de plus de trois fois des inférences de modèles de machine learning. Cela est possible grâce à une programmation GPU flexible et à l'accès à des fonctionnalités avancées non fournies par WebGL.

L'API est conçue pour la plate-forme Web. Elle comprend une API JavaScript idiomatique, une intégration avec des promesses, la prise en charge de l'importation de vidéos et une expérience de développement soignée avec des messages d'erreur clairs.

WebGPU est le résultat d'un effort collaboratif du groupe de la communauté "GPU pour le Web" du W3C, qui inclut les contributions de grandes entreprises telles que Mozilla, Apple, Intel et Microsoft.

Prise en charge des navigateurs

Cette première version de WebGPU a été mise à disposition dans Chrome 113, sur les appareils ChromeOS compatibles avec Vulkan, les appareils Windows compatibles avec Direct3D 12 et macOS. Linux, Android et une compatibilité étendue avec les plates-formes existantes seront bientôt disponibles.

WebGPU est en cours de développement pour Firefox et Safari, en plus de l'implémentation initiale dans Chrome.

Compatibilité avec les bibliothèques

De nombreuses bibliothèques WebGL largement utilisées sont déjà en cours d'implémentation de la prise en charge de WebGPU ou l'ont déjà fait. Cela signifie que l'utilisation de WebGPU ne nécessite peut-être qu'une seule ligne de modification.

  • Babylon.js est entièrement compatible avec WebGPU.
  • PlayCanvas a annoncé la compatibilité initiale de WebGPU.
  • TensorFlow.js est compatible avec les versions optimisées WebGPU de la plupart des opérateurs.
  • La prise en charge de WebGPU dans Three.js est en cours. Consultez les exemples.

La bibliothèque Dawn pour Chromium et la bibliothèque wgpu pour Firefox sont disponibles en tant que package autonome. Ils offrent une excellente portabilité et des couches ergonomiques qui abstraient les API GPU du système d'exploitation. L'utilisation de ces bibliothèques dans des applications natives facilite le portage vers WASM via Emscripten et Rust web-sys.

Ressources

WebGPU est une technologie importante. Pour en savoir plus, nous vous recommandons les ressources suivantes: