Condividi tramite


Sviluppare applicazioni di intelligenza artificiale per Copilot+ PC

Copilot+ I PC sono una nuova classe di hardware Windows 11 con tecnologia NPU (Neural Processing Unit) ad alte prestazioni, un chip di computer specializzato per processi a elevato utilizzo di intelligenza artificiale, ad esempio traduzioni in tempo reale e generazione di immagini, che possono eseguire più di 40 trilioni di operazioni al secondo (TOPS). Copilot+ I PC forniscono tutta la durata della batteria e l'accesso alle funzionalità e ai modelli di intelligenza artificiale più avanzati.

Ulteriori informazioni:

Le linee guida per sviluppatori di + PC seguenti Copilotillustrano:

  • Prerequisiti del dispositivo
  • Che cos'è il chip Elite X+ basato su Arm?
  • Funzionalità di intelligenza artificiale univoche supportate da Copilot+ PC con un processore NPU
  • Come accedere alla NPU in un Copilot+ PC
  • Come usare il runtime ONNX per accedere a livello di codice alla NPU in un Copilot+ PC
  • Come misurare le prestazioni dei modelli di intelligenza artificiale in esecuzione in locale nell'NPU del dispositivo

Prerequisiti

Queste indicazioni sono specifiche di Copilot+ PC.

Molte delle nuove funzionalità di intelligenza artificiale di Windows richiedono una NPU con la possibilità di eseguire a 40+ TOPS, tra cui, a titolo esemplificativo:

Surface Copilot+ PC per aziende

Che cos'è il chip Elite X basato su Arm?

Il nuovo chip basato su Arm Elite Di Classe X Di Classe Costruita da Qualcomm enfatizza l'integrazione dell'intelligenza artificiale tramite la sua NPU (Neural Processing Unit) leader del settore. Questa NPU è in grado di elaborare grandi quantità di dati in parallelo, eseguendo trilioni di operazioni al secondo, usando energia per le attività di intelligenza artificiale in modo più efficiente rispetto a una CPU o GPU con conseguente maggiore durata della batteria del dispositivo. L'NPU funziona in linea con la CPU e la GPU. Windows 11 assegna le attività di elaborazione al posto più appropriato per offrire prestazioni veloci ed efficienti. La NPU consente esperienze intelligenti di intelligenza artificiale su dispositivo con sicurezza di livello aziendale per una protezione avanzata dal chip al cloud.

Funzionalità di intelligenza artificiale univoche supportate da Copilot+ PC con una NPU

Copilot+ I PC offrono esperienze di intelligenza artificiale uniche che vengono fornite con versioni moderne di Windows 11. Queste funzionalità di intelligenza artificiale, progettate per l'esecuzione nella NPU del dispositivo, vengono fornite nelle versioni più recenti di Windows e saranno disponibili tramite le API in Microsoft Foundry in Windows. Altre informazioni su Microsoft Foundry on Windows APIs supportate con modelli ottimizzati per l'esecuzione (inferenza) sulla NPU. Queste API verranno fornite in una versione futura di Windows App SDK .

Come accedere alla NPU in un Copilot+ PC

L'unità di elaborazione neurale (NPU) è una nuova risorsa hardware. Come altre risorse hardware in un PC, la NPU necessita di software per essere programmato in modo specifico per sfruttare i vantaggi offerti. I criteri di rete sono progettati appositamente per eseguire le operazioni matematiche di Deep Learning che costituiscono modelli di intelligenza artificiale.

Le funzionalità di Windows 11 Copilote intelligenza artificiale indicate in precedenza sono state progettate in modo specifico per sfruttare i vantaggi della NPU. Gli utenti otterranno una maggiore durata della batteria e tempi di esecuzione dell'inferenza più veloci per i modelli di intelligenza artificiale destinati alla NPU. Il supporto di Windows 11 per i criteri di rete includerà i dispositivi Qualcomm basati su Arm, nonché i dispositivi Intel e AMD (presto disponibili).

Per i dispositivi con server di rete, Task Manager può ora essere usato per visualizzare l'utilizzo delle risorse NPU.

Screenshot di Gestione attività di Windows che mostra le prestazioni delle NPU insieme a CPU, GPU, memoria, Ethernet e disco

Il modo consigliato per eseguire inferenze (realizzare attività di intelligenza artificiale) sull'unità di elaborazione neurale (NPU) del dispositivo consiste nell'usare Windows ML.

Come accedere a livello di codice alla NPU in un Copilot+ PC per l'accelerazione dell'intelligenza artificiale

Il modo consigliato per accedere a livello di codice alla NPU (Neural Processing Unit) e alla GPU per l'accelerazione di intelligenza artificiale è stato spostato da DirectML a Windows ML (WinML). Questa transizione riflette un impegno più ampio per semplificare e ottimizzare l'esperienza di sviluppo per i carichi di lavoro di intelligenza artificiale nei dispositivi Windows. Le linee guida aggiornate sono disponibili qui: Informazioni su come Windows Machine Learning (ML) consente alle app di Windows di eseguire modelli di intelligenza artificiale in locale.

  • Individuazione EP predefinita: in precedenza, gli sviluppatori dovevano sapere quali provider di esecuzione (EP) erano compatibili con il loro hardware e includere quegli EP nelle loro applicazioni. Questo spesso ha portato a dimensioni maggiori dell'applicazione e maggiore complessità nella gestione delle dipendenze. Con Windows ML, il processo è ora automatizzato e semplificato. Windows ML rileva automaticamente l'hardware disponibile nel dispositivo e scarica gli EP appropriati in base alle esigenze. Ciò significa che gli sviluppatori non devono più aggregare indirizzi IP specifici con le applicazioni, con conseguente riduzione delle dimensioni delle applicazioni e riduzione della complessità.

  • Distribuzione integrata di EP: gli EP necessari, ad esempio QNNExecutionProvider di Qualcomm o OpenVINO EP di Intel, sono ora in bundle con Windows o recapitati tramite Windows Update, eliminando la necessità di download manuali.

  • ORT sotto il cofano: Windows ML usa ancora ONNX Runtime come motore di inferenza, ma astrae la complessità della gestione degli EP. ONNX Runtime è un motore di inferenza e training open source per i modelli di intelligenza artificiale usando il formato ONNX e consentendo agli sviluppatori di creare applicazioni di intelligenza artificiale che possono essere eseguite in modo efficiente in un'ampia gamma di dispositivi.

  • Collaborazione con i fornitori di hardware: Microsoft collabora direttamente con i fornitori di hardware, ad esempio Qualcomm e Intel, per garantire la compatibilità EP con le versioni iniziali dei driver e il nuovo silicio (ad esempio, Snapdragon X Elite, Intel Core Ultra e così via).

Quando si distribuisce un modello di intelligenza artificiale usando Windows ML in un Copilot+ PC:

  • Windows ML esegue una query sul sistema per individuare gli acceleratori hardware disponibili.
  • Seleziona l'EP più efficiente, ad esempio QNN per NPU Qualcomm, OpenVINO per LE NPU Intel.
  • L'EP viene caricato automaticamente e l'inferenza inizia.
  • Se l'EP preferito fallisce o non è disponibile, Windows ML passa agevolmente a un altro (ad esempio, usando la GPU o la CPU).

Ciò significa che gli sviluppatori possono concentrarsi sulla creazione di esperienze di intelligenza artificiale senza preoccuparsi dell'integrazione hardware di basso livello

Formati di modello supportati

I modelli di intelligenza artificiale vengono spesso sottoposti a training e disponibili in formati di dati più grandi, ad esempio FP32. Molti dispositivi NPU, tuttavia, supportano solo numeri interi in formato di bit inferiore, ad esempio INT8, per migliorare le prestazioni e l'efficienza energetica. Di conseguenza, i modelli di intelligenza artificiale devono essere convertiti (o "quantizzati") per l'esecuzione nella NPU. Sono disponibili molti modelli che sono già stati convertiti in un formato pronto per l'uso. È anche possibile usare un modello BYOM (Bring Your Own Model ) per convertire o ottimizzare.

  • Qualcomm AI Hub (Compute): Qualcomm fornisce i modelli di intelligenza artificiale già convalidati per l'uso su Copilot+ PC con La Classe X Elite con i modelli disponibili ottimizzati in modo specifico per l'esecuzione efficiente su questa NPU. Altre informazioni: Accelerare la distribuzione del modello con Qualcomm AI Hub | Microsoft Build 2024.
  • ONNX Model Zoo: questo repository open source offre una raccolta curata di modelli con training preliminare e all'avanguardia nel formato ONNX. Questi modelli sono consigliati per l'uso con i criteri di rete in tutti i CopilotPC + inclusi i dispositivi Intel e AMD (presto disponibile).

Per coloro che vogliono usare un modello personalizzato, è consigliabile usare lo strumento di ottimizzazione del modello compatibile con hardware, Olive. Olive può essere utile per la compressione del modello, l'ottimizzazione e la compilazione per lavorare con ONNX Runtime come soluzione di ottimizzazione delle prestazioni NPU. Altre informazioni: L'intelligenza artificiale è stata semplificata: come il runtime ONNX e la toolchain Olive ti aiuteranno a domande e risposte | Build 2023.

Come misurare le prestazioni dei modelli di intelligenza artificiale in esecuzione in locale nell'NPU del dispositivo

Per misurare le prestazioni dell'integrazione delle funzionalità di intelligenza artificiale nell'app e i runtime del modello di intelligenza artificiale associati:

  • Registrare una traccia: la registrazione dell'attività del dispositivo in un periodo di tempo è nota come traccia di sistema. La traccia di sistema produce un file di "traccia" che può essere usato per generare un report e identificare come migliorare le prestazioni dell'app. Altre informazioni: Acquisire una traccia di sistema per analizzare l'utilizzo della memoria.

  • Visualizzare l'utilizzo delle NPU: esaminare i processi che usano l'NPU e gli stack di chiamate che inviano il lavoro.

  • Visualizzare gli stack di lavoro e di chiamata nella CPU: esaminare i risultati dei modelli di intelligenza artificiale di alimentazione preliminare e dei modelli di intelligenza artificiale post-lavoro.

  • Caricamento e runtime: esaminare il periodo di tempo per caricare un modello di intelligenza artificiale e creare una sessione di runtime ONNX.

  • Parametri di runtime: esaminare i parametri di configurazione del runtime ONNX e del provider di esecuzione (EP) che influiscono sulle prestazioni e l'ottimizzazione del runtime del modello.

  • Singoli tempi di inferenza: tenere traccia dei tempi di inferenza e dei dettagli secondari dell'NPU.

  • Profiler: profilare le operazioni del modello di intelligenza artificiale per verificare il tempo impiegato da ogni operatore per contribuire al tempo totale di inferenza.

  • Specifica dell'NPU: esaminare i dettagli secondari della NPU, ad esempio le metriche sub-HW, la larghezza di banda della memoria e altro ancora.

Screenshot che fornisce un'impressione generale dello strumento windows analizzatore prestazioni

Per eseguire queste misurazioni, è consigliabile usare gli strumenti di diagnostica e traccia seguenti:

  • Gestione attività: consente a un utente di visualizzare le prestazioni del sistema operativo Windows installato nel dispositivo, inclusi Processi, Prestazioni, Cronologia app, App di avvio, Utenti, Dettagli e Servizi. I dati sulle prestazioni in tempo reale verranno visualizzati per la CPU del dispositivo, memoria, disco di archiviazione, Wi-Fi, GPU... e ora NPU. I dati includono la percentuale di utilizzo, memoria disponibile, memoria condivisa, versione del driver, posizione fisica e altro ancora.
  • Windows Performance Recorder (WPR): WPR ora viene fornito con un profilo di elaborazione neurale per registrare l'attività NPU. In questo modo vengono registrate le interazioni MCDM (Microsoft Compute Driver Model) con la NPU. Gli sviluppatori possono ora visualizzare l'utilizzo di NPU, i processi che usano l'NPU e gli stack di chiamate che inviano il lavoro.
  • Windows analizzatore prestazioni (WPA): WPA crea grafici e tabelle dati di eventi ETW (Event Tracing for Windows) registrati da Windows Performance Recorder (WPR), Xperf o una valutazione eseguita nella piattaforma di valutazione. Fornisce utili punti di accesso per l'analisi della CPU, del disco, della rete, degli eventi di runtime ONNX... e una nuova tabella per l'analisi delle NPU, tutte in una singola sequenza temporale. WPA può ora visualizzare il lavoro e gli stack di chiamate sulla CPU correlata ai modelli di intelligenza artificiale di alimentazione preliminare e ai risultati del modello di intelligenza artificiale post-lavoro. Scaricare Windows analizzatore prestazioni da Microsoft Store.
  • GPUView: GPUView è uno strumento di sviluppo che legge gli eventi video e kernel registrati da un file di log di traccia eventi (con estensione etl) e presenta i dati graficamente all'utente. Questo strumento include ora le operazioni GPU e NPU, nonché il supporto per la visualizzazione di eventi DirectX per dispositivi MCDM come la NPU.
  • Eventi onNX Runtime in Windows analizzatore prestazioni: a partire da ONNXRuntime 1.17 (e migliorato nella versione 1.18.1) sono disponibili i casi d'uso seguenti con gli eventi generati nel runtime:
    • Vedere quanto tempo è necessario per caricare un modello di intelligenza artificiale e creare una sessione di runtime ONNX.
    • Vedere i parametri ONNX Runtime configuration e Execution Provider (EP) che influiscono sulle prestazioni e l'ottimizzazione del runtime del modello.
    • Tenere traccia dei tempi di inferenza e dei dettagli secondari della NPU (QNN).
    • Profilare le operazioni del modello di intelligenza artificiale per verificare per quanto tempo ogni operatore ha impiegato per contribuire al tempo di inferenza totale.
    • Altre informazioni sulla profilatura del provider di esecuzione runtime ONNX (EP).

Nota

L'interfaccia utente wpr (interfaccia utente disponibile per supportare il WPR basato su riga di comando inclusa in Windows), WPA e GPUView fanno parte di Windows Performance Toolkit (WPT), versione di maggio 2024+. Per usare WPT, è necessario scaricare Windows ADK Toolkit.

Per una guida introduttiva sulla visualizzazione degli eventi onNX Runtime con Windows analizzatore prestazioni (WPA), seguire questa procedura:

  1. Scaricare ort.wprp e etw_provider.wprp.

  2. Aprire la riga di comando e immettere:

    wpr -start ort.wprp -start etw_provider.wprp -start NeuralProcessing -start CPU
    echo Repro the issue allowing ONNX to run 
    wpr -stop onnx_NPU.etl -compress
    
  3. Combinare i profili di Windows Performance Recorder (WPR) con altri profili di registrazione predefiniti, ad esempio CPU, disco e così via.

  4. Scaricare Windows analizzatore prestazioni (WPA) da Microsoft Store.

  5. Aprire il onnx_NPU.etl file in WPA. Fare doppio clic per aprire questi grafici:

    • "Elaborazione neurale -> Utilizzo NPU
    • Eventi generici per gli eventi ONNX

Altri strumenti di misurazione delle prestazioni da usare con gli strumenti di Microsoft Windows elencati in precedenza includono:

  • Qualcomm Scalabilità Profiler (qprof): uno strumento di profilatura delle prestazioni a livello di sistema e GUI progettato per visualizzare le prestazioni del sistema, nonché identificare le opportunità di miglioramento del ridimensionamento delle applicazioni e dell'ottimizzazione in CPU SoC Qualcomm, GPU, DSP e altri blocchi IP. Il Profiler Di Classe Consente di visualizzare i dettagli secondari della NPU, ad esempio le metriche sub-HW, la larghezza di banda della memoria e altro ancora.

Risorse aggiuntive