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 智能体验,提供企业级安全性,以增强从芯片到云的保护。
- 详细了解高通 Snapdragon X Elite。
- 详细了解基于 ARM 的 Windows 的使用和开发。
搭载 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 资源使用情况。
要在设备 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 即将正式支持 DirectML 和 WebNN。
- Intel 和 AMD NPU 器件:在 2024 年晚些时候,更多 NPU 器件也将推出。 DirectML 是适用于这些设备的推荐方法。
支持的模型格式
AI 模型通常采用较大的数据格式(例如 FP32)进行训练和提供。 但是,许多 NPU 器件仅支持较低位格式(例如 INT8)的整数数学运算,旨在提高性能和电源效率。 因此,AI 模型需要进行转换(或“量化”)才能在 NPU 上运行。 有很多模型已转换为现成可用的格式。 你也可以自带模型 (BYOM) 以进行转换或优化。
- Qualcomm AI Hub(计算):高通提供了一些 AI 模型,它们经过验证,可在搭载 Snapdragon X Elite 的 Copilot+ 电脑上使用,这些模型经过专门优化,可在此 NPU 上高效运行。 了解详细信息:使用 Qualcomm AI Hub 加快模型部署 |Microsoft Build 2024。
- ONNX Model Zoo:此开源仓库以 ONNX 格式提供一组预先训练的先进模型。 我们建议在所有 Copilot+ 电脑上的 NPU 上运行这些模型,包括 Intel 和 AMD 器件(即将推出)。
对于希望自带模型的用户,我们建议使用硬件感知的模型优化工具 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 操作系统的性能,包括进程、性能、应用历史记录、启动应用、用户、详细信息和服务。 它会显示设备 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 运行时事件,请执行以下步骤:
下载 ort.wprp 和 etw_provider.wprp。
打开命令行并输入:
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
将 Windows Performance Recorder (WPR) 配置文件与其他内置录制配置文件(例如 CPU、磁盘等)组合在一起。
在 WPA 中打开
onnx_NPU.etl
文件。 双击打开以下图形:- “神经网络处理 -> NPU 利用率
- ONNX 事件的一般事件
要考虑与以上所列 Microsoft Windows 工具一同使用的其他性能测量工具,包括:
- Qualcomm Snapdragon Profiler (qprof):一种 GUI 和系统范围的性能分析工具,其设计目的是通过可视化方式显示系统性能,并且发现在高通 SoC CPU、GPU、DSP 和其他 IP 块上的优化和应用程序缩放改进机会。 使用 Snapdragon Profiler,用户可以查看 NPU 子级详细信息,例如子级硬件指标、内存带宽等。