2、硬件平台选型:主流边缘AI芯片对比

好,咱们进入第二章。这一章我估计是很多人最头疼的部分——选芯片。

说实话,我见过太多项目,算法调得漂漂亮亮,结果一上硬件就卡成PPT。为什么?芯片选型没做好。今天我就把这几年的经验摊开来聊聊,帮你少走弯路。

2.1 主流边缘AI芯片:三足鼎立

目前市面上能打的边缘AI芯片,基本就三家:NVIDIA的Jetson系列、Google的TPU、还有各家厂商的NPU。我一个个说。

2.1.1 NVIDIA Jetson系列

Jetson是我用得最多的平台。说白了,它就是一块小号的GPU显卡。

  • Jetson Nano:入门级,472 GFLOPS,功耗5-10W。适合做原型验证。
  • Jetson TX2:1.33 TFLOPS,功耗7.5-15W。我第一个落地项目用的就是它。
  • Jetson Xavier NX:21 TOPS,功耗10-20W。目前性价比之王。
  • Jetson AGX Orin:275 TOPS,功耗15-75W。旗舰级,能跑大模型。
我的经验:如果你团队里都是PyTorch玩家,闭眼选Jetson。生态太成熟了,TensorRT一优化,推理速度能翻倍。

2.1.2 Google Coral TPU

TPU这玩意儿,我一开始是拒绝的。总觉得Google的东西太封闭。后来真香了。

  • 算力:4 TOPS(INT8)
  • 功耗:仅2W
  • 接口:USB、PCIe、M.2

我曾经在一个无人机项目里用过Coral。那会儿要求整机功耗控制在5W以内,Jetson Nano都嫌费电。最后用Coral USB加速棒,配合树莓派,硬是跑通了YOLOv4-tiny。帧率虽然只有15fps,但够用了。

注意:TPU只支持TensorFlow Lite。你如果模型是PyTorch的,得先转ONNX再转TFLite。这一步坑很多,我踩过。

2.1.3 国产NPU(以华为昇腾、瑞芯微为例)

这两年国产NPU起来了。我接触比较多的是华为Atlas 200和瑞芯微RK3588。

芯片 算力 功耗 价格
华为Atlas 200 22 TOPS (INT8) 8W 中等
瑞芯微RK3588 6 TOPS (NPU) 6W 较低

嗯,这里要注意。国产NPU的算力数字看着漂亮,但实际跑起来,算子支持度是个大问题。我有个朋友做安防项目,选了某款NPU,结果模型里有个自定义算子,厂商说「下个版本支持」,一等就是半年。

2.2 算力与功耗的权衡:别被纸面数据骗了

很多人选芯片,只看TOPS。这是个误区。

我举个例子。Jetson Xavier NX标称21 TOPS,Coral TPU标称4 TOPS。但如果你跑的是MobileNetV2,Coral的实测帧率反而更高。为什么?因为TOPS是理论峰值,实际要看算子匹配度。

我的建议:选型时,拿你的模型去跑一遍。别信PPT。我每次选型都会做三件事:

  1. 拿目标模型在芯片上跑benchmark
  2. 测满负载下的功耗和温度
  3. 看散热方案能不能压住

功耗这块,我吃过亏。有一次用Jetson TX2做户外设备,夏天40度,芯片直接降频,帧率从30fps掉到8fps。后来加了风扇才稳住。你想想看,如果项目要求无风扇设计,那功耗就得控制在10W以内。

2.3 外设接口选择:摄像头和显示是关键

视频流AI分析,核心外设就是摄像头。接口选不对,后面全白搭。

2.3.1 摄像头接口

  • USB摄像头:即插即用,但延迟高。适合原型验证。
  • MIPI CSI接口:延迟低,带宽大。我所有量产项目都用这个。
  • GigE Vision:工业级,传输距离远。适合工厂场景。

我个人习惯,能用MIPI就不用USB。为什么?USB走的是UVC协议,CPU要参与解包,占用高。MIPI直接走ISP,硬件加速,省CPU。

2.3.2 显示接口

如果你需要本地显示,HDMI和DP是标配。但注意,有些Jetson模块的HDMI和CSI是复用的,不能同时用。我当年做智能摄像头就栽在这上面——接了摄像头,HDMI就没信号了。

2.3.3 其他接口

接口 用途 注意事项
PCIe 接加速卡、SSD Jetson只有x4通道
GPIO 控制继电器、LED 注意电平转换
CAN 车载通信 部分NPU不支持
避坑指南:我曾经选了一款NPU,发现它没有硬件编码器。视频流要回传服务器,全靠CPU软编码,CPU直接飙到90%。后来换了带硬件编码器的芯片才解决。所以,选型时一定要看有没有硬件编解码单元。

2.4 我的选型决策树

最后,我分享一个自己的决策流程。你照着走一遍,基本不会错。

  1. 先看功耗预算:无风扇选10W以内,有风扇可以放宽到30W。
  2. 再看模型复杂度:轻量模型(MobileNet)选TPU或NPU;重量模型(ResNet、YOLOv5)选Jetson。
  3. 然后看生态:团队熟悉PyTorch?选Jetson。熟悉TF?TPU也行。
  4. 最后看接口:摄像头数量、分辨率、帧率,决定了你需要多少CSI或USB带宽。

嗯,这一章内容不少。你消化一下,下一章我们聊软件架构——怎么把视频流从摄像头一路送到AI模型里。