Delen via


Ontwikkelaarshandleiding voor Copilot+ PC's

Copilot+ pc's zijn een nieuwe klasse Windows 11-hardware die wordt aangedreven door een krachtige neurale verwerkingseenheid (NPU) - een gespecialiseerde computerchip voor AI-intensieve processen, zoals realtime vertalingen en het genereren van afbeeldingen, die meer dan 40 biljoen bewerkingen per seconde (TOPS) kunnen uitvoeren. Copilot+ pc's bieden de hele dag batterijduur en toegang tot de meest geavanceerde AI-functies en -modellen. Meer informatie vindt u op Introductie van Copilot+ pc's - De officiële Microsoft-blog.

De volgende Copilot+ PC-ontwikkelingsrichtlijnen omvatten:

  • Apparaatvereisten
  • Wat is de op Arm gebaseerde Snapdragon Elite X+ chip?
  • Unieke AI-functies die worden ondersteund door Copilot+ pc's met een NPU-processor
  • Toegang krijgen tot de NPU op een Copilot+ pc
  • ONNX Runtime gebruiken om programmatisch toegang te krijgen tot de NPU op een Copilot+ pc
  • Prestaties meten van AI-modellen die lokaal worden uitgevoerd op de NPU van het apparaat

Voorwaarden

Deze richtlijnen zijn specifiek voor Copilot+ pc's.

Veel van de nieuwe Windows AI-functies vereisen een NPU met de mogelijkheid om 40+ TOPS uit te voeren, waaronder maar niet beperkt tot:

Wat is de Arm-gebaseerde Snapdragon Elite X-chip?

De nieuwe Snapdragon X Elite Arm-chip, gebouwd door Qualcomm, benadrukt AI-integratie via zijn toonaangevende Neural Processing Unit (NPU). Deze NPU kan grote hoeveelheden gegevens parallel verwerken en miljarden bewerkingen per seconde uitvoeren, waarbij energie op AI-taken efficiënter wordt gebruikt dan een CPU of GPU, wat resulteert in een langere levensduur van de batterij van het apparaat. De NPU werkt in overeenstemming met de CPU en GPU. Windows 11 wijst verwerkingstaken toe aan de meest geschikte plaats om snelle en efficiënte prestaties te leveren. De NPU maakt intelligente AI-ervaringen op apparaat mogelijk met beveiliging op bedrijfsniveau voor verbeterde beveiliging van chip naar cloud.

  • Meer informatie over de HetVak x Elite.
  • Meer informatie over het gebruik en ontwikkelen voor Windows op Arm.

Unieke AI-functies die worden ondersteund door Copilot+ pc's met een NPU

Copilot+ pc's bieden unieke AI-ervaringen die worden geleverd met moderne versies van Windows 11. Deze AI-functies, ontworpen om te worden uitgevoerd op de NPU van het apparaat, worden verzonden in de nieuwste versies van Windows en zijn beschikbaar via API's in de Windows Copilot Runtime-. Meer informatie over Windows Runtime Copilot API's die worden ondersteund door modellen die zijn geoptimaliseerd voor uitvoering (inferentie) op de NPU. Deze API's worden verzonden in een toekomstige release van de Windows App SDK.

Toegang krijgen tot de NPU op een Copilot+ pc

De NPU (Neural Processing Unit) is een nieuwe hardwareresource. Net als andere hardwarebronnen op een pc moet de NPU software specifiek worden geprogrammeerd om te profiteren van de voordelen die het biedt. NPU's zijn speciaal ontworpen om de deep learning-wiskundige bewerkingen uit te voeren waaruit AI-modellen bestaan.

De hierboven genoemde Windows 11-Copilot+ AI-functies zijn speciaal ontworpen om te profiteren van de NPU. Gebruikers krijgen een verbeterde levensduur van de batterij en snellere uitvoeringstijd voor AI-modellen die gericht zijn op de NPU. Windows 11-ondersteuning voor NPU's bevat Arm-apparaten, evenals Intel- en AMD-apparaten (binnenkort beschikbaar).

Voor apparaten met NPU's kan de Taakbeheer- nu worden gebruikt om het NPU-resourcegebruik weer te geven.

Schermopname van Windows Taakbeheer met NPU-prestaties naast CPU, GPU, Geheugen, Ethernet en Schijf

De aanbevolen manier om AI-taken uit te voeren op de NPU van het apparaat is door gebruik te maken van ONNX Runtime. ONNX Runtime is een flexibele en krachtige stack om te programmeren op basis van de NPU, evenals de GPU en CPU, zodat u uw eigen AI-modellen kunt gebruiken of open source AI-modellen kunt gebruiken die op internet zijn gevonden. Meer informatie over het gebruik van ONNX Runtime voor toegang tot de onderstaande NPU of meer informatie over het gebruik van Machine Learning-modellen in uw Windows-app.

Notitie

Hoe zit het met het gebruik van andere runtimes voor PyTorch of Tensorflow? Andere runtimes voor PyTorch, Tensorflow en andere door de leverancier geleverde SDK-typen van Silicon worden ook ondersteund in Windows. Op dit moment kunt u PyTorch-, TensorFlow- en andere modeltypen uitvoeren door deze te converteren naar de flexibele ONNX-indeling, maar de systeemeigen ondersteuning is binnenkort beschikbaar.

ONNX Runtime gebruiken om programmatisch toegang te krijgen tot de NPU op een Copilot+ pc

Microsoft biedt een volledig opensourcedeductie- en trainingsframework met de naam ONNX Runtime. ONNX Runtime is de aanbevolen open source Microsoft-oplossing om AI-modellen uit te voeren op een NPU. Omdat ONNX Runtime flexibel is en veel verschillende opties ondersteunt om AI-modellen uit te voeren, kunnen de keuzes verwarrend zijn. Deze handleiding helpt u bij het selecteren van opties die specifiek zijn voor Windows Copilot+ pc's.

  • nl-NL: Qualcomm Snapdragon X: momenteel moeten ontwikkelaars zich richten op de Qualcomm QNN Execution Provider (EP), die gebruikmaakt van de Qualcomm AI Engine Direct SDK (QNN). vooraf gebouwde pakketten met QNN-ondersteuning zijn beschikbaar om te downloaden. Dit is dezelfde stack die momenteel wordt gebruikt door de Windows Copilot Runtime en ervaringen op Copilot+ PC Qualcomm-apparaten. DirectML- en WebNN-ondersteuning voor De NpU's van De X Elite Van DenN is aangekondigd op build 2024 en is binnenkort beschikbaar.
  • Intel- en AMD NPU-apparaten: extra NPU-apparaten zijn later in 2024 beschikbaar. DirectML- is de aanbevolen methode om deze apparaten te richten.

Ondersteunde modelindelingen

AI-modellen worden vaak getraind en beschikbaar in grotere gegevensindelingen, zoals FP32. Veel NPU-apparaten ondersteunen echter alleen gehele getallen in lagere bitindeling, zoals INT8, voor verbeterde prestaties en energie-efficiëntie. Daarom moeten AI-modellen worden geconverteerd (of 'gekwantiseerd') om te worden uitgevoerd op de NPU. Er zijn veel modellen beschikbaar die al zijn geconverteerd naar een kant-en-klaar formaat. U kunt ook uw eigen model (BYOM) meenemen om te converteren of te optimaliseren.

  • Qualcomm AI Hub (Compute): Qualcomm levert AI-modellen die al zijn gevalideerd voor gebruik op Copilot+ pc's met Snapdragon X Elite, met de beschikbare modellen die speciaal zijn geoptimaliseerd om efficiënt te worden uitgevoerd op deze NPU. Meer informatie: Modelimplementatie versnellen met de Qualcomm AI Hub | Microsoft Build 2024.
  • ONNX Model Zoo: deze opensource-opslagplaats biedt een gecureerde verzameling vooraf getrainde, state-of-the-art modellen in de ONNX-indeling. Deze modellen worden aanbevolen voor gebruik met NPU's op alle Copilot+ pc's, waaronder Intel- en AMD-apparaten (binnenkort beschikbaar).

Voor degenen die uw eigen model willen meenemen, raden we u aan om het hardwarebewuste hulpprogramma voor modeloptimalisatie te gebruiken, Olive. Olive kan helpen met modelcompressie, optimalisatie en compilatie om te werken met ONNX Runtime als een NPU-oplossing voor prestatieoptimalisatie. Meer informatie: AI eenvoudiger gemaakt: hoe de ONNX Runtime en Olive-toolchain u helpt Q&A | Build 2023.

Prestaties meten van AI-modellen die lokaal worden uitgevoerd op de NPU van het apparaat

De prestaties van ai-functieintegratie in uw app en de bijbehorende AI-modelruntimes meten:

  • Een tracering opnemen: Apparaatactiviteit opnemen gedurende een bepaalde periode wordt systeemtracering genoemd. Systeemtracering produceert een traceringsbestand dat kan worden gebruikt om een rapport te genereren en u te helpen identificeren hoe u de prestaties van uw app kunt verbeteren. Meer informatie: Een systeemtracering vastleggen om het geheugengebruik te analyseren.

  • NPU-gebruik weergeven: Controleer welke processen de NPU en de callstacks gebruiken die werk indienen.

  • Bekijk werk en callstacks op de CPU: Onderzoek de resultaten van de AI-modellen voor pre-work-invoer en AI-modellen voor na-werkverwerking.

  • Load en Runtime: Onderzoek de tijdsduur voor het laden van een AI-model en maak een ONNX Runtime-sessie.

  • Runtime-parameters: Bekijk de parameters voor de ONNX Runtime-configuratie en uitvoeringsondersteuning (EP) die van invloed zijn op de prestaties en optimalisatie van de modelruntime.

  • Afzonderlijke inferentietijden: Inferentietijden en subdetails van de NPU bijhouden.

  • Profiler: Bewerkingen van ai-modellen profieleer om te zien hoe lang elke operator nodig had om bij te dragen aan de totale inferentietijd.

  • NPU-specifieke: Onderzoek NPU-subdetails zoals sub-HW-metrieken, geheugenbandbreedte en meer.

Schermopname met een algemene indruk van het hulpprogramma Windows Performance Analyzer

Als u deze metingen wilt uitvoeren, raden we de volgende diagnostische hulpprogramma's en traceringshulpprogramma's aan:

  • Taakbeheer: hiermee kan een gebruiker de prestaties bekijken van het Windows-besturingssysteem dat op hun apparaat is geïnstalleerd, waaronder Processen, Prestaties, App-geschiedenis, Opstart-apps, Gebruikers, Details en Services. Realtime prestatiegegevens worden weergegeven voor de CPU, geheugen, opslagschijf, Wi-Fi, GPU... en nu NPU. Gegevens omvatten het percentage gebruik, beschikbaar geheugen, gedeeld geheugen, stuurprogrammaversie, fysieke locatie en meer.
  • Windows Performance Recorder (WPR): WPR wordt nu geleverd met een neurale verwerkingsprofiel om NPU-activiteit vast te leggen. Dit registreert Microsoft Compute Driver Model (MCDM) interacties met de NPU. Ontwikkelaars kunnen nu het NPU-gebruik zien, welke processen gebruikmaken van de NPU en de callstacks die werk indienen.
  • Windows Performance Analyzer (WPA): WPA maakt grafieken en gegevenstabellen van ETW-gebeurtenissen (Event Tracing for Windows) die worden vastgelegd door Windows Performance Recorder (WPR), Xperf of een evaluatie die wordt uitgevoerd in het Assessment Platform. Het biedt handige toegangspunten voor het analyseren van de CPU, schijf, netwerk, ONNX Runtime-gebeurtenissen... en een nieuwe tabel voor NPU-analyse, allemaal in één tijdlijn. WPA kan nu het werk en de callstacks op de CPU bekijken die betrekking hebben op het voorbereiden van ai-modellen en de verwerking van resultaten na het ai-modellenwerk. Windows Performance Analyzer downloaden uit de Microsoft Store.
  • GPUView-: GPUView is een ontwikkelhulpprogramma waarmee vastgelegde video- en kernelgebeurtenissen worden gelezen uit een gebeurtenistraceringslogboekbestand (.etl) en de gegevens grafisch aan de gebruiker worden gepresenteerd. Dit hulpprogramma bevat nu zowel GPU- als NPU-bewerkingen, evenals ondersteuning voor het weergeven van DirectX-gebeurtenissen voor MCDM-apparaten zoals de NPU.
  • ONNX Runtime-gebeurtenissen in Windows Performance Analyzer: vanaf ONNXRuntime 1.17 (en uitgebreid in 1.18.1) zijn de volgende use cases beschikbaar met gebeurtenissen die in de runtime worden verzonden:
    • Bekijk hoe lang het duurde om een AI-model te laden en een ONNX Runtime-sessie te maken.
    • Zie de ONNX Runtime-configuratie en Uitvoeringsprovider (EP) parameters die de prestaties en optimalisatie van de modelruntime beïnvloeden.
    • Volg de inferentietijden per stuk en de subdetails van de NPU (QNN).
    • Maak profiel van AI Model-bewerkingen om te zien hoeveel tijd elke operator heeft genomen om bij te dragen aan de totale inferentietijd.
    • Meer informatie over ONNX Runtime Execution Provider (EP) Profilering.

Notitie

WPR UI (de gebruikersinterface die beschikbaar is ter ondersteuning van de opdrachtregel gebaseerde WPR opgenomen in Windows), WPA en GPUView maken allemaal deel uit van Windows Performance Toolkit (WPT), versie 2024+. Als u de WPT wilt gebruiken, moet u: De Windows ADK Toolkit downloaden.

Volg deze stappen voor een snelle start voor het bekijken van ONNX Runtime-gebeurtenissen met WPA (Windows Performance Analyzer):

  1. Download ort.wprp en etw_provider.wprp.

  2. Open de opdrachtregel en voer het volgende in:

    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. Combineer de WPR-profielen (Windows Performance Recorder) met andere ingebouwde opnameprofielen zoals CPU, Schijf, enzovoort.

  4. Download Windows Performance Analyzer (WPA) uit de Microsoft Store.

  5. Open het bestand onnx_NPU.etl in WPA. Double-Click om deze grafieken te openen:

    • "Neurale verwerking -> NPU-gebruik
    • Algemene gebeurtenissen voor ONNX-gebeurtenissen

Aanvullende hulpprogramma's voor het meten van prestaties die u kunt overwegen met de microsoft Windows-hulpprogramma's die hierboven worden vermeld, zijn onder andere:

Aanvullende bronnen