Condividi tramite


Copilot+ Guida per gli sviluppatori di 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. Per altre informazioni, vedere Introduzione Copilota + PC - Blog ufficiale di Microsoft.

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 40+ TOPS, tra cui, a titolo esemplificativo:

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 API nel Windows Copilot Runtime. Altre informazioni su API di windows Runtime Copilot supportate dai modelli ottimizzati per l'esecuzione (inferenza) nella 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 inferenza (eseguire attività di intelligenza artificiale) nell'NPU del dispositivo consiste nell'usare il runtime ONNX. ONNX Runtime è uno stack flessibile ed efficiente per programmare l'NPU, nonché la GPU e la CPU, consentendo di usare modelli di intelligenza artificiale personalizzati o di usare modelli di intelligenza artificiale open source disponibili sul Web. Altre informazioni sull'uso di ONNX Runtime per accedere alla NPU seguente o altre informazioni su come usare i modelli di Machine Learning nell'app Di Windows.

Nota

Informazioni sull'uso di altri runtime per PyTorch o Tensorflow? In Windows sono supportati anche altri runtime per PyTorch, Tensorflow e altri tipi SDK forniti dal fornitore silicon. Attualmente è possibile eseguire PyTorch, TensorFlow e altri tipi di modello convertendo nel formato ONNX flessibile, ma il supporto nativo sarà presto disponibile.

Come usare il runtime ONNX per accedere a livello di codice alla NPU in un Copilot+ PC

Microsoft offre un framework di inferenza e training open source completo denominato ONNX Runtime. ONNX Runtime è la soluzione Microsoft open source consigliata per eseguire modelli di intelligenza artificiale in una NPU. Poiché ONNX Runtime è flessibile e supporta molte opzioni diverse per eseguire modelli di intelligenza artificiale, le scelte possono generare confusione. Questa guida ti aiuterà a selezionare scelte specifiche per Windows Copilot+ PC.

  • Qualcomm Eseguion X: attualmente, gli sviluppatori devono scegliere qualcomm QNN Execution Provider (EP) che usa Qualcomm AI Engine Direct SDK (QNN). I pacchetti predefiniti con supporto QNN sono disponibili per il download. Si tratta dello stesso stack attualmente usato da Windows Copilot Runtime ed esperienze nei Copilotdispositivi + PC Qualcomm. Il supporto di DirectML e WebNN per le NPU Qualcomm Xamlon X Elite è stato annunciato alla Build 2024 e sarà presto disponibile.
  • Dispositivi Intel e AMD NPU: altri dispositivi NPU saranno disponibili più avanti nel 2024. DirectML è il metodo consigliato per indirizzare questi dispositivi.

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 di addizione