Riassunto:
Con la crescente popolarità dei processori di intelligenza artificiale, sempre più PC iniziano a essere dotati di unità di elaborazione della rete neurale (NPU) utilizzate specificamente per l'elaborazione dell'intelligenza artificiale. Tuttavia, questo tipo di hardware viene attualmente utilizzato principalmente per l'inferenza del modello AI locale e l'elaborazione delle immagini, e i desktop Windows quotidiani si affidano ancora principalmente a schede grafiche integrate o schede grafiche indipendenti per completare il rendering grafico.

Recentemente, un team di sviluppo chiamato labscommunity ha lanciato il progetto open source npu-driver, implementando con successo un esperimento piuttosto speciale: consentire a Windows 11 di completare la sintesi grafica del desktop interamente tramite la NPU, invece di fare affidamento sulla tradizionale GPU. Anche se la velocità attuale è estremamente lenta, questo risultato dimostra che la NPU, originariamente utilizzata principalmente per i calcoli dell'intelligenza artificiale, può anche svolgere alcune tradizionali attività di elaborazione grafica.
Il progetto è concesso in licenza con la licenza open source Apache 2.0 e il codice sorgente è stato rilasciato pubblicamente su GitHub. L'obiettivo del team di sviluppo è esplorare una domanda: è possibile trasferire completamente il lavoro di rendering del desktop originariamente completato dalla GPU alla NPU senza modificare l'applicazione Windows e il compositore desktop?
Per raggiungere questo obiettivo, gli sviluppatori hanno progettato uno speciale driver video che intercetta le operazioni grafiche originariamente inviate alla scheda grafica dal Desktop Window Manager (DWM) di Windows e quindi converte queste operazioni in attività di elaborazione che la NPU può gestire.
Le applicazioni Windows vengono ancora eseguite in modo tradizionale. Blocco note, Esplora file, Menu Start, Microsoft Edge e altre finestre non richiedono adattamenti speciali alla NPU. Ciò che è veramente cambiato è il percorso di elaborazione grafica sottostante: le attività di compositing desktop originariamente eseguite dalla GPU sono state riassegnate alla NPU.
In termini di implementazione specifica, npu-driver utilizza un driver personalizzato in modalità utente Direct3D 10 per registrare le operazioni grafiche come batch di dati frame, che vengono poi consegnati alla NPU Intel per l'elaborazione tramite OpenVINO e un core di elaborazione SHAVE dedicato. Il sistema implementa inoltre un proprio modulo di elaborazione della rasterizzazione, responsabile delle operazioni grafiche tradizionali come l'elaborazione dei vertici, il campionamento delle texture e la fusione dei livelli.
Attualmente questa soluzione è stata testata su laptop dotati di processori Intel Panther Lake. Panther Lake utilizza l'architettura NPU di quinta generazione e la potenza di calcolo NPU dei relativi processori raggiunge da 45 a 50 TOPS.
Tuttavia, i risultati sperimentali hanno messo in luce anche un problema molto evidente: le prestazioni.
L'attuale velocità di aggiornamento del desktop del driver npu è di soli 2 o 3 fotogrammi al secondo e alcuni test arrivano addirittura a 0,6 fotogrammi. In confronto, un desktop Windows standard funziona in genere a 60 fotogrammi al secondo o più. Anche se i giochi non sono coinvolti, il semplice spostamento di finestre, l'apertura di Esplora file o l'utilizzo della barra delle applicazioni può diventare estremamente lento.
In altre parole, questa soluzione attualmente dimostra che la NPU può svolgere compiti completi di sintesi grafica desktop, ma è lontana dal livello di prestazioni richiesto per l'uso quotidiano.
Gli sviluppatori puntano ad aumentare la frequenza di aggiornamento a 30 fotogrammi al secondo, ma sono ancora lontani da quell'obiettivo.
Per evitare gravi fallimenti durante l'esperimento, il team di sviluppo ha anche progettato un meccanismo di rollback automatico. Quando si verifica un errore nel driver NPU o l'utente richiede attivamente di cambiare, il sistema può riutilizzare la scheda grafica integrata o la scheda grafica indipendente per completare il rendering grafico. Tuttavia, esistono ancora alcune limitazioni a questo meccanismo di ripristino. In alcuni test non è stato possibile ripristinare completamente la posizione di tutte le finestre dell'applicazione.
Lo sviluppatore del progetto ha sottolineato che npu-driver è attualmente solo un prototipo di ricerca, non un prodotto maturo per i consumatori. Richiede hardware Intel Panther Lake specifico, driver NPU compatibili e strumenti di sviluppo aggiuntivi. Gli utenti ordinari non possono semplicemente installarlo e ottenere un sistema Windows 11 in esecuzione senza GPU.
L'obiettivo di questo esperimento non è in realtà dimostrare che la NPU può sostituire la scheda grafica, ma esplorare come ridistribuire il lavoro delle diverse unità di calcolo all'interno dei moderni processori.
Le CPU, le GPU e le NPU di oggi hanno ciascuna obiettivi di progettazione diversi. La GPU è efficace nel calcolo grafico parallelo su larga scala, mentre la NPU è appositamente ottimizzata per le operazioni su matrici e il ragionamento di rete neurale. Lasciare che la NPU si occupi delle attività di rendering del desktop significa che gli sviluppatori devono riconvertire i tradizionali processi di elaborazione grafica in attività adatte alle unità di calcolo della rete neurale, il che di per sé è un progetto piuttosto complesso.
Tuttavia, se in futuro l'efficienza di elaborazione potrà essere significativamente migliorata, la NPU potrebbe essere in grado di svolgere alcune delle attività desktop leggere originariamente eseguite dalla GPU, liberando così le risorse della GPU per giochi, elaborazione video o inferenza IA locale.
Allo stato attuale, npu-driver è ancora lontano dall'essere veramente pratico, ma ha portato a termine un'interessante verifica tecnica: il desktop Windows 11 non è solo capace di rendering sintetico tramite GPU tradizionali. Anche la NPU nei processori moderni può svolgere questo lavoro, ma il prezzo pagato in termini di prestazioni in questa fase è troppo alto.
Ulteriori informazioni:
https://github.com/labscommunity/npu-render
Commenti