WebGPU: cos'è e come scambiare dati con la GPU da browser

Cos'è la nuova API WebGPU: frutto di 6 anni di lavoro sbarca in Google Chrome e permette di velocizzare la gestione di grafiche complesse, modellazione 3D, machine learning dal browser. Il software che si usa abitualmente per la "navigazione" online diventa in grado di scambiare dati con la GPU senza passare per il processore principale.

Il team di sviluppo di Google ha confermato che Chrome 113 abbraccerà il supporto WebGPU.
WebGPU è un’API di basso livello che permette l’accesso alla GPU direttamente dal browser Web: si tratta di una tecnologia sviluppata dal gruppo di lavoro omonimo costituito all’interno della W3C (World Wide Web Consortium). Con WebGPU diventa possibile creare e gestire grafiche ed applicazioni 3D ad alte prestazioni.

L’API è stata progettata per sostituire le precedenti WebGL e WebCL offrendo una maggiore flessibilità e controllo nella programmazione grafica sul Web. Con WebGPU è infatti permesso agli sviluppatori l’accesso diretto alle risorse hardware della GPU evitando il trasferimento dei dati attraverso il processore principale (CPU): ciò si traduce in tempi di caricamento delle applicazioni nettamente ridotti e prestazioni aumentate.

Un altro aspetto fondamentale di WebGPU è che l’API è studiata per essere multipiattaforma supportando diverse architetture hardware, come quelle di AMD, NVidia e Intel. Ciò consente ai creatori di contenuti Web di offrire esperienze grafiche avanzate su una vasta gamma di dispositivi, dai computer desktop alle console di gioco e ai dispositivi mobili.

A beneficiare del nuovo approccio non è solamente il codice JavaScript usato per la gestione di contenuti grafici, che diventa molto più snello, ma anche la fase di inferenza usata nelle attività di machine learning.

Google definisce l’introduzione di WebGPU nel browser Chrome come “una nuova alba per la grafica Web“: la possibilità di spostare le elaborazioni e i calcoli più pesanti sulla GPU da browser è una novità di primo piano per qualunque programmatore.

WebGPU è il risultato di uno sforzo collaborativo che ha richiesto ben 6 anni di sviluppo in seno al W3C e che include contributi di importanti aziende come Mozilla, Apple, Intel e Microsoft.
La versione iniziale del supporto per WebGPU è già stata integrata nella beta di CHrome 113 sui dispositivi ChromeOS con supporto Vulkan, dispositivi Windows con Direct3D 12 e sistemi macOS. La compatibilità con Android, Linux e altre piattaforme sarà introdotta a breve.

Molte librerie WebGL ampiamente utilizzate stanno implementando il supporto WebGPU o lo hanno già fatto. Ciò significa che l’utilizzo di WebGPU potrebbe richiedere solo la modifica di una singola riga di codice.

Babylon.js, per esempio, gode già del supporto WebGPU completo. Babylon.js è una libreria open source di grafica 3D per lo sviluppo di applicazioni Web. Offre una vasta gamma di funzionalità, tra cui la creazione di modelli 3D, l’animazione, la fisica, l’illuminazione e l’audio.
È progettata per essere facile da usare e personalizzabile, consentendo agli sviluppatori di creare applicazioni 3D complesse senza dover scrivere codice da zero.
In questa pagina è possibile anche avviare codice dimostrativo per rendersi conto delle potenzialità delle API.

Anche TensorFlow.js, libreria open source per il machine learning che permette di addestrare e utilizzare modelli direttamente nel browser web o in Node.js assicura un ampio supporto per WebGPU.

Gli autori di PlayCanvas, motore di gioco 3D basato su Web che consente agli sviluppatori di creare giochi e applicazioni 3D interattivi direttamente nel browser, hanno annunciato il supporto iniziale di WebGPU.

I manutentori del progetto Three.js, libreria JavaScript open source per la creazione di grafica 3D interattiva all’interno del browser Web, hanno confermato che l’implementazione di WebGPU è in corso d’opera e hanno fornito alcuni esempi.

Ti consigliamo anche

Link copiato negli appunti