Entwicklung von KI-Anwendungen für Copilot+ PCs

Copilot+-PCs sind eine neue Klasse von Windows 11-Hardware, die von einer leistungsstarken neuronalen Verarbeitungseinheit (NPU) unterstützt wird – einem speziellen Computerchip für KI-intensive Prozesse wie Echtzeitübersetzungen und Bildgenerierung – die mehr als 40 Billionen Vorgänge pro Sekunde (TOPS) ausführen kann. Copilot+ PCs bieten ganztägige Akkulaufzeit und Zugriff auf die fortschrittlichsten KI-Features und -Modelle.

Weitere Informationen:

Die folgenden Hinweise für Copilot+ PC-Entwickler behandeln folgende Themen:

  • Gerätevoraussetzungen
  • Was ist der ARM-basierte Chip Snapdragon Elite X+?
  • Einzigartige KI-Features, die von Copilot+-PCs mit einem NPU-Prozessor unterstützt werden
  • So greifen Sie auf die NPU auf einem Copilot+-PC zu
  • So verwenden Sie ONNX Runtime für den programmgesteuerten Zugriff auf die NPU auf einem Copilot+-PC
  • So messen Sie die Leistung von KI-Modellen, die lokal auf der NPU des Geräts ausgeführt werden

Voraussetzungen

Dieser Leitfaden ist spezifisch für Copilot+-PCs.

Viele der neuen Windows-AI-Funktionen erfordern eine NPU mit der Fähigkeit, bei über 40 TOPS zu arbeiten, unter anderem:

Surface Copilot+ PCs für Unternehmen:

Was ist der ARM-basierte Chip Snapdragon Elite X?

Der neue Snapdragon X Elite Arm-basierte Chip von Qualcomm betont die KI-Integration durch seine Neural Processing Unit (NPU). Diese NPU ist in der Lage, große Datenmengen parallel zu verarbeiten, wodurch Billionen von Vorgängen pro Sekunde ausgeführt werden, wobei Leistung für KI-Aufgaben effizienter als bei einer CPU oder GPU genutzt wird, was zu einer längeren Akkulaufzeit des Geräts führt. Die NPU arbeitet in Übereinstimmung mit der CPU und GPU. Windows 11 weist Verarbeitungsaufgaben dem am besten geeigneten Ort zu, um schnelle und effiziente Leistung zu erzielen. Die NPU ermöglicht geräteinterne KI-Erfahrungen, einschließlich Windows Copilot+ PC-Funktionen.

Einzigartige KI-Features, die von Copilot+-PCs mit einer NPU unterstützt werden

Copilot+-PCs bieten einzigartige KI-Erlebnisse, die mit modernen Versionen von Windows 11 ausgeliefert werden. Diese KI-Features, die für die Ausführung auf dem Gerät NPU entwickelt wurden, werden in den neuesten Versionen von Windows ausgeliefert und über APIs in Microsoft Foundry unter Windows verfügbar sein. Erfahren Sie mehr über Microsoft Foundry unter Windows-APIs , die von Modellen unterstützt werden, die für die Ausführung (Inference) auf der NPU optimiert sind. Diese APIs werden in einer bevorstehenden Version des Windows App SDKausgeliefert.

So greifen Sie auf einem Copilot+-PC auf die NPU zu

Die neuronale Verarbeitungseinheit (NPU) ist eine neue Hardwareressource. Wie andere Hardwareressourcen auf einem PC muss die NPU-Software speziell programmiert werden, damit die Vorteile genutzt werden können, die sie bietet. NPUs wurden speziell für die Ausführung der mathematischen Deep Learning-Vorgänge entwickelt, aus denen KI-Modelle bestehen.

Die oben genannten KI-Features von Windows 11 Copilot+ wurden speziell für die Nutzung der NPU entwickelt. Benutzer erhalten eine verbesserte Akkulaufzeit und eine schnellere Rückschlusszeit für KI-Modelle, die auf die NPU abzielen. Windows 11-Unterstützung für NPUs umfasst ARM-basierte Qualcomm-Geräte sowie Intel- und AMD-Geräte (in Kürze verfügbar).

Für Geräte mit NPUs kann der Task-Manager jetzt zum Anzeigen der NPU-Ressourcenverwendung verwendet werden.

Screenshot des Windows-Task Managers, auf dem die NPU-Leistung, CPU, GPU, Arbeitsspeicher, Ethernet und Datenträger angezeigt werden.

Die empfohlene Methode zum Ableiten (Ausführen von KI-Aufgaben) auf dem Gerät NPU ist die Verwendung von Windows ML.

Wie man programmatisch auf die NPU eines Copilot+ PCs zugreift, um KI zu beschleunigen

Die empfohlene Methode für den programmgesteuerten Zugriff auf die NPU (Neural Processing Unit) und gpu for AI acceleration hat sich von DirectML zu Windows ML (WinML) verschoben. Dieser Übergang spiegelt einen umfassenderen Aufwand wider, um die Entwicklerumgebung für KI-Workloads auf Windows-Geräten zu vereinfachen und zu optimieren. Hier finden Sie aktualisierte Anleitungen: Erfahren Sie, wie Windows Machine Learning (ML) Ihre Windows-Apps bei der lokalen Ausführung von KI-Modellen unterstützt.

  • Integrierte EP-Ermittlung: Bisher mussten Entwickler wissen, welche Ausführungsanbieter (EPs) mit ihrer Hardware kompatibel waren und diese EPs mit ihren Anwendungen bündeln. Dies führte häufig zu größeren Anwendungsgrößen und einer erhöhten Komplexität bei der Verwaltung von Abhängigkeiten. Mit Windows ML wird der Prozess jetzt automatisiert und optimiert. Windows ML erkennt automatisch die verfügbare Hardware auf dem Gerät und lädt die entsprechenden EPs nach Bedarf herunter. Dies bedeutet, dass Entwickler bestimmte EPs nicht mehr mit ihren Anwendungen bündeln müssen, was zu kleineren Anwendungsgrößen und geringerer Komplexität führt.

  • Integrierte EP-Übermittlung: Die erforderlichen EPs, z. B. QNNExecutionProvider oder Intels OpenVINO EP, werden jetzt mit Windows gebündelt oder über Windows Update bereitgestellt, ohne dass manuelle Downloads erforderlich sind.

  • ORT unter der Haube: Windows ML verwendet weiterhin ONNX-Runtime als Schlussfolgerungsmodul, abstrahiert aber die Komplexität der EP-Verwaltung. ONNX Runtime ist ein Open Source-Rückschluss- und Schulungsmodul für KI-Modelle im ONNX-Format und ermöglicht Entwicklern das Erstellen von KI-Anwendungen, die effizient auf einer Vielzahl von Geräten ausgeführt werden können.

  • Zusammenarbeit mit Hardwareanbietern: Microsoft arbeitet direkt mit Hardwareanbietern wie Qualcomm und Intel zusammen, um die EP-Kompatibilität mit frühen Treiberversionen und neuem Silizium (z. B. Snapdragon X Elite, Intel Core Ultra usw.) sicherzustellen.

Wenn Sie ein KI-Modell mit Windows ML auf einem Copilot+ PC bereitstellen:

  • Windows ML fragt das System nach verfügbaren Hardwarebeschleunigern ab.
  • Es wählt die leistungsfähigste EP (z. B. QNN für Qualcomm NPUs, OpenVINO für Intel NPUs).
  • Das EP wird automatisch geladen, und das Inferenzverfahren beginnt.
  • Wenn die bevorzugte EP fehlschlägt oder nicht verfügbar ist, greift Windows ML ordnungsgemäß auf eine andere zurück (z. B. mithilfe der GPU oder CPU).

Dies bedeutet, dass Entwickler sich auf die Erstellung von KI-Erfahrungen konzentrieren können, ohne sich Gedanken über die Hardwareintegration auf niedriger Ebene machen zu müssen

Unterstützte Modellformate

KI-Modelle werden häufig trainiert und sind in größeren Datenformaten verfügbar, z. B. FP32. Viele NPU-Geräte unterstützen jedoch nur Ganzzahl-Mathematik in niedrigeren Bit-Formaten wie INT8, um die Leistung und Energieeffizienz zu erhöhen. Daher müssen KI-Modelle konvertiert (oder quantisiert) werden, um auf der NPU ausgeführt zu werden. Es gibt viele Modelle, die bereits in ein einsatzbereites Format konvertiert wurden. Sie können auch Ihr eigenes Modell (BYOM) zum Konvertieren oder Optimieren verwenden.

  • Qualcomm AI Hub (Compute): Qualcomm stellt KI-Modelle bereit, die bereits validiert wurden und auf PCs mit Snapdragon X Elite verwendet werden können. Diese Modelle wurden speziell optimiert, um effizient auf dieser NPU zu laufen. Weitere Informationen: Beschleunigen der Modellbereitstellung mit Qualcomm AI Hub | Microsoft Build 2024.
  • ONNX Model Zoo: Dieses Open-Source-Repository bietet eine kuratierte Sammlung vordefinierter, modernster Modelle im ONNX-Format. Diese Modelle werden für die Verwendung mit NPUs auf allen Copilot+-PCs empfohlen, einschließlich Intel- und AMD-Geräten (in Kürze verfügbar).

Für diejenigen, die Ihr eigenes Modell verwenden möchten, empfehlen wir die Verwendung des hardwarefähigen Modelloptimierungstools Olive. Olive kann bei der Modellkomprimierung, Optimierung und Kompilierung helfen, um mit der ONNX Runtime als NPU-Leistungsoptimierungslösung zu arbeiten. Weitere Informationen: KI leicht gemacht: Wie die ONNX Runtime und die Olive-Toolchain Ihnen helfen, Q&A | Build 2023.

So messen Sie die Leistung von KI-Modellen, die lokal auf der NPU des Geräts laufen

So messen Sie die Leistung der KI-Featureintegration in Ihrer App und die zugehörigen AI-Modelllaufzeiten:

  • Ablaufverfolgung aufzeichnen: Die Aufzeichnung von Geräteaktivität über einen bestimmten Zeitraum wird als Systemablaufverfolgung bezeichnet. Die Systemablaufverfolgung erzeugt eine „Trace“-Datei, mit der ein Bericht erstellt werden kann und die Ihnen dabei hilft, herauszufinden, wie Sie die Leistung Ihrer App verbessern können. Weitere Informationen: Erfassen einer Systemablaufverfolgung zur Analyse der Speicherauslastung.

  • NPU-Auslastung anzeigen: Prüfen Sie, welche Prozesse die NPU verwenden und welche Callstacks Workloads übermitteln.

  • Anzeigen von Arbeits- und Aufrufstapeln in der CPU: Untersuchen Sie die Ergebnisse der Vorarbeit, die KI-Modelle speist, und der Nacharbeit, die KI-Modelle verarbeitet.

  • Laden und Laufzeit: Untersuchen Sie die Dauer des Ladens eines KI-Modells, und erstellen Sie eine ONNX-Runtime-Sitzung.

  • Laufzeitparameter: Untersuchen Sie die Konfigurations- und Ausführungsanbieterparameter (EP) der ONNX Runtime, die sich auf die Leistung und Optimierung der Modelllaufzeit auswirken.

  • Individuelle Inferenzzeiten: Verfolgen Sie die Zeiten und Detailinformationen für jede Inferenz von der NPU.

  • Profiler: Erstellen Sie Profile für die Operationen des KI-Modells, um zu sehen, wie lange jeder Operator zur Gesamt-Rückschlusszeit beigetragen hat.

  • NPU-spezifisch: Untersuchen Sie NPU-Unterdetails wie Metriken von Unterhardware, Speicherbandbreite und weitere Informationen.

Screenshot mit einem allgemeinen Überblick über das Tool „Windows Leistungsanalyse“.

Um diese Messungen durchzuführen, empfehlen wir die folgenden Tools zur Diagnose und Ablaufverfolgung:

  • Task-Manager: Ermöglicht einem Benutzer, die Leistung des auf seinem Gerät installierten Windows-Betriebssystems zu überprüfen, einschließlich Prozessen, Leistung, App-Verlauf, Start-Apps, Benutzern, Details und Diensten. Leistungsdaten in Echtzeit werden für Ihre Geräte-CPU, Ihren Arbeitsspeicher, Ihren Speicherdatenträger, Ihr WLAN, Ihre GPU und jetzt auch für Ihre NPU angezeigt. Daten umfassen den Prozentsatz der Auslastung, den verfügbaren Arbeitsspeicher, den gemeinsam genutzten Speicher, die Treiberversion, den physischen Speicherort und vieles mehr.
  • Windows Performance Recorder (WPR):WPR ist jetzt mit einem neuronalen Verarbeitungsprofil ausgestattet, um NPU-Aktivitäten aufzuzeichnen. Dadurch werden Microsoft Compute Driver Model (MCDM)-Interaktionen mit der NPU aufgezeichnet. Entwickler können jetzt die NPU-Auslastung sehen, welche Prozesse die NPU nutzen und welche Aufrufstapel Aufträge an sie übermitteln.
  • Windows Leistungsanalyse (WPA):WPA erstellt Diagramme und Datentabellen von Ereignissen der Ereignisverfolgung für Windows (ETW), die von Windows Performance Recorder (WPR), Xperf oder einer Bewertung, die in der Bewertungsplattform ausgeführt wird, aufgezeichnet wurden. Es bietet bequeme Zugriffspunkte für die Analyse der CPU-, Datenträger-, Netzwerk-, ONNX-Runtime-Ereignisse... und eine neue Tabelle für die NPU-Analyse – alles in einer einzigen Zeitachse. In WPA können jetzt die CPU-bezogenen Arbeitsvorgänge und Aufrufstapel angezeigt werden, die mit der Vorverarbeitung für die Einspeisung in KI-Modelle und der Nachverarbeitung von KI-Modellergebnissen zusammenhängen. Laden Sie Windows Leistungsanalyse aus dem Microsoft Store herunter.
  • GPUView: GPUView ist ein Entwicklungstool, das protokollierte Video- und Kernelereignisse aus einer Ereignisablaufprotokolldatei (.etl) lesen und die Daten grafisch darstellen kann. Dieses Tool enthält jetzt sowohl GPU- als auch NPU-Vorgänge sowie Unterstützung für das Anzeigen von DirectX-Ereignissen für MCDM-Geräte wie die NPU.
  • ONNX-Runtime-Ereignisse in Windows Leistungsanalyse: Ab ONNXRuntime 1.17 (und verbessert in 1.18.1) stehen die folgenden Anwendungsfälle mit Ereignissen zur Verfügung, die in der Laufzeit ausgegeben werden:
    • Erfahren Sie, wie lange es dauerte, ein KI-Modell zu laden und eine ONNX-Runtime-Sitzung zu erstellen.
    • Untersuchen Sie die Konfigurations- und Ausführungsanbieterparameter (EP) der ONNX Runtime, die sich auf die Leistung und Optimierung der Modelllaufzeit auswirken.
    • Inferenzzeiten und Details für jede Inferenz von der NPU (QNN) nachverfolgen.
    • Analysieren Sie die Operationen des KI-Modells, um zu sehen, wie viel Zeit jeder Operator zur gesamten Inferenzzeit beigetragen hat.
    • Weitere Informationen zur Profilerstellung für Ausführungsanbieter (Execution Provider, EP) in ONNX Runtime.

Hinweis

Die WPR-Benutzeroberfläche (die Benutzeroberfläche zur Unterstützung des befehlszeilenbasierten WPR, die in Windows enthalten ist), WPA und GPUView sind alle Teil des Windows Performance Toolkits (WPT) ab der Version Mai 2024. Um das WPT zu verwenden, müssen Sie das Windows ADK Toolkit herunterladen.

Eine Schnellstartanleitung zum Anzeigen von ONNX Runtime-Ereignissen mit dem Windows Leistungsanalyse (WPA) finden Sie hier:

  1. Laden Sie ort.wprp und etw_provider.wprp herunter.

  2. Öffnen Sie die Befehlszeile, und geben Sie Folgendes ein:

    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. Kombinieren Sie die Windows Performance Recorder (WPR)-Profile mit anderen integrierten Aufzeichnungsprofilen wie CPU, Datenträger usw.

  4. Laden Sie Windows Leistungsanalyse (WPA) aus dem Microsoft Store herunter.

  5. Öffnen Sie die Datei onnx_NPU.etl in WPA. Doppelklicken Sie, um die folgenden Diagramme zu öffnen:

    • Neuronale Verarbeitung –> NPU-Auslastung
    • Generische Ereignisse für ONNX-Ereignisse

Weitere Tools zur Leistungsmessung, die Sie mit den oben aufgeführten Microsoft Windows-Tools in Betracht ziehen sollten, sind:

  • Qualcomm Snapdragon Profiler (qprof): Ein GUI- und systemweites Leistungsprofiling-Tool, das entworfen wurde, um die Systemleistung zu visualisieren und Optimierungs- sowie Verbesserungsmöglichkeiten für die Anwendungsskalierung über Qualcomm SoC CPUs, GPUs, DSPs und andere IP-Blöcke zu identifizieren. Der Snapdragon Profiler ermöglicht das Anzeigen von NPU-Unterdetails wie Metriken für Unterhardware, Speicherbandbreite und mehr.

Zusätzliche Ressourcen