Présentation de WebGPU

François Beaufort
François Beaufort

WebGPU est une API Web Graphics qui offre des avantages considérables, tels qu'une charge de travail JavaScript considérablement réduite pour les mêmes graphismes et des améliorations plus de trois fois supérieures pour les inférences de modèles de machine learning. Cela est possible grâce à la programmation flexible des GPU et à l'accès à des fonctionnalités avancées que WebGL n'offre pas.

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

WebGPU est le résultat d'une collaboration entre le groupe de la communauté "GPU for the Web" du W3C, qui comprend des contributions de grandes entreprises telles que Mozilla, Apple, Intel et Microsoft.

Prise en charge des navigateurs

Cette version initiale de WebGPU a été mise à disposition dans Chrome 113 sur les appareils ChromeOS compatibles avec Vulkan, sur les appareils Windows compatibles avec Direct3D 12 et sur macOS. Linux, Android et la prise en charge étendue des 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 couramment utilisées sont déjà en train de mettre en œuvre la compatibilité avec WebGPU, ou l'ont déjà fait. Cela signifie que l'utilisation de WebGPU peut ne nécessiter qu'un seul changement de ligne.

  • 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 pour WebGPU de la plupart des opérateurs.
  • WebGPU Three.js est en cours de compatibilité. Consultez les exemples.

La bibliothèque Dawn pour Chromium et la bibliothèque wgpu pour Firefox sont disponibles en tant que packages autonomes. Ils offrent une excellente portabilité et des couches ergonomiques qui éliminent 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 de consulter les ressources suivantes: