第二章 硬件平台选型:边缘计算设备与算力评估
做工业缺陷检测模型移植,第一步不是调模型,而是选硬件。
我见过太多团队,模型在服务器上跑得飞起,一到产线就卡成PPT。为什么?硬件没选对。这一章,咱们就把边缘计算设备、NPU与GPU的差异、算力评估方法这几个硬骨头啃下来。
2.1 主流边缘计算设备:三足鼎立
目前工业视觉领域,主流边缘设备就三家:NVIDIA Jetson、瑞芯微RK系列、算能(SOPHGO)。我三个平台都折腾过,各有脾气。
| 平台 | 代表型号 | 核心优势 | 典型场景 |
|---|---|---|---|
| NVIDIA Jetson | Orin NX / Xavier NX | 生态成熟,CUDA/TensorRT支持好 | 高精度检测、多路视频 |
| 瑞芯微 | RK3588 / RK3568 | 性价比高,NPU功耗低 | 单路检测、轻量模型 |
| 算能 | BM1684 / SG2300 | 自研TPU,INT8推理效率高 | 安防、工业质检 |
我的经验:如果项目预算充足、算法团队有CUDA经验,无脑选Jetson。如果追求极致性价比、产品量大,瑞芯微是首选。算能适合对功耗敏感、且愿意花时间适配工具链的团队。
2.2 NPU与GPU的差异:别搞混了
很多人以为NPU就是低配GPU,其实不是。GPU是通用并行计算单元,NPU是专用神经网络加速器。说白了,GPU能跑图形、科学计算、AI;NPU只干AI这一件事,但干得又快又省电。
| 对比维度 | GPU | NPU |
|---|---|---|
| 计算单元 | 大量CUDA Core / Stream Processor | 专用MAC阵列 + 数据流控制器 |
| 精度支持 | FP32/FP16/INT8 | INT8/INT4为主,部分支持FP16 |
| 灵活性 | 高,支持任意算子 | 低,需算子对齐 |
| 功耗 | 高(15W~300W) | 低(2W~15W) |
| 工具链 | 成熟(TensorRT、CUDA) | 碎片化(RKNN、BMNNSDK) |
避坑指南:我曾经在一个项目中,把GPU上跑通的模型直接往NPU上搬,结果算子不支持,推理结果全错。后来花了整整两周重写算子替换方案。记住:NPU不是GPU的简化版,它是另一种架构。移植前一定要做算子兼容性检查。
2.3 算力评估方法:别只看TOPS
厂商都喜欢标TOPS(Tera Operations Per Second),但TOPS高不代表推理快。为什么?因为TOPS是理论峰值,实际推理速度受内存带宽、数据搬运、算子效率影响很大。
我个人习惯用“有效算力”来评估,公式很简单:
有效算力 = 模型推理帧率(FPS) × 单帧计算量(GMACs)
举个例子:
- 设备A:标称10 TOPS,跑YOLOv5s(4.5 GMACs)只能跑30 FPS
- 设备B:标称8 TOPS,跑同样模型能跑45 FPS
你说哪个强?设备B的有效算力更高。所以别被TOPS忽悠,拿你的模型去实际跑一跑才是王道。
2.4 算力评估四步法
我总结了一套评估流程,每次选型都这么干:
- 确定模型基线:在PC上用FP32跑一遍,记录FPS和精度
- 量化校准:转INT8,看精度损失是否在容忍范围内(一般<1%)
- 目标板实测:在边缘设备上跑量化后的模型,记录FPS、内存、功耗
- 余量评估:确保推理帧率是产线需求的1.5倍以上,留出预处理和后处理的时间
关键指标清单:
- 推理帧率(FPS)—— 核心指标
- 端到端延迟(ms)—— 含预处理+推理+后处理
- 内存占用(MB)—— 模型+运行时
- 功耗(W)—— 影响散热和稳定性
- 精度损失(%)—— 量化前后对比
2.5 知识结构图:选型决策流程
下面这张图是我自己画的选型决策流程,每次做项目都拿出来对照一遍:
2.6 实战案例:一个真实的选型过程
去年我帮一家电子厂做PCB缺陷检测,需求是:
- 检测速度:≥30 FPS
- 检测精度:≥99.5%
- 整机功耗:≤25W
- 成本:≤3000元
我拿YOLOv8n(3.2 GMACs)在三个平台上做了实测:
| 平台 | INT8 FPS | 精度损失 | 功耗 | 价格 | 结论 |
|---|---|---|---|---|---|
| Jetson Orin NX | 62 | 0.3% | 15W | ~3500元 | 超预算 |
| RK3588 | 45 | 0.5% | 8W | ~1200元 | ✅ 推荐 |
| 算能BM1684 | 38 | 0.4% | 12W | ~1800元 | 备选 |
最终选择:RK3588。虽然FPS不是最高,但满足30 FPS需求,功耗最低、价格最便宜。省下的预算用来加装散热和工业相机,整体方案更均衡。
嗯,这里要注意:选型不是选最强的,而是选最合适的。你想想看,产线对稳定性要求极高,功耗低意味着发热小,发热小意味着故障率低。这个道理,吃过亏的人都懂。