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,包括但不限于:

  • 基于 Arm 的 Qualcomm Snapdragon X Elite 器件
  • Intel Lunar Lake 器件 - 即将推出
  • AMD STRIX (Ryzen AI 9) 器件 - 即将推出

什么是基于 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 录音室效果:Microsoft 提供的一系列音频和视频 NPU 加速 AI 效果,包括创意滤镜、背景模糊、眼神交流、自动构图、语音集中。 开发人员还可为应用添加切换开关,用于系统级别控制。 AI 增强功能的 Windows 录音室效果列表

  • 记忆:支持 AI 的 UserActivity API,让用户能够使用自然语言搜索过去的交互,并选择他们离开的位置。 通过 Windows 预览体验计划 (WIP) 提供给 Copilot+ 电脑使用。 了解详细信息: 使用记忆来回溯步骤

  • Phi Silica:Phi Small 语言模型 (SLM) 允许应用连接到设备上的模型,使用即将发布的 Windows 应用 SDK 执行自然语言处理任务(聊天、算术、代码、推理)。

  • 文本识别:光学字符识别 (OCR) API,可从图像和文档中提取文本。 例如将 PDF、纸质文档或教学白板图片转换成可编辑的数字文本等任务。

  • Cocreator 画图功能:Microsoft 画图中的一项新功能,可将图像转换为 AI Art。

  • 超级分辨率:一种行业领先的 AI 技术,它使用 NPU 让游戏运行更快,外观效果更漂亮。

*并非所有功能最初都可以在所有 Copilot+ 电脑上使用。

重要

最新版本 Windows 中的 AI 模型将通过在 Build 2024 中发布的 Windows Copilot 运行时中的 API 提供。 适用于新 AI 功能的 API(例如 Phi Silica)受经优化后可在 NPU 上运行(推理)的模型支持,并随附在即将发布的 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 任务管理器的屏幕截图,其中显示了 NPU 性能以及 CPU、GPU、内存、以太网和磁盘

要在设备 NPU 上执行推断(运行 AI 任务),我们建议的方法是使用 ONNX 运行时。 ONNX 运行时是一个灵活的高性能堆栈,可针对 NPU、GPU 和 CPU 进行编程,让你能够自带 AI 模型,或者使用在网络上找到的开源 AI 模型。 详细了解如何使用 ONNX 运行时以充分利用 NPU 资源,或详细了解如何 在 Windows 应用中使用机器学习模型

注意

将其他运行时用于 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:目前,开发人员应该倾向于选择高通 QNN Execution Provider (EP),它使用了高通 AI Engine Direct SDK (QNN)。 可以下载支持 QNN 的预构建包。 这与 Windows Copilot 运行时当前使用的堆栈相同,与 Copilot+ PC 高通器件上的体验相同。 在 Build 2024 中,高通 Snapdragon X Elite NPU 即将正式支持 DirectMLWebNN
  • Intel 和 AMD NPU 器件:在 2024 年晚些时候,更多 NPU 器件也将推出。 DirectML 是适用于这些设备的推荐方法。

支持的模型格式

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

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

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

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

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

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

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

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

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

  • 单个推理时间:跟踪来自 NPU 的每推理时间和子级详细信息。

  • 探查器:分析 AI 模型运算,以了解每个运算符为总推理时间贡献的时间长度。

  • NPU 特定:检查 NPU 子级详细信息,例如子级硬件指标、内存、带宽等。

显示 Windows Performance Analyzer 工具的整体印象的屏幕截图

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

  • 任务管理器:允许用户查看在设备上安装的 Windows 操作系统的性能,包括进程、性能、应用历史记录、启动应用、用户、详细信息和服务。 它会显示设备 CPU、内存、存储磁盘、Wi-Fi、GPU 和 NPU 的实时性能数据。 这些数据包括利用率百分比、可用内存、共享内存、驱动程序版本、物理位置等。
  • Windows Performance Recorder(WPR):WPR 现在附带一个神经网络处理配置文件,用于记录 NPU 活动。 它会记录 Microsoft 计算驱动程序模型 (MCDM) 与 NPU 的交互。 开发人员可以查看 NPU 使用情况,哪些进程正在使用 NPU,以及提交工作的调用堆栈。
  • Windows Performance Analyzer (WPA): WPA 创建 Windows 事件跟踪 (ETW) 事件的图形和数据表,这些事件由 Windows Performance Recorder (WPR)、Xperf 或评估平台中运行的某个评估来进行记录。 它提供了一个方便的访问点,用于分析 CPU、磁盘、网络、ONNX 运行时事件,还提供 NPU 分析的新表格,这些数据全部在单个时间线上显示。 WPA 现在可以查看与工作前馈送 AI 模型和工作后处理 AI 模型结果相关的 CPU 上的工作和调用堆栈。 从 Microsoft Store 下载 Windows Performance Analyzer
  • GPUView:GPUView 是一种开发工具,可从事件跟踪日志 (.etl) 文件中读取记录的视频和内核事件,并通过图形方式向用户显示数据。 此工具现在包括 GPU 和 NPU 运算,还支持查看 MCDM 器件(例如 NPU)的 DirectX 事件。
  • 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 Performance Recorder (WPR) 配置文件与其他内置录制配置文件(例如 CPU、磁盘等)组合在一起。

  4. 从 Microsoft 应用商店下载 Windows Performance Analyzer (WPA)

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

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

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

  • Qualcomm Snapdragon Profiler (qprof):一种 GUI 和系统范围的性能分析工具,其设计目的是通过可视化方式显示系统性能,并且发现在高通 SoC CPU、GPU、DSP 和其他 IP 块上的优化和应用程序缩放改进机会。 使用 Snapdragon Profiler,用户可以查看 NPU 子级详细信息,例如子级硬件指标、内存带宽等。

其他资源