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,包括但不限于:
- Microsoft Surface Laptop Copilot+ PC
- Microsoft Surface Pro Copilot + PC
- HP OmniBook X 14
- Dell Latitude 7455、XPS 13 和 Inspiron 14
- Acer Swift 14 AI
- 联想 Yoga Slim 7x 和 ThinkPad T14s
- Samsung Galaxy Book4 Edge
- ASUS Vivobook S 15 和 ProArt PZ13
- Copilot加上配备新 AMD 和 Intel 处理器的电脑,包括 AMD Ryzen AI 300 系列 和 Intel Core Ultra 200V 系列。
什么是基于 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 中,可通过 Windows Copilot 运行时中的 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 资源使用情况。
要在设备 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 子级详细信息,例如子级硬件指标、内存带宽等。