Dela via


utvecklarguide för Copilot+ datorer

Copilot+ datorer är en ny klass av Windows 11-maskinvara som drivs av en högpresterande neural bearbetningsenhet (NPU) – ett specialiserat datorchip för AI-intensiva processer som realtidsöversättningar och bildgenerering – som kan utföra mer än 40 biljoner åtgärder per sekund (TOPS). Copilot+ datorer ger batteritid hela dagen och tillgång till de mest avancerade AI-funktionerna och modellerna. Läs mer om Presenterar Copilot+ PCs – Den officiella Microsoft-bloggen.

Följande Copilot+ utvecklarvägledning för datorer omfattar:

  • Enhetsförutsättningar
  • Vad är Arm-baserad "Snapdragon Elite X+" chip?
  • Unika AI-funktioner som stöds av Copilot+ datorer med en NPU-processor
  • Så här kommer du åt NPU:n på en Copilot+ dator
  • Så här använder du ONNX Runtime för att programmatiskt komma åt NPU:n på en Copilot+ dator
  • Så här mäter du prestanda för AI-modeller som körs lokalt på enhetens NPU

Förutsättningar

Den här vägledningen är specifik för Copilot+ datorer.

Många av de nya Windows AI-funktionerna kräver en NPU med möjlighet att köra över 40 TOPS, inklusive men inte begränsat till:

Vad är det Arm-baserade Snapdragon Elite X-chipet?

Det nya Snapdragon X Elite Arm-baserade chipet byggt av Qualcomm betonar AI-integrering genom sin branschledande neurala bearbetningsenhet (NPU). Den här NPU:n kan bearbeta stora mängder data parallellt och utföra biljoner åtgärder per sekund, genom att använda energi på AI-uppgifter mer effektivt än en CPU eller GPU, vilket resulterar i längre batteritid för enheten. NPU:n fungerar i linje med CPU och GPU. Windows 11 tilldelar bearbetningsuppgifter till den lämpligaste platsen för att leverera snabba och effektiva prestanda. NPU möjliggör ai-intelligenta upplevelser på enheten med säkerhet i Företagsklass för förbättrat skydd från chip till molnet.

Unika AI-funktioner som stöds av Copilot+ datorer med en NPU

Copilot+ datorer erbjuder unika AI-upplevelser som levereras med moderna versioner av Windows 11. Dessa AI-funktioner, som är utformade för att köras på enhetens NPU, levereras i de senaste versionerna av Windows och kommer att vara tillgängliga via API:er i Windows Copilot Runtime. Läs mer om Windows Runtime-API:er Copilot som stöds av modeller som är optimerade för inferens på NPU:n. Dessa API:er levereras i en kommande version av Windows App SDK.

Så här kommer du åt NPU:n på en Copilot+ dator

Neural Processing Unit (NPU) är en ny maskinvaruresurs. Liksom andra maskinvaruresurser på en dator behöver NPU:n programvara som är särskilt programmerad för att dra nytta av de fördelar den erbjuder. NPU:er är särskilt utformade för att utföra djupinlärningsmatematikåtgärder som utgör AI-modeller.

Funktionerna i Windows 11 Copilot+ AI som nämns ovan har utformats särskilt för att dra nytta av NPU:n. Användarna får bättre batteritid och snabbare inferenser för AI-modeller som använder NPU:n. Windows 11-stöd för NPU:er kommer att innehålla Arm-baserade Qualcomm-enheter, samt Intel- och AMD-enheter (kommer snart).

För enheter med NPU:er kan Task Manager- nu användas för att visa NPU-resursanvändning.

Skärmbild av Windows Task Manager som visar NPU-prestanda tillsammans med CPU, GPU, minne, Ethernet och disk

Det rekommenderade sättet att dra slutsatser (köra AI-uppgifter) på enhetens NPU är att använda ONNX Runtime-. ONNX Runtime är en flexibel och högpresterande stack för att programmera mot NPU, samt GPU och CPU, så att du kan ta med dina egna AI-modeller eller använda AI-modeller med öppen källkod som finns på webben. Läs mer om hur du använder ONNX Runtime för att komma åt NPU:n nedan, eller läs mer om hur du använder Machine Learning-modeller i din Windows-app.

Anteckning

Vad sägs om att använda andra runtimes för PyTorch eller Tensorflow? Andra körningar för PyTorch, Tensorflow och andra SDK-typer som tillhandahålls av Silicon-leverantörer stöds också i Windows. För närvarande kan du köra PyTorch, TensorFlow och andra modelltyper genom att konvertera till det flexibla ONNX-formatet, men inbyggt stöd kommer snart.

Så här använder du ONNX Runtime för att programmatiskt komma åt NPU:n på en Copilot+ dator

Microsoft tillhandahåller ett komplett ramverk för slutsatsdragning och utbildning med öppen källkod som kallas ONNX Runtime. ONNX Runtime är den rekommenderade Microsoft-lösningen med öppen källkod för att köra AI-modeller på en NPU. Eftersom ONNX Runtime är flexibelt och stöder många olika alternativ för att köra AI-modeller kan alternativen vara förvirrande. Den här guiden hjälper dig att välja val som är specifika för Windows Copilot+ datorer.

  • Qualcomm Snapdragon X: För närvarande bör utvecklare rikta in sig på Qualcomm QNN Execution Provider (EP), som använder Qualcomm AI Engine Direct SDK (QNN). Förbyggda paket med QNN-support finns tillgängliga för nedladdning. Detta är samma stack som för närvarande används av Windows Copilot Runtime och upplevelser på Copilot+ PC Qualcomm-enheter. DirectML och WebNN stöd för Qualcomm Snapdragon X Elite NPUs tillkännagavs på Build 2024 och kommer snart att vara tillgängligt.
  • Intel- och AMD NPU-enheter: Ytterligare NPU-enheter kommer att vara tillgängliga senare under 2024. DirectML- är den rekommenderade metoden för att rikta in sig på dessa enheter.

Modellformat som stöds

AI-modeller tränas ofta och är tillgängliga i större dataformat, till exempel FP32. Många NPU-enheter stöder dock bara heltalsmatematik i lägre bitformat, till exempel INT8, för ökad prestanda och energieffektivitet. Därför måste AI-modeller konverteras (eller "kvantifieras") för att köras på NPU:n. Det finns många tillgängliga modeller som redan har konverterats till ett färdigt format. Du kan också ta med din egen modell (BYOM) för att konvertera eller optimera.

  • Qualcomm AI Hub (Compute): Qualcomm tillhandahåller AI-modeller som redan har verifierats för användning på Copilot+ datorer med Snapdragon X Elite med tillgängliga modeller som är särskilt optimerade för att köras effektivt på denna NPU. Läs mer: Påskynda modelldistributionen med Qualcomm AI Hub | Microsoft Build 2024.
  • ONNX Model Zoo: Den här lagringsplatsen med öppen källkod erbjuder en kuraterad samling förtränade, toppmoderna modeller i ONNX-format. Dessa modeller rekommenderas för användning med NPU:er för alla Copilot+ datorer, inklusive Intel- och AMD-enheter (kommer snart).

För dem som vill ta med din egen modell rekommenderar vi att du använder verktyget för maskinvarumedveten modelloptimering Olive. Olive kan hjälpa till med modellkomprimering, optimering och kompilering för att arbeta med ONNX Runtime som en lösning för NPU-prestandaoptimering. Läs mer: AI har blivit enklare: Så här hjälper verktygskedjan ONNX Runtime och Olive dig Q&A | Build 2023.

Så här mäter du prestanda för AI-modeller som körs lokalt på enhetens NPU

Så här mäter du prestanda för AI-funktionsintegrering i din app och tillhörande AI-modellkörningar:

  • Registrera en spårning: Inspelning av enhetsaktivitet under en tidsperiod kallas systemspårning. Systemspårning skapar en "spårningsfil" som kan användas för att generera en rapport och hjälpa dig att identifiera hur du kan förbättra appens prestanda. Läs mer: Avbilda en systemspårning för att analysera minnesanvändningen.

  • Visa NPU-användning: Granska vilka processer som använder NPU:n och de anropstackar som skickar arbete.

  • Visa arbete och anropsstackar på CPU: Granska resultatet av AI-modeller för bearbetning av förarbete och AI-modeller för bearbetning av efterarbete.

  • Load and Runtime: Granska hur lång tid det tar att läsa in en AI-modell och skapa en ONNX Runtime-session.

  • Körningsparametrar: Granska ONNX Runtime-konfiguration och exekveringsleverantör-parametrar (EP) som påverkar modellens körprestanda och optimering.

  • Individuella slutsatsdragningstider: Spåra tider per slutsatsdragning och delinformation från NPU:n.

  • Profiler: Profilera AI-modelloperationer för att se hur lång tid varje operatör tog för att bidra till den totala tidsåtgången för inferens.

  • NPU-specifik: Granska NPU-underinformation, till exempel del-HW-mått, minnesbandbredd med mera.

Skärmbild som ger ett allmänt intryck av verktyget Windows Performance Analyzer

För att utföra dessa mätningar rekommenderar vi följande diagnostik- och spårningsverktyg:

  • Aktivitetshanteraren: Gör att en användare kan visa prestanda för Windows-operativsystemet som är installerat på enheten, inklusive Processer, Prestanda, Apphistorik, Startappar, Användare, Information och Tjänster. Prestandadata i realtid visas för enhetens PROCESSOR, Minne, Lagringsdisk, Wi-Fi, GPU... och nu NPU. Data omfattar procentandelen användning, tillgängligt minne, delat minne, drivrutinsversion, fysisk plats med mera.
  • Windows Performance Recorder (WPR): WPR levereras nu med en neuronal bearbetningsprofil för att registrera NPU-aktivitet. Det här registrerar MCDM (Microsoft Compute Driver Model) interaktioner med NPU:n. Utvecklare kan nu se NPU-användning, vilka processer som använder NPU:n och de anropstackar som skickar arbete.
  • WINDOWS Performance Analyzer (WPA): WPA skapar grafer och datatabeller för händelsespårning för Windows-händelser (ETW) som registreras av WPR (Windows Performance Recorder), Xperf eller en utvärdering som körs i utvärderingsplattformen. Det ger praktiska åtkomstpunkter för att analysera cpu-, disk-, nätverks-, ONNX-körningshändelser... och en ny tabell för NPU-analys, allt på en enda tidslinje. WPA kan nu visa arbeten och anropstackar på processorn som är relaterade till AI-modeller, både för arbete med att mata AI-modeller och för bearbetning av AI-modellresultat efter arbetet. Ladda ned Windows Performance Analyzer från Microsoft Store.
  • GPUView: GPUView är ett utvecklingsverktyg som läser loggade video- och kernelhändelser från en händelsespårningsloggfil (.etl) och presenterar data grafiskt för användaren. Det här verktyget innehåller nu både GPU- och NPU-åtgärder samt stöd för att visa DirectX-händelser för MCDM- enheter som NPU.
  • ONNX Runtime-händelser i Windows Performance Analyzer: Från och med ONNXRuntime 1.17 (och utökad i 1.18.1) är följande användningsfall tillgängliga med händelser som genereras under körningen:
    • Se hur lång tid det tog att läsa in en AI-modell och skapa en ONNX Runtime-session.
    • Se parametrar för ONNX Runtime-konfiguration och exekveringsleverantör (EP) som påverkar modellkörningens prestanda och optimering.
    • Spåra inferenstider och delinformation från NPU (QNN).
    • Profilera AI-modellåtgärder för att se hur lång tid varje operatör tog för att bidra till den totala inferenstiden.
    • Läs mer om EP-profilering (ONNX Runtime Execution Provider).

Not

WPR-användargränssnittet (användargränssnittet som är tillgängligt för att stödja den kommandoradsbaserade WPR som ingår i Windows), WPA och GPUView är alla en del av Windows Performance Toolkit (WPT), version maj 2024+. Om du vill använda WPT måste du: Ladda ned Windows ADK Toolkit.

Följ dessa steg för en snabbstart om att visa ONNX Runtime-händelser med Windows Performance Analyzer (WPA):

  1. Ladda ned ort.wprp och etw_provider.wprp.

  2. Öppna kommandoraden och ange:

    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. Kombinera WPR-profilerna (Windows Performance Recorder) med andra inbyggda inspelningsprofiler till exempel PROCESSOR, Disk osv.

  4. Ladda ned Windows Performance Analyzer (WPA) från Microsoft Store.

  5. Öppna filen onnx_NPU.etl i WPA. Double-Click för att öppna dessa diagram:

    • "Neural bearbetning –> NPU-användning
    • Allmänna händelser för ONNX-händelser

Ytterligare verktyg för prestandamätning som du kan använda med Microsoft Windows-verktygen som anges ovan är:

  • Qualcomm Snapdragon Profiler (qprof): Ett GUI- och systemomfattande prestandaprofileringsverktyg som är utformat för att visualisera systemprestanda samt identifiera möjligheter till förbättring av optimering och programskalning i Qualcomm SoC-processorer, GPU:er, DSP:er och andra IP-block. Med Snapdragon Profiler kan du visa NPU-underinformation, till exempel under HW-mått, minnesbandbredd med mera.

Tilläggsresurser