Partilhar via


Guia do desenvolvedor do Copilot+ PCs

Copilot+ PCs são uma nova classe de hardware do Windows 11 alimentado por uma Unidade de Processamento Neural (NPU) de alto desempenho — um chip de computador especializado para processos intensivos de IA, como traduções em tempo real e geração de imagens — que pode executar mais de 40 trilhões de operações por segundo (TOPS). Os PCs Copilot+ proporcionam autonomia da bateria durante todo o dia e acesso aos recursos e modelos de IA mais avançados. Saiba mais em Apresentando Copilot+ PCs - O Blog Oficial da Microsoft.

O seguinte Copilot+ PC Developer Guidance abrange:

  • Pré-requisitos do dispositivo
  • O que é o chip Snapdragon Elite X+ baseado em Arm?
  • Recursos exclusivos de IA suportados por Copilot+ PCs com um processador NPU
  • Como aceder a NPU em um Copilot+ PC
  • Como usar o ONNX Runtime para acessar programaticamente a NPU em um Copilot+ PC
  • Como medir o desempenho de modelos de IA executados localmente na NPU do dispositivo

Pré-requisitos

Este guia é específico para Copilot+ PCs.

Muitos dos novos recursos de IA do Windows exigem uma NPU com a capacidade de executar 40+ TOPS, incluindo, mas não limitado a:

O que é o chip Snapdragon Elite X baseado em ARM?

O novo chip baseado no Snapdragon X Elite Arm construído pela Qualcomm enfatiza a integração de IA por meio de sua Unidade de Processamento Neural (NPU) líder do setor. Esta NPU é capaz de processar grandes quantidades de dados em paralelo, realizando trilhões de operações por segundo, usando energia em tarefas de IA de forma mais eficiente do que uma CPU ou GPU, resultando em maior vida útil da bateria do dispositivo. A NPU funciona em alinhamento com a CPU e GPU. O Windows 11 atribui tarefas de processamento ao local mais apropriado para oferecer um desempenho rápido e eficiente. A NPU permite experiências inteligentes de IA no dispositivo com segurança de nível empresarial para proteção aprimorada do chip à nuvem.

Funcionalidades exclusivas de IA suportadas por Copilot+ PCs com uma NPU

Copilot+ PCs proporcionam experiências únicas de IA que vêm com versões modernas do Windows 11. Esses recursos de IA, projetados para serem executados na Unidade de Processamento Neural (NPU) do dispositivo, estão incluídos nas versões mais recentes do Windows e estarão disponíveis por meio de APIs (Interfaces de Programação de Aplicações) no Tempo de Execução do Windows Copilot. Saiba mais sobre de APIs do Copilot do Tempo de Execução do Windows que são suportadas por modelos otimizados para execução (inferência) na NPU. Essas APIs serão fornecidas em uma próxima versão do Windows App SDK.

Como acessar a NPU em um Copilot+ PC

O da Unidade de Processamento Neural (NPU) é um novo recurso de hardware. Como outros recursos de hardware em um PC, a NPU precisa que o software seja especificamente programado para aproveitar os benefícios que oferece. As NPUs são projetadas especificamente para executar as operações matemáticas de aprendizagem profunda que compõem os modelos de IA.

Os recursos do Windows 11 Copilot+ AI mencionados acima foram projetados especificamente para tirar proveito da NPU. Os usuários terão maior vida útil da bateria e tempo de execução de inferência mais rápido para modelos de IA que visam a NPU. O suporte do Windows 11 para NPUs incluirá dispositivos Qualcomm baseados em Arm, bem como dispositivos Intel e AMD (em breve).

Para dispositivos com NPUs, o Gestor de Tarefas pode agora ser usado para visualizar o uso de recursos de NPU.

Captura de ecrã do Gestor de Tarefas do Windows a apresentar o desempenho NPU juntamente com CPU, GPU, Memória, Ethernet e Disk

A maneira recomendada de inferir (executar tarefas de IA) na NPU do dispositivo é usar ONNX Runtime. O ONNX Runtime é uma pilha flexível e de alto desempenho para programar utilizando a NPU, além da GPU e CPU, permitindo levar seus próprios modelos de IA ou usar modelos de IA de código aberto encontrados na web. Saiba mais sobre como usar o ONNX Runtime para acessar a NPU abaixo ou saiba mais sobre como usar modelos de Machine Learning em seu aplicativo do Windows.

Observação

Que tal usar outros Runtimes para PyTorch ou Tensorflow? Outros ambientes de execução para PyTorch, Tensorflow e outros tipos de SDK fornecidos por fabricantes de hardware de silício também são suportados no Windows. Atualmente, você pode executar PyTorch, TensorFlow e outros tipos de modelo convertendo para o formato ONNX flexível, mas o suporte nativo está chegando em breve.

Como usar o ONNX Runtime para acessar programaticamente a NPU em um Copilot+ PC

A Microsoft fornece uma estrutura completa de inferência e treinamento de código aberto chamada ONNX Runtime. ONNX Runtime é a solução de código aberto recomendada da Microsoft para executar modelos de IA em uma NPU. Como o ONNX Runtime é flexível e suporta muitas opções diferentes para executar modelos de IA, as escolhas podem ser confusas. Este guia irá ajudá-lo a selecionar opções específicas para Windows Copilot+ PCs.

  • Qualcomm Snapdragon X: Atualmente, os desenvolvedores devem ter como alvo o Qualcomm QNN Execution Provider (EP), que usa o Qualcomm AI Engine Direct SDK (QNN). pacotes pré-fabricados com suporte QNN estão disponíveis para download. Esta é a mesma pilha atualmente usada pelo Tempo de Execução do Windows Copilot e em experiências de utilização em dispositivos Qualcomm e PC Copilot+. Suporte para DirectML e WebNN para NPUs Qualcomm Snapdragon X Elite foi anunciado na Build 2024 e estará disponível em breve.
  • Dispositivos NPU Intel e AMD: Dispositivos NPU adicionais estarão disponíveis no final de 2024. DirectML é o método recomendado para direcionar esses dispositivos.

Formatos de modelo suportados

Os modelos de IA são frequentemente treinados e estão disponíveis em formatos de dados maiores, como o FP32. Muitos dispositivos NPU, no entanto, suportam apenas matemática inteira em formato de bit mais baixo, como INT8, para maior desempenho e eficiência energética. Portanto, os modelos de IA precisam ser convertidos (ou "quantizados") para serem executados na NPU. Existem muitos modelos disponíveis que já foram convertidos para um formato pronto a usar. Você também pode trazer o seu próprio modelo (BYOM) para converter ou otimizar.

  • Qualcomm AI Hub (Compute): A Qualcomm fornece modelos de IA que já foram validados para uso em Copilot+ PCs com Snapdragon X Elite com os modelos disponíveis especificamente otimizados para rodar de forma eficiente nesta NPU. Saiba mais: Acelere a implantação de modelos com o Qualcomm AI Hub | Microsoft Build 2024.
  • ONNX Model Zoo: Este repositório de código aberto oferece uma coleção selecionada de modelos pré-treinados e de última geração no formato ONNX. Esses modelos são recomendados para uso com NPUs em todos os Copilot+ PCs, incluindo dispositivos Intel e AMD (em breve).

Para aqueles que querem trazer seu próprio modelo, recomendamos usar a ferramenta de otimização de modelo com reconhecimento de hardware, Olive. Olive pode ajudar com a compactação, otimização e compilação de modelos para trabalhar com o ONNX Runtime como uma solução de otimização de desempenho para NPU. Saiba mais: IA facilitada: Como o ONNX Runtime e a cadeia de ferramentas Olive irão ajudá-lo Q&A | Build 2023.

Como medir o desempenho de modelos de IA executados localmente na NPU do dispositivo

Para medir o desempenho da integração de recursos de IA em seu aplicativo e os tempos de execução do modelo de IA associados:

  • Gravar um rastreamento: A gravação da atividade do dispositivo durante um período de tempo é conhecida como rastreamento do sistema. O rastreamento do sistema produz um arquivo de "rastreamento" que pode ser usado para gerar um relatório e ajudá-lo a identificar como melhorar o desempenho do seu aplicativo. Saiba mais: Capte um traço do sistema para analisar o uso da memória.

  • Exibirde uso da NPU: Examine quais processos estão usando a NPU e as pilhas de chamadas enviando trabalho.

  • Ver trabalho e pilhas de chamadas na CPU: Examine os resultados dos modelos de IA de alimentação pré-trabalho e modelos de IA de processamento pós-trabalho.

  • Carga e Execução: Verifique a duração para carregar um modelo de IA e criar uma sessão de Runtime ONNX.

  • Parâmetros de tempo de execução: Examine a configuração do ONNX Runtime e os parâmetros do Execution Provider (EP) que afetam o desempenho e a otimização do tempo de execução do modelo.

  • Tempos de inferência individuais: Acompanhe os tempos por inferência e os subdetalhes da Unidade de Processamento Neural (NPU).

  • Profiler: Análise das operações do modelo de IA para ver o tempo que cada operador levou para contribuir para o tempo total de inferência.

  • específicos da NPU: examine os subdetalhes da NPU, como métricas sub-HW, largura de banda da memória e muito mais.

Captura de tela que fornece uma impressão geral da ferramenta Analisador de Desempenho do Windows

Para realizar essas medições, recomendamos as seguintes ferramentas de diagnóstico e rastreamento:

  • Gestor de Tarefas: Permite que um utilizador visualize o desempenho do Sistema Operativo Windows instalado no seu dispositivo, incluindo Processos, Desempenho, Histórico de aplicações, Aplicações de arranque, Utilizadores, Detalhes e Serviços. Dados de desempenho em tempo real serão mostrados para a CPU do seu dispositivo, memória, disco de armazenamento, Wi-Fi, GPU... e agora NPU. Os dados incluem a percentagem de utilização, memória disponível, memória partilhada, versão do controlador, localização física e muito mais.
  • Gravador de Desempenho do Windows (WPR): O WPR agora é fornecido com um perfil de Processamento Neural para registrar a atividade da NPU. Isso regista interações do Microsoft Compute Driver Model (MCDM) com a NPU. Os desenvolvedores agora podem ver o uso da NPU, quais processos estão usando a NPU e as pilhas de chamadas enviando trabalho.
  • Windows Performance Analyzer (WPA): o WPA cria gráficos e tabelas de dados de eventos de Rastreamento de Eventos para Windows (ETW) que são registrados pelo Gravador de Desempenho do Windows (WPR), Xperf ou uma avaliação executada na Plataforma de Avaliação. Ele fornece pontos de acesso convenientes para analisar a CPU, disco, rede, eventos de tempo de execução do ONNX... e uma nova tabela para análise da NPU, tudo numa só linha temporal. Agora, o WPA pode visualizar o trabalho e as pilhas de chamadas na CPU relacionadas à alimentação de modelos de IA antes do trabalho e ao processamento dos resultados dos modelos de IA após o trabalho. Baixe o Analisador de Desempenho do Windows da Microsoft Store.
  • GPUView: GPUView é uma ferramenta de desenvolvimento que lê vídeo registrado e eventos do kernel a partir de um arquivo de log de rastreamento de eventos (.etl) e apresenta os dados graficamente para o usuário. Essa ferramenta agora inclui operações de GPU e NPU, bem como suporte para visualização de eventos DirectX para dispositivos MCDM como a NPU.
  • eventos do ONNX Runtime no Windows Performance Analyzer: A partir do ONNX Runtime 1.17 (e melhorado na versão 1.18.1), os seguintes casos de uso estão disponíveis com eventos emitidos durante o runtime:
    • Veja quanto tempo levou para carregar um modelo de IA e criar uma sessão de tempo de execução ONNX.
    • Consulte Configuração do ONNX Runtime e parâmetros do Execution Provider (EP) que afetam o desempenho e a otimização do tempo de execução do modelo.
    • Acompanhe os tempos de inferência e os subdetalhes da NPU (QNN).
    • Crie o perfil das operações do Modelo de IA para ver quanto tempo cada operador levou para contribuir para o tempo total de inferência.
    • Saiba mais sobre a Profiling do ONNX Runtime Execution Provider (EP).

Observação

WPR UI (a interface do usuário disponível para suportar o WPR baseado em linha de comando incluído no Windows), WPA e GPUView fazem parte do Windows Performance Toolkit (WPT), versão de maio de 2024+. Para usar o WPT, você precisará: Baixe o Windows ADK Toolkit.

Para obter um início rápido na exibição de eventos do ONNX Runtime com o Windows Performance Analyzer (WPA), siga estas etapas:

  1. Baixar ort.wprp e etw_provider.wprp.

  2. Abra sua linha de comando e digite:

    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. Combine os perfis do Windows Performance Recorder (WPR) com outros Built-in Recording Profiles como CPU, Disco, etc.

  4. Baixe o Windows Performance Analyzer (WPA) da Microsoft Store.

  5. Abra o arquivo onnx_NPU.etl no WPA. Double-Click para abrir estes gráficos:

    • "Processamento Neural - Utilização de NPU>
    • Eventos genéricos para eventos ONNX

Outras ferramentas de medição de desempenho a serem consideradas com as ferramentas do Microsoft Windows listadas acima incluem:

  • Qualcomm Snapdragon Profiler (qprof): Uma ferramenta de perfil de desempenho de GUI e de todo o sistema projetada para visualizar o desempenho do sistema, bem como identificar oportunidades de otimização e melhoria de dimensionamento de aplicativos em CPUs, GPUs, DSPs e outros blocos IP SoC da Qualcomm. O Snapdragon Profiler permite visualizar subdetalhes da NPU, como métricas sub-HW, largura de banda de memória e muito mais.

Recursos adicionais