Copilot+ Guide du développeur PC
Copilot+ PC sont une nouvelle catégorie de matériel Windows 11 équipé d'une unité de traitement neuronal (NPU) haute performance - une puce informatique spécialisée pour les processus intensifs d'intelligence artificielle tels que les traductions en temps réel et la génération d'images - qui peut effectuer plus de 40 billions d'opérations par seconde (TOPS). Copilot+ PC offrent une autonomie de batterie d'une journée et un accès aux fonctions et modèles d'IA les plus avancés. Pour en savoir plus, consultez Introducing Copilot+ PCs - The Official Microsoft Blog.
Le Copilot+ PC Developer Guidance suivant couvre :
- Conditions préalables pour les appareils
- Qu'est-ce que la puce Snapdragon Elite X+ basée sur la technologie Arm ?
- Fonctionnalités d'IA uniques prises en charge par Copilot+ PC équipés d'un processeur NPU
- Comment accéder au NPU sur un Copilot+ PC
- Comment utiliser ONNX Runtime pour accéder de manière programmatique au NPU sur un Copilot+ PC
- Comment mesurer la performance des modèles d'intelligence artificielle fonctionnant localement sur la NPU de l'appareil ?
Prérequis
Ces conseils sont spécifiques aux CopilotPC + .
Un grand nombre des nouvelles fonctionnalités de Windows AI nécessitent une NPU capable d'exécuter plus de 40 TOPS, y compris mais sans s'y limiter :
- Dispositifs Qualcomm Snapdragon X Elite basés sur le processeur armé
- Appareils Intel Lunar Lake -- Bientôt disponible
- Appareils AMD STRIX (Ryzen AI 9) - Bientôt disponible
Qu'est-ce que la puce Snapdragon Elite X basée sur la technologie Arm ?
La nouvelle puce Snapdragon X Elite de Qualcomm, basée sur la technologie Arm, met l'accent sur l'intégration de l'IA grâce à son unité de traitement neuronal (NPU) de pointe. Ce NPU est capable de traiter de grandes quantités de données en parallèle, en effectuant des trillions d'opérations par seconde, en utilisant l'énergie pour les tâches d'intelligence artificielle plus efficacement qu'un CPU ou un GPU, ce qui se traduit par une plus longue durée de vie de la batterie de l'appareil. La NPU travaille en alignement avec le CPU et le GPU. Windows 11 assigne les tâches de traitement à l'endroit le plus approprié afin de fournir des performances rapides et efficaces. Le NPU permet des expériences intelligentes d'IA sur l'appareil avec une sécurité de niveau entreprise pour une protection renforcée de la puce au nuage.
- En savoir plus sur le Qualcomm Snapdragon X Elite.
- En savoir plus sur l'utilisation et le développement pour Windows on Arm.
Fonctionnalités d'IA uniques prises en charge par Copilot+ PC avec NPU
Copilot+ Les PC offrent des expériences uniques en matière d'IA et sont livrés avec des versions modernes de Windows 11. Ces fonctions d’IA, conçues pour fonctionner sur le NPU de l'appareil, sont notamment les suivantes :
Effets Windows Studio : un ensemble d'effets d'intelligence artificielle accélérés par le NPU de Microsoft, notamment Creative Filter, flou d'arrière-plan, Contact visuel, Auto cadre, Voice Focus. Les développeurs peuvent également ajouter des boutons à leur application pour des contrôles au niveau du système. Liste des améliorations apportées à l'IA par Windows Studio Effects..
Rappel : l'API UserActivity soutenue par l'IA qui permet aux utilisateurs de rechercher des interactions passées à l'aide du langage naturel et de reprendre là où ils se sont arrêtés. Disponible pour Copilot+ PC via le programme Windows Insider (WIP). En savoir plus : Retracez vos pas avec Recall
Phi Silica : Le modèle Phi Small Language Model (SLM) qui permet à votre application de se connecter au modèle sur l'appareil pour effectuer des tâches de traitement du langage naturel (chat, mathématiques, code, raisonnement) à l'aide du SDK d’application Windows.
Reconnaissance de texte : L'API de reconnaissance optique de caractères (OCR) qui permet l'extraction de texte à partir d'images et de documents. Imaginez des tâches telles que la conversion d’un PDF, d’un document papier ou d’une image d’un tableau blanc de salle de classe en texte numérique modifiable.
Cocreator avec Paint une nouvelle fonctionnalité de Microsoft Paint qui transforme les images en AI Art.
Super Résolution : une technologie d'IA de pointe qui utilise le NPU pour accélérer l'exécution des jeux et leur donner un meilleur aspect.
*Il se peut que toutes les fonctionnalités ne soient pas initialement disponibles sur tous les Copilot+ PC.
Important
Les modèles d'IA livrés dans les dernières versions de Windows seront disponibles via des API dans le Windows Copilot Runtime annoncé lors de la Build 2024. Les API pour les nouvelles fonctionnalités d’IA, telles que Phi Silica, sont prises en charge par les modèles optimisés pour s’exécuter (inférence) sur le NPU et seront fournies dans une prochaine version du SDK d’application Windows.
Comment accéder au NPU sur un Copilot+ PC
L'unité de traitement neural (NPU) est une nouvelle ressource matérielle. Comme d'autres ressources matérielles d'un PC, la NPU a besoin d'un logiciel spécifiquement programmé pour tirer parti des avantages qu'elle offre. Les NPU sont conçues spécifiquement pour exécuter les opérations mathématiques d'apprentissage profond qui composent les modèles d'IA.
Les fonctionnalités de Windows 11 Copilot+ AI mentionnées ci-dessus ont été spécifiquement conçues pour tirer parti du NPU. Les utilisateurs bénéficieront d'une meilleure autonomie de la batterie et d'un temps d'exécution des inférences plus rapide pour les modèles d'IA qui ciblent le NPU. La prise en charge des NPU par Windows 11 inclura les appareils Qualcomm basés sur Arm, ainsi que les appareils Intel et AMD (à venir).
Pour les appareils équipés de NPU, le gestionnaire de tâches peut désormais être utilisé pour visualiser l'utilisation des ressources NPU.
La façon recommandée d'inférer (exécuter des tâches d'IA) sur le NPU est d'utiliser ONNX Runtime. ONNX Runtime est une pile flexible et performante pour programmer contre le NPU, ainsi que le GPU et le CPU, vous permettant d'apporter vos propres modèles d'IA ou d'utiliser des modèles d'IA open source trouvés sur le web. Apprenez-en plus sur l'utilisation d'ONNX Runtime pour accéder au NPU ci-dessous, ou apprenez-en plus sur l'utilisation de modèles Machine Learning dans votre application Windows.
Remarque
Qu'en est-il de l'utilisation d'autres Runtimes pour PyTorch ou Tensorflow ? D'autres runtimes pour PyTorch, Tensorflow et d'autres types de SDK fournis par les fournisseurs de silicium sont également pris en charge sous Windows. Actuellement, vous pouvez exécuter PyTorch, TensorFlow et d'autres types de modèles en les convertissant au format ONNX flexible, mais le support natif sera bientôt disponible.
Comment utiliser ONNX Runtime pour accéder de manière programmatique au NPU sur un Copilot+ PC
Microsoft propose un cadre complet d'inférence et de formation open source appelé ONNX Runtime. ONNX Runtime est la solution open source recommandée par Microsoft pour exécuter des modèles d'IA sur une NPU. Comme ONNX Runtime est flexible et supporte un grand nombre d'options différentes pour exécuter des modèles d'IA, les choix peuvent être déroutants. Ce guide vous aidera à faire des choix spécifiques aux Windows Copilot+ PCs.
- Qualcomm Snapdragon X : actuellement, les développeurs doivent cibler le fournisseur d'exécution Qualcomm QNN (EP), qui utilise le SDK Qualcomm Ingénieurs IA Direct (QNN). Des paquets pré-construits avec le support QNN sont disponibles au téléchargement. Il s'agit de la même pile que celle actuellement utilisée par Windows Copilot Runtime et les expériences sur les périphériques Qualcomm Copilot+ PC. La prise en charge de DirectML et WebNN pour les NPU Qualcomm Snapdragon X Elite a été annoncée lors de la Build 2024 et sera bientôt disponible.
- Dispositifs NPU Intel et AMD : D'autres dispositifs NPU seront disponibles plus tard en 2024. DirectML est la méthode recommandée pour cibler ces appareils.
Formats de modèles pris en charge
Les modèles d'IA sont souvent formés et disponibles dans des formats de données plus importants, tels que FP32. Cependant, de nombreux dispositifs NPU ne prennent en charge que les calculs sur les entiers dans un format de bits inférieur, tel que INT8, pour améliorer les performances et l'efficacité énergétique. Par conséquent, les modèles d'IA doivent être convertis (ou "quantifiés") pour fonctionner sur le NPU. Il existe de nombreux modèles déjà convertis dans un format prêt à l'emploi. Vous pouvez également apporter votre propre modèle (BYOM) pour le convertir ou l'optimiser.
- Qualcomm AI Hub (Compute) : Qualcomm fournit des modèles d'IA qui ont déjà été validés pour une utilisation sur des PC Copilot+ avec Snapdragon X Elite, les modèles disponibles étant spécifiquement optimisés pour fonctionner efficacement sur ce NPU. En savoir plus : Accélérer le déploiement des modèles avec Qualcomm AI Hub | Microsoft Build 2024.
- Zoo de modèles ONNX : Ce référentiel open source propose une collection de modèles de pointe pré-entraînés au format ONNX. Ces modèles sont recommandés pour une utilisation avec des NPU sur tous les Copilot + PC, y compris les appareils Intel et AMD (à venir).
Pour ceux qui souhaitent apporter leur propre modèle, nous recommandons d'utiliser l'outil d'optimisation de modèles tenant compte du matériel, Olive. Olive peut aider à la compression, à l'optimisation et à la compilation de modèles pour travailler avec ONNX Runtime comme solution d'optimisation des performances de la NPU. En savoir plus : L'IA simplifiée : Comment le Runtime ONNX et la chaîne d'outils Olive vous aideront Q&A | Build 2023.
Comment mesurer la performance des modèles d'intelligence artificielle fonctionnant localement sur la NPU de l'appareil ?
Pour mesurer la performance de l'intégration des fonctions d'IA dans votre application et les temps d'exécution des modèles d'IA associés :
Enregistrer une trace : L'enregistrement de l'activité d'un appareil sur une période donnée est connu sous le nom de traçage du système. Le traçage du système produit un fichier "trace" qui peut être utilisé pour générer un rapport et vous aider à identifier comment améliorer les performances de votre application. En savoir plus : Capturez une trace du système pour analyser l'utilisation de la mémoire.
Voir l'utilisation du NPU : Examinez les processus qui utilisent le NPU et les piles d'appels qui soumettent du travail.
Visualiser le travail et les piles d'appels sur l'unité centrale : Examinez les résultats des modèles d'IA d'alimentation avant le travail et des modèles d'IA de traitement après le travail.
Chargement et exécution : Examiner le temps nécessaire pour charger un modèle d'IA et créer une session ONNX Runtime.
Paramètres d'exécution : Examiner la configuration du Runtime ONNX et les paramètres de l'Execution Provider (EP) qui affectent les performances et l'optimisation de l'exécution du modèle.
Temps individuels lors de la conférence : Suivre les temps par conférence et les sous-détails du NPU.
Profiler : Établissez le profil des opérations du modèle d'IA pour savoir combien de temps chaque opérateur a contribué à la durée totale de l'inférence.
Spécifique à la NPU : Examinez les sous-détails NPU tels que les métriques sub-HW, la bande passante de la mémoire, etc.
Pour effectuer ces mesures, nous recommandons les outils de diagnostic et de traçage suivants :
- Gestionnaire de tâches : Il permet à l'utilisateur de visualiser les performances du système d'exploitation Windows installé sur son appareil, notamment les processus, les performances, l'historique des applications, les applications de démarrage, les utilisateurs, les détails et les services. Les données de performance en temps réel sont affichées pour le processeur, la mémoire, le disque de stockage, le Wi-Fi, le GPU... et maintenant le NPU de votre appareil. Les données comprennent le pourcentage d'utilisation, la mémoire disponible, la mémoire partagée, la version du pilote, l'emplacement physique, etc.
- Enregistreur de performances Windows (WPR) : WPR est désormais livré avec un profil de traitement neuronal permettant d'enregistrer l'activité du NPU. Il enregistre les interactions entre le modèle de pilote Microsoft Compute (MCDM) et la NPU. Les développeurs peuvent désormais voir l'utilisation du NPU, les processus qui utilisent le NPU et les piles d'appels qui soumettent des travaux.
- Windows Performance Analyzer (WPA) : WPA crée des graphiques et des tableaux de données des événements ETW (suivi d'événements pour Windows) enregistrés par l’Enregistreur de performance Windows (WPR), Xperf ou une évaluation exécutée dans la plateforme d’évaluation. Il fournit des points d'accès pratiques pour l'analyse du CPU, du disque, du réseau, des événements d'exécution ONNX... ainsi qu'une nouvelle table pour l'analyse du NPU, le tout dans une seule ligne de temps. L'APW peut désormais visualiser le travail et les piles d'appels sur l'unité centrale liés au travail préalable à l'alimentation des modèles d'IA et au traitement postérieur des résultats des modèles d'IA. Téléchargez Windows Performance Analyzer depuis le Microsoft Store.
- GPUView : GPUView est un outil de développement qui lit les événements vidéo et kernel enregistrés dans un fichier journal (.etl) et présente les données sous forme graphique à l'utilisateur. Cet outil comprend désormais les opérations GPU et NPU, ainsi que la prise en charge de la visualisation des événements DirectX pour les dispositifs MCDM tels que le NPU.
- Les événements du Runtime ONNX dans l'analyseur de performance Windows : A partir de ONNXRuntime 1.17 (et amélioré dans la version 1.18.1), les cas d'utilisation suivants sont disponibles avec les événements émis dans le runtime :
- Voyez combien de temps il a fallu pour charger un modèle d'IA et créer une session ONNX Runtime.
- Voir la configuration de l'exécution ONNX et les paramètres du fournisseur d'exécution (EP) qui affectent les performances et l'optimisation de l'exécution du modèle.
- Suivi des temps d'inférence et des sous-détails de la NPU (QNN).
- Profil des opérations du modèle d'IA pour voir combien de temps chaque opérateur a contribué à la durée totale de l'inférence.
- En savoir plus sur le profilage du fournisseur d'exécution ONNX (EP).
Remarque
WPR UI (l'interface utilisateur disponible pour prendre en charge le WPR en ligne de commande inclus dans Windows), WPA et GPUView font tous partie de Windows Performance Toolkit (WPT), version mai 2024+. Pour utiliser le WPT, vous devez : Télécharger le Windows ADK Toolkit.
Pour un démarrage rapide de la visualisation des événements ONNX Runtime avec l'analyseur de performance Windows (WPA), suivez ces étapes :
Téléchargez ort.wprp et etw_provider.wprp.
Ouvrez votre ligne de commande et entrez :
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
Combinez les profils de l'enregistreur de performances Windows (WPR) avec d'autres profils d'enregistrement intégrés tels que CPU, Disk, etc.
Téléchargez Windows Performance Analyzer (WPA) depuis le Microsoft Store.
Ouvrez le fichier
onnx_NPU.etl
dans WPA. Double-cliquez pour ouvrir ces graphiques :- "Traitement neuronal - Utilisation de la NPU >
- Événements génériques pour les événements ONNX
D'autres outils de mesure des performances peuvent être utilisés avec les outils Microsoft Windows énumérés ci-dessus :
- Qualcomm Snapdragon Profiler (qprof) : Une interface graphique et un outil de profileur de performances à l'échelle du système conçus pour visualiser les performances du système, ainsi que pour identifier les opportunités d'optimisation et de mise à l'échelle des applications à travers les processeurs SoC, les GPU, les DSP et les autres blocs IP de Qualcomm. Le Snapdragon Profiler permet de visualiser les sous-détails du NPU, tels que les métriques sub-HW, la bande passante de la mémoire, etc.