Neural Processing Unit (NPU)
神经处理单元 (NPU) 是专为神经网络运算打造的处理器,可在手机、PC 和摄像头上高效运行量化模型。
神经处理单元(NPU)是一种专为运行神经网络设计的处理器,其核心是由芯片上内存供数的大型乘加单元阵列。大多数 NPU 都是系统级芯片中的模块,与 CPU 和 GPU 并列;它们以远低于另外两者的功耗,为相机、语音和视觉功能运行推理。华为麒麟 970 和 Apple A11 Bionic 于 2017 年将 NPU 带入手机;A11 Bionic 的 Neural Engine 额定性能为每秒 6000 亿次运算。随后,Qualcomm Hexagon NPU、Intel 于 2023 年 12 月推出的 Core Ultra 笔记本处理器中的 NPU,以及 AMD Ryzen AI 芯片也相继问世。Microsoft 的 Copilot+ PC 要求 NPU 的性能超过 40 万亿次运算每秒(TOPS)。NPU 这个名称也用于数据中心芯片:华为将 Ascend 数据中心加速器称为 NPU,并用它们训练大型模型。
NPU 与 CPU、GPU 的区别#
深度学习推理主要依赖对可预测数据进行矩阵乘法和卷积,因此 NPU 去掉了 CPU 运行通用代码所需的大部分控制逻辑和缓存,也去掉了 GPU 为图形处理保留的灵活性。NPU 将这些芯片面积用于专用计算阵列,并把权重和激活值保存在本地内存中,因为移动数据比计算数据消耗更多能量。NPU 还会使用低精度进行计算,主要是 INT8 和 FP16;因此,模型通常需要先进行量化才能在 NPU 上运行,而 NPU 的吞吐量也通常以 INT8 TOPS 表示。例如,Google Coral Edge TPU的性能为 4 TOPS,功耗效率为每瓦 2 TOPS。
- CPU: 可以运行任何代码、处理 NPU 不支持的操作;在大规模矩阵运算方面,它在三者中速度最慢。
- GPU: 可编程并行处理器,以较高吞吐量用浮点数训练和运行模型,但功耗高于 NPU。
- TPU: Google 的矩阵加速器系列。Cloud TPU 在数据中心训练和提供模型服务,而 Edge TPU 除名称外,本质上就是 NPU。
- 神经形态芯片: 处理脉冲神经网络产生的脉冲,适用于事件驱动型传感器;其计算模式不同于 NPU 的密集矩阵运算。
在 NPU 上运行模型#
NPU 运行的是编译后的程序,而不是 PyTorch 或 ONNX计算图。供应商编译器会提前转换网络,或在运行时加载网络时进行转换;通常还会使用校准图像将网络量化为 INT8、固定输入形状,并将每一层映射到硬件上。NPU 不支持的层会交由 CPU 或 GPU 处理,每次交接都需要在处理器之间复制张量:
每次回退都会增加数据传输,并让一个处理器等待另一个处理器,因此边缘设备的架构倾向于采用卷积、ReLU 系列激活函数和池化等标准算子。ONNX Runtime、Apple Core ML、Google LiteRT和 Intel OpenVINO 等运行时会处理这种任务划分,并在存在 NPU 时选择 NPU。
NPU 的应用场景#
智能手机使用 NPU 进行计算摄影、端侧语音识别、人脸识别和实时翻译,这样图像和音频就能留在设备上,保护数据隐私。在 AI PC 上,Windows Studio Effects 会使用 NPU 为视频通话实现背景模糊、视线校正和自动取景,让 CPU 和 GPU 腾出资源。对于边缘 AI,Rockchip、Hailo 和 DEEPX 的 NPU 可在安防摄像头、无人机和机器人中执行物体检测,无需网络连接。
Ultralytics YOLO26可通过导出模式导出为这些 NPU 所需的编译格式,包括面向 Intel NPU 的 OpenVINO、面向 Apple Neural Engine 的 Core ML、面向 Qualcomm Hexagon NPU 的 QNN、面向 Rockchip 的 RKNN,以及面向 Huawei Ascend的 .om 格式。YOLO26 也能在 Ascend NPU 上训练;使用 device="npu:0" 或 device="npu:0,1" 可指定 Ascend NPU 进行多 NPU 训练。










