NPU终于不只是发布会 PPT 上那个“50 TOPS”了。

最近,YouTube上 的 Techno Tim 找来一台同时拥有 CPU、GPU 和 NPU 的迷你电脑,直接架起 4 路监控视频,让 AI 连续识别人、汽车和其他物体。

同一套 YOLO 模型,先扔给 CPU,再交给 GPU,最后塞进 NPU,连续跑、反复测。通过这个实验,他也把一个很多 AI PC 用户一直没搞明白的问题摆到了台面上——电脑里已经有 GPU 了,为什么还要再塞一颗 NPU?

直接搭4路“假监控”

这次测试使用的是一台搭载 Intel Core Ultra 9 386H 的迷你工作站,一颗处理器里集成了 CPU、GPU,以及标称 50 TOPS 的 NPU。50 TOPS 看起来很高,但 TOPS 本身只是每秒可以完成多少万亿次运算的理论指标。真正到了软件里,50 TOPS 究竟意味着什么,很难靠包装盒上的一个数字判断。

于是博主找来了 Frigate。Frigate 是一套开源视频监控系统,可以接入摄像头、录像、检测运动,也能通过 AI 识别人、汽车、动物等目标。更适合这次实验的是,它支持 Intel OpenVINO,可以把同一个神经网络模型指定给 CPU、GPU 或 NPU 执行。

电脑里已经有 GPU 了,为什么还要再塞一颗 NPU?

为了避免拿自家监控录像公开测试,他干脆带着相机出去拍了一圈。高速公路上的车辆、十字路口、公园里跑步和散步的人、停车场进出的汽车,一共录下 4 段视频。随后通过 FFmpeg 将视频循环播放,再接入 go2rtc,生成 4 路 RTSP 视频流。

对于 Frigate 来说,这就是 4 台一直开着的摄像头。接下来所有变量尽量保持一致:4 路视频相同,视频解码方式相同,目标检测模型统一采用 YOLOv9 Tiny,输入分辨率固定在 640×640,唯一改变的是执行 AI 推理的硬件。

每组测试持续大约 5 分钟,并重复 5 次。他记录的也不只有“模型跑多快”,还包括推理延迟、每秒检测帧数、CPU/GPU/NPU 利用率,以及整台机器从插座取了多少电。这已经很接近一套 AI PC 的实际负载测试了。

GPU快了3倍,NPU却只用了18.3W

CPU 先上,4 路视频同时运行时,YOLOv9 Tiny 的平均推理延迟约为 30.4ms,检测吞吐达到每秒 33 帧左右,整机功耗约 51.4W。

随后把目标检测交给集成 GPU。延迟直接降到 9.7ms,检测吞吐提高到 53.5 FPS,性能提升非常明显。与此同时,整机功耗居然降到了约 24.8W。

持续做这种高度并行的神经网络计算,GPU 显然比 CPU 合适得多。不过代价也很直观:执行检测时,GPU 利用率已经接近 99%。

最后轮到 NPU。同一模型、同一批视频、同一套 Frigate 环境,平均推理延迟依然是 9.7ms,检测吞吐为 53.3 FPS。GPU 是 53.5 FPS,NPU 是 53.3 FPS,这点差距放进真实监控场景里几乎可以忽略。

真正拉开距离的是功耗。切换到 NPU 后,整机平均功耗只有 18.3W,比 GPU 模式又少了约 6.5W,相比 CPU 模式足足低了约 33W。

电脑里已经有 GPU 了,为什么还要再塞一颗 NPU?

而且执行这套目标检测任务时,NPU 平均利用率只有约 18%。GPU 此时降到了约 30%,主要负责视频解码。此前 GPU 既要处理视频,又要执行神经网络推理,几乎一直顶在满载状态;加入 NPU 后,目标检测被单独接走,大部分 GPU 资源重新空了出来。如果一台机器每天 24 小时同时处理多路摄像头,这种资源分配的意义就开始显现出来。

跑分里NPU更快,到了真实软件却打平

更有意思的情况出现在后面的对照实验。博主又绕开 Frigate,直接使用 OpenVINO 的 Benchmark 工具运行完全相同的 YOLOv9 Tiny。

这一次,结果和实际监控环境差别很大。CPU 延迟约 28.6ms,每秒处理 34.5 帧;GPU 已经降低到 4.22ms,每秒约 221 帧;NPU 则进一步做到约 2.2ms,每秒达到 315 帧。

随后他又设计了一组更接近 Frigate 调用方式的同步测试。CPU 约为 29.3ms、34.2 FPS,GPU 为 5.5ms、179 FPS,NPU 达到 4.8ms、200.5 FPS。

电脑里已经有 GPU 了,为什么还要再塞一颗 NPU?

两组独立测试里,NPU 都跑在 GPU 前面。可真正进入 Frigate,GPU 和 NPU 最终都只有约 53 FPS。原因并不复杂。真实的视频监控系统里,模型推理只是其中一道工序。系统还需要不断接收视频、解码画面、搬运图像帧、处理检测结果、追踪物体,并判断什么时候触发提醒。

这也是只看 TOPS 和单模型 Benchmark 最容易遗漏的一层:芯片上的峰值算力,到了完整应用里,还要和软件栈、数据流以及其他硬件一起工作。

NPU的真正对手,可能根本不是GPU

做完这套实验之后,博主对 NPU 的理解发生了变化。最初,他也把 NPU 看成某种“小号 GPU”,自然会问它能不能把模型跑得更快,能不能在 Benchmark 里击败 GPU。可 4 路监控连续跑下来,NPU 最有价值的一面恰好出现在另一个维度。

像目标检测这样的 AI 任务,要全天候重复执行;单次计算规模没有大模型那么夸张,却对延迟、功耗和持续运行能力十分敏感。把它固定交给 NPU,CPU 可以继续处理操作系统和应用逻辑,GPU 也能留给视频、图形、生成式 AI 或更重的推理任务。

类似场景其实已经越来越多。Zoom、Teams 中的背景虚化、人物自动取景、虚拟背景,可以持续调用 NPU;实时字幕和语音识别可以一直在后台运行;摄像头视觉检测、语音降噪、环境感知,也都属于这种“开机之后就不停干活”的 AI。

Apple 给类似硬件取名 Neural Engine,AMD 使用 XDNA,Intel 直接叫 NPU。名字不同,背后的思路很接近:在 CPU 和 GPU 之外,再准备一块专门承担低功耗 AI 推理的计算资源。所以,这次最值得关注的数据可能根本不是 315 FPS。

当 GPU 模式下整机功耗达到 24.8W、GPU 接近 99% 占用时,NPU 用 18.3W 完成了几乎一样的实际检测任务,同时还留下了大量 GPU 算力。

对于 AI PC 来说,这或许才是那几十 TOPS 算力真正开始派上用场的地方。

至顶网至顶AI实验室频道 作者:刘文轩