Dopo anni di sviluppo, il team di Chrome ha rilasciato WebGPU, che consente la grafica 3D ad alte prestazioni e il calcolo parallelo dei dati sul web.
Il team di Chrome è lieto di annunciare che WebGPU è ora disponibile per impostazione predefinita in Chrome 113, che al momento si trova nel canale beta. WebGPU è una nuova API di grafica web che offre vantaggi significativi, come un carico di lavoro JavaScript notevolmente ridotto per le stesse immagini e miglioramenti più che tripli nelle inferenze dei modelli di machine learning. Ciò è possibile grazie a una programmazione della GPU più flessibile e all'accesso a funzionalità avanzate che WebGL non fornisce.
Questa versione iniziale di WebGPU è disponibile su ChromeOS, macOS e Windows. Il supporto per altre piattaforme sarà disponibile entro la fine dell'anno.
Una nuova alba per la grafica web
WebGPU è una nuova API per il web che espone funzionalità hardware moderne e consente operazioni di rendering e calcolo su una GPU, in modo simile a Direct3D 12, Metal e Vulkan. A differenza della famiglia di API WebGL, WebGPU offre accesso a funzionalità GPU più avanzate e fornisce un supporto di prima classe per i calcoli generali sulla GPU. L'API è progettata pensando alla piattaforma web e offre un'API JavaScript idiomatica, l'integrazione con le promesse, il supporto per l'importazione dei video e un'esperienza utente raffinata con ottimi messaggi di errore.
Questa prima release di WebGPU funge da componente di base per aggiornamenti e miglioramenti futuri. L'API offrirà funzionalità grafiche più avanzate e gli sviluppatori sono invitati a inviare richieste di funzionalità aggiuntive. Il team di Chrome prevede inoltre di fornire un accesso più approfondito ai core shader per ulteriori ottimizzazioni del machine learning ed ergonomia aggiuntiva in WGSL, il linguaggio di shading WebGPU.
WebGPU è il risultato di uno sforzo collaborativo del gruppo della community "GPU per il web" del W3C, che include contributi di importanti aziende come Mozilla, Apple, Intel e Microsoft. Dopo sei anni di sviluppo (90 collaboratori, 2000 commit, 3000 problemi), dal progetto iniziale nel 2017, la prima implementazione è ora disponibile in Chrome, con il supporto di Firefox e Safari in corso.
Sia la libreria Dawn per Chromium sia la libreria wgpu per Firefox sono disponibili come pacchetti autonomi e offrono un'eccellente portabilità e livelli ergonomici che astraggono le API GPU del sistema operativo. L'utilizzo di queste librerie nelle applicazioni native semplifica anche il porting a WASM tramite Emscripten e Rust web-sys.
Supporto browser
Questa versione iniziale di WebGPU è disponibile in Chrome 113 sui dispositivi ChromeOS con supporto Vulkan, sui dispositivi Windows con supporto Direct3D 12 e su macOS. Linux, Android e il supporto ampliato per le piattaforme esistenti saranno disponibili a breve.
WebGPU è in fase di sviluppo in Firefox e Safari, oltre che nell'implementazione iniziale in Chrome.
Supporto della libreria
Molte librerie WebGL ampiamente utilizzate sono già in fase di implementazione del supporto di WebGPU o lo hanno già fatto. Ciò significa che l'utilizzo di WebGPU potrebbe richiedere solo la modifica di una singola riga:
- Babylon.js ha già il supporto completo di WebGPU.
- PlayCanvas ha annunciato il supporto iniziale di WebGPU.
- TensorFlow.js supporta le versioni ottimizzate per WebGPU della maggior parte degli operatori.
- È in corso lo sviluppo del supporto di WebGPU per Three.js. Consulta gli esempi.
Risorse
WebGPU è una tecnologia importante e ti consigliamo le seguenti risorse per saperne di più:
- Consulta le specifiche W3C per WebGPU e WGSL.
- Sperimenta con i samples ed esplora WGSL con un tour.
- Consulta la documentazione MDN.
- Leggi la spiegazione e le best practice ufficiali.
- Scopri di più sul calcolo GPU e su altro ancora.
Riconoscimenti
Un grande ringraziamento a tutti i collaboratori di Chromium e in particolare al team di Intel per il prezioso supporto che ha reso possibile tutto questo.