Copilot+ 电脑开发人员指南

Copilot+ 电脑是一种采用高性能神经网络处理单元 (NPU) 的新型 Windows 11 硬件,NPU 是一种专用的计算机芯片,用于 AI 密集型进程,例如实时翻译和图像生成,每秒可以执行 40 万亿次以上的运算 (TOPS)。 Copilot+ 电脑提供全天的电池使用时间,可以利用最先进的 AI 功能和模型。 在 简介 Copilot+ 电脑 - 官方Microsoft博客中了解详细信息。

下面的 Copilot+ 电脑开发人员指南涵盖以下内容:

  • 设备先决条件
  • 什么是基于 Arm 的 Snapdragon Elite X+ 芯片?
  • 搭载 NPU 处理器的 Copilot+ 电脑支持的独特 AI 功能
  • 如何充分利用 Copilot+ 电脑上的 NPU 资源
  • 如何使用 ONNX 运行时通过编程方式充分利用 +Copilot 电脑上的 NPU 资源
  • 如何测量在设备 NPU 上本地运行 AI 模型的性能

先决条件

本指南特定于 Copilot+ 电脑

很多新的 Windows AI 功能都需要使用达到 40+ TOPS 的运行速度的 NPU,包括但不限于:

Surface Copilot+ 商用电脑:

什么是基于 Arm 的 Snapdragon Elite X 芯片?

由高通构建的基于 Arm 的 Snapdragon Elite X 芯片,提供行业领先的神经网络处理单元 (NPU),重点用于 AI 集成。 这款 NPU 能够并行处理大量数据,每秒执行数万亿次运算,运行 AI 任务的能源使用效率高于 CPU 或 GPU,从而延长设备电池使用时间。 NPU 与 CPU 和 GPU 配合使用。 Windows 11 将处理任务分配到最合适的位置,目的是提供快速高效的运算。 NPU 实现了设备上的 AI 智能体验,提供企业级安全性,以增强从芯片到云的保护。

搭载 NPU 的 Copilot+ 电脑支持的独特 AI 功能

Copilot+ 电脑提供了新版本 Windows 11 带来的独特 AI 体验。 这些 AI 功能设计为在设备 NPU 上运行,随附在最新版本的 Windows 中,并通过 Windows AI Foundry 中的 API 提供。 详细了解优化为在 NPU 上运行(推理)的模型支持的 Windows 运行时 Copilot API。 这些 API 将在即将发布的 Windows 应用 SDK 版本中提供。

如何充分利用 Copilot+ 电脑上的 NPU 资源

神经处理单元(NPU)是一种新的硬件资源。 与电脑上的其他硬件资源一样,NPU 需要对软件进行专门编程,才能充分利用它提供的优势。 NPU 专为执行构成 AI 模型的深度学习数学运算而设计。

上面提到的 Windows 11 Copilot+ AI 功能经过专门设计,可以充分利用 NPU 资源。 对于面向 NPU 的 AI 模型,用户可以延长电池使用时间,加快推理执行速度。 Windows 11 可以支持各种 NPU,包括基于 Arm 的 Qualcomm 器件,以及 Intel 和 AMD 器件(即将推出)。

对于具有 NPU 的设备, 任务管理器 现在可用于查看 NPU 资源使用情况。

Windows 任务管理器的屏幕截图,其中显示了 CPU、GPU、内存、以太网和磁盘的 NPU 性能

在设备 NPU 上推断(运行 AI 任务)的建议方法是使用 ONNX 运行时。 ONNX 运行时是一个灵活的高性能堆栈,可针对 NPU、GPU 和 CPU 进行编程,让你能够自带 AI 模型,或者使用在网络上找到的开源 AI 模型。 详细了解如何使用 ONNX 运行时访问下面的 NPU,或详细了解如何在 Windows 上开始使用 AI

注意

将其他运行时用于 PyTorch 或 Tensorflow 怎么样? Windows 也支持 PyTorch、Tensorflow 和其他芯片供应商提供的 SDK 类型的其他运行时。 目前,你可以通过转换为灵活的 ONNX 格式来运行 PyTorch、TensorFlow 和其他模型类型,但本机支持也即将推出。

如何使用 ONNX 运行时通过编程方式充分利用 +Copilot 电脑上的 NPU 资源

Microsoft提供名为 ONNX 运行时的完整开源推理和培训框架。 ONNX 运行时是我们推荐的开源 Microsoft 解决方案,用于在 NPU 上运行 AI 模型。 由于 ONNX 运行时非常灵活,而且支持运行 AI 模型的众多不同选项,因而它的选择可能令人困惑。 本指南将帮助你选择特定于 Windows Copilot+ 电脑的选项。

  • Qualcomm Snapdragon X:目前,开发人员应将目标定位于 Qualcomm QNN 执行提供程序(EP),该程序使用 Qualcomm AI 引擎直接 SDK(QNN)。 可以使用 QNN 支持的预建包进行下载。 这是 Windows AI Foundry 当前使用的同一技术栈,并应用于具备 Qualcomm 处理器的 PC 设备的用户体验中Copilot。 DirectMLWebNN 支持用于 Qualcomm Snapdragon X Elite NPU 已在微软 Build 2024 大会上宣布,并将很快可用。
  • Intel 和 AMD NPU 设备:2024 年稍后将提供其他 NPU 设备。 DirectML 是针对这些设备的建议方法。

支持的模型格式

AI 模型通常采用较大的数据格式(例如 FP32)进行训练和提供。 但是,许多 NPU 器件仅支持较低位格式(例如 INT8)的整数数学运算,旨在提高性能和电源效率。 因此,AI 模型需要进行转换(或“量化”)才能在 NPU 上运行。 有很多模型已转换为现成可用的格式。 还可以自带模型 (BYOM) 进行转换或优化。

对于想要自带模型的用户,我们建议使用硬件感知模型优化工具 Olive。 Olive 有助于进行模型压缩、优化和编译,与 ONNX 运行时配合使用,作为 NPU 性能优化解决方案。 了解详细信息:AI 变得更轻松:ONNX 运行时和 Olive 工具链如何帮助你问答 | 版本 2023

如何测量在设备 NPU 上本地运行 AI 模型的性能

若要测量应用和相关 AI 模型运行时中的 AI 功能集成的性能,请执行以下操作:

  • 记录跟踪:记录一段时间内的设备活动称为系统跟踪。 系统跟踪会生成一个“跟踪”文件,可用于生成报吿,帮助你确定提高应用性能的方法。 了解详细信息: 捕获系统跟踪以分析内存使用情况

  • 查看 NPU 使用情况:检查哪些进程正在使用 NPU 和提交工作的调用堆栈。

  • 查看 CPU 上的工作和调用堆栈:检查工作前馈送 AI 模型和工作后处理 AI 模型的结果。

  • 加载和运行时:检查加载 AI 模型的时长并创建 ONNX 运行时会话。

  • 运行时参数:检查影响模型运行时性能和优化的 ONNX 运行时配置和执行提供程序 (EP) 参数。

  • 单个推理时间:跟踪 NPU 中的每次推理时间和详细信息。

  • 探查器:分析 AI 模型操作,查看每个运算符对总推理时间的贡献。

  • NPU 特定:检查 NPU 的子细节,例如子硬件指标、内存带宽等。

展示 Windows 性能分析器工具总体印象的屏幕截图

若要执行这些测量,建议使用以下诊断和跟踪工具:

  • 任务管理器:允许用户查看其设备上安装的 Windows作系统的性能,包括进程、性能、应用历史记录、启动应用、用户、详细信息和服务。 它会显示设备 CPU、内存、存储磁盘、Wi-Fi、GPU 和 NPU 的实时性能数据。 这些数据包括利用率百分比、可用内存、共享内存、驱动程序版本、物理位置等。
  • Windows 性能记录器(WPR):WPR 现在附带一个神经处理配置文件来记录 NPU 活动。 此记录 Microsoft计算驱动程序模型(MCDM) 与 NPU 的交互。 开发人员可以查看 NPU 使用情况,哪些进程正在使用 NPU,以及提交工作的调用堆栈。
  • Windows 性能分析器(WPA):WPA 创建 Windows 事件跟踪(ETW)事件图和数据表,这些事件由 Windows 性能记录器(WPR)、Xperf 或评估平台中运行的评估记录。 它提供了方便的接入点来分析 CPU、磁盘、网络、ONNX 运行时事件...和 NPU 分析的新表,全部在单个时间线中。 WPA 现在可以查看与工作前馈送 AI 模型和工作后处理 AI 模型结果相关的 CPU 上的工作和调用堆栈。 从 Microsoft 应用商店下载 Windows Performance Analyzer
  • GPUView:GPUView 是一种开发工具,它从事件跟踪日志(.etl)文件中读取记录的视频和内核事件,并将数据以图形方式呈现给用户。 此工具现在包括 GPU 和 NPU 操作,并且支持查看用于 MCDM 设备的 DirectX 事件,例如 NPU。
  • Windows Performance Analyzer 中的 ONNX 运行时事件:从 ONNXRuntime 1.17 开始(在 1.18.1 中增强),以下用例可用于运行时中发出的事件:
    • 查看加载 AI 模型所需的时间,并创建 ONNX 运行时会话。
    • 请参阅影响模型运行时性能和优化的 ONNX 运行时配置和执行提供程序 (EP) 参数。
    • 跟踪 NPU (QNN) 的每推理时间和子级详细信息。
    • 分析 AI 模型运算,以了解每个运算符为总推理时间贡献的时间长度。
    • 详细了解 ONNX 运行时执行提供程序(EP)性能分析

注意

WPR UI(可用于支持 Windows 中包括的基于命令行的 WPR 的用户界面)、WPA 和 GPUView 都是 Windows Performance Toolkit (WPT) 2024 年 5 月版本的一部分。 若要使用 WPT,需要: 下载 Windows ADK 工具包

若要快速开始使用 Windows Performance Analyzer (WPA) 查看 ONNX 运行时事件,请执行以下步骤:

  1. 下载 ort.wprpetw_provider.wprp

  2. 打开命令行并输入:

    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. 将 Windows 性能记录器(WPR) 配置文件与其他内置录制配置文件 (例如 CPU、磁盘等)组合在一起。

  4. 从 Microsoft 应用商店下载 Windows 性能分析器(WPA)。

  5. 在 WPA 中打开 onnx_NPU.etl 文件。 双击打开以下图形:

    • “神经网络处理 -> NPU 利用率
    • ONNX 事件的一般事件

要考虑与以上所列 Microsoft Windows 工具一同使用的其他性能测量工具,包括:

  • Qualcomm Snapdragon Profiler (qprof):一种 GUI 和系统范围的性能分析工具,旨在可视化系统性能,以及识别高通 SoC CPU、GPU、DSP 和其他 IP 块中的优化和应用程序缩放改进机会。 使用 Snapdragon Profiler,用户可以查看 NPU 子级详细信息,例如子级硬件指标、内存带宽等。

其他资源