做边缘端 AI 项目这几年,我发现自己被问得最多的问题永远是同一个:到底选哪块芯片?
很多朋友的提问方式是这样的:“RK3588 能不能跑 YOLOv8?”“Jetson Orin Nano 散热压不压得住?”“Hailo-8 是不是比英伟达香?”说实话,这些问题都没问到点子上。边缘端 AI 算力选型的核心逻辑,从来不是“哪块芯片参数堆得高”,而是“你的场景到底需要什么算力,然后从场景需求倒推芯片型号”。场景反推,是我在多个落地项目里验证过最不容易翻车的思路。
为什么一定要反推?因为边缘端和云端完全是两个物种。云端算力几乎没有边界,买卡加节点就行,选型主要看单位成本;边缘端不一样,它要在功耗、散热、成本、体积、时延、可靠性这几个维度里同时找平衡。同一块板子,放在产线机柜里和放在户外太阳能供电杆上,结论完全可能相反。这篇文章只讲一件事:拿到一个具体业务场景,如何一步一步推算出需要的边缘端 AI 算力,再落到具体芯片方案上。会附上我实际踩坑和实测的经验,希望对正在做设备选型的朋友有帮助。
1. 先弄明白“算力”到底在算什么
1.1 算力单位与精度格式:TOPS、TFLOPS 和 INT8/FP16/FP32/FP64
选型时第一道坎,是读懂芯片规格表上的算力数字。边缘端 AI 芯片经常标着“6 TOPS”“40 TOPS”,这里的 TOPS 全称是 Tera Operations Per Second,意思是每秒能做多少万亿次运算。注意,这个“运算”默认指 INT8 定点运算,因为在边缘端做推理,主流就是把模型量化到 8 位整数,既能压体积,又能提速。
GPU 和部分 SoC 则更爱用 TFLOPS(Tera Floating-point Operations Per Second),对应的精度通常是 FP16 或 FP32。FP64 是双精度,多用在科学计算和仿真,边缘端很少碰;FP32 是单精度,传统 DSP 和 MCU 用得比较多;FP16 半精度在深度学习训练和云端推理里常见;INT8 则是边缘端推理的主力。这几者的算力数值一般是成倍递减的。同一个硬件,FP16 的峰值往往是 FP32 的 2 倍,INT8 的峰值又往往是 FP16 的 2 倍,因为单次运算位宽越低、同一周期能算的数据量越大。有些芯片会标“6 TOPS INT8,3 TOPS FP16”,如果你没搞懂格式,拿 INT8 的数字去套 FP16 模型,最后帧率对不上,是必然的。
| 精度格式 | 位宽 | 典型用途 | 边缘端推理中的角色 |
|---|---|---|---|
| INT8 | 8bit | 边缘端推理、模型量化压缩 | 主力,绝大多数 NPU 以它为标称 |
| FP16 | 16bit | 深度学习训练中间状态、部分推理 | 常见于 GPU,精度高但算力约为 INT8 一半 |
| FP32 | 32bit | 传统算法、CPU 推理、训练基线 | 边缘端较少直接使用 |
| FP64 | 64bit | 科学计算、仿真 | 边缘端基本不涉及 |
搞懂这些之后,建议所有选型对比都统一到“INT8 TOPS”这个坐标里。如果一家芯片只标 FP32 TFLOPS,你要么自己按比例换算,要么干脆不列入候选,因为这说明它的产品定位根本不是边缘 AI 推理,后面大概率会踩算子支持的坑。
1.2 算力不等于跑模型的速度
很多朋友看到“6 TOPS”就以为“每秒 6 万亿次运算,跑个 0.5 TOPS 的模型不是轻轻松松?”。真这么简单的话,选型就不需要讨论了。实际推理帧率,取决于四个因素:内存带宽、NPU 利用率、算子映射质量、数据搬运开销。算力只是天花板,不是实际交付。
打个比方,看车子极速能判断它适不适合跑市区通勤吗?不能。市区平均速度还得看红绿灯、拥堵、路况。NPU 内部算子调度就是“红绿灯”,DDR 带宽就是“路况”。一个模型如果某些算子不支持 NPU、全部掉到 CPU 上跑,哪怕芯片标称 10 TOPS,实际能感觉到的算力可能只有 10%。我见过最典型的例子,是某国产芯片跑一个新出来的注意力机制模型,标称 6 TOPS,实测帧率还不如一个标称 2 TOPS 的老平台,就是因为新算子没做适配,模型里大半计算回到了 CPU。
所以算力数字的作用,是帮你做“预筛”,而不是“定胜负”。当模型的理论需求已经超过芯片标称算力的 60%,基本可以提前把这块芯片从清单里划掉了,因为加上算子开销和系统损耗,实际余量远远不够。至于怎么快速估算模型理论需求,我放到下一节讲。
2. 从场景反推算力需求的四步法
2.1 把需求拆成可量化指标
反推的第一步不是挑芯片,而是把业务场景翻译成算力语言。不管你是做产线缺陷检测、园区安防、农林监控还是智慧交通,最终都要落到四个量化指标上:输入分辨率、处理帧率、模型复杂度、允许时延。
拿工业缺陷检测举例。你选了 200 万像素的工业相机,意味着每帧图像大概是 1920×1080,或者更大;目标是一秒处理 30 帧,也就是 30 FPS;你打算跑一个 YOLOv5s 级别的目标检测模型;同时检测结果必须在 50ms 内返回给机械臂控制系统。这四个参数一旦定下来,算力需求就是确定性计算题了,而不是拍脑袋。如果场景里有多路相机,需要再乘以路数。经常有朋友问我“RK3588 能接几路相机”,我反手给他一句话:先问模型和分辨率,再问路数,因为有一路 4K 输入且要每帧检测,可能比四路 720p 只存流不检测更吃算力。
这里还要插一句工业相机选型的经验。相机的分辨率、帧率、曝光方式、触发信号会直接决定整个视觉系统的数据量,而数据量就是后面算力带宽的压力源。如果只是看静态产品位置,用全局快门相机加软件触发就能省钱;如果要抓高速运动零件,就得考虑更高帧率和更短曝光,这时芯片不仅要算得动,还要接得住相机灌进来的数据。所以选边缘算力芯片之前,先把相机方案定死,后面才不会反复改。
2.2 用模型复杂度快速估算算力下限
模型复杂度的常用度量是 MACs(乘加运算次数)或者 GFLOPs(十亿次浮点运算)。在推理场景里,一次乘加操作可以粗略算作一次算力消耗。已知一个模型的 GFLOPs 和你要跑的 FPS,理论所需算力可以这样估算:
理论 INT8 算力(TOPS)≈ 模型 FLOPs(G) × FPS ÷ 1000
以 YOLOv5s 为例,输入 640×640 时,模型大约有 16.5 GFLOPs。要跑到 30FPS,算一下:
16.5 × 30 ÷ 1000 = 0.495 TOPS
也就是说,理论上 0.5 TOPS 的 INT8 算力就够了。但你千万别真的拿 0.5 TOPS 去选型。原因有几个:第一,NPU 实际利用率很难达到 100%,常见在 30%~60% 之间;第二,图像缩放、归一化、非极大值抑制、解码显示这些前后处理还要占 CPU;第三,系统要留出余量应对突发多任务。所以我实际选型会按“理论值 × 3 到 5 倍”来定最低算力,也就是这个场景至少选 2 TOPS 左右的 INT8 平台,还要保证 CPU 足够强。
如果是 YOLOv8m 这种更重的模型,GFLOPs 可能是 60~80,同样 30FPS,理论需求就到了 2 TOPS 以上,实际算下来就得 8~10 TOPS 才稳妥。这也是为什么同样的板子,有人跑 YOLOv5 顺滑,有人跑 YOLOv8 卡成 PPT,不是板子不行,是需求没对上。
2.3 算清带宽需求,别让数据饿死 NPU
算力算完之后,紧接着算内存带宽。这是个经常被忽略的隐藏杀手。NPU 算得再快,如果数据从 DDR 搬到片上内存的速度跟不上,一样会空等。
粗略估算带宽需求,可以看模型中间特征图的大小和输入图像大小。比如 1920×1080 的 RGB 图,一帧原始数据是:
1920 × 1080 × 3 ≈ 6.2MB
如果 30FPS,每秒光输入图像数据就是 186MB。模型计算过程中要反复读写中间特征图,实际需求往往是这个数值的几倍到几十倍。所以一个边缘设备如果内存总线太窄、DDR 频率太低,哪怕 NPU 标称很高,也会出现“GPU/NPU 利用率只有 40%,帧率还是上不去”的尴尬。
选型时我一般这样判断:跑目标检测类模型,内存带宽不低于 128bit LPDDR4X 级别,最好选支持 LPDDR5 的芯片;如果平台支持 RGA 硬件缩放、DMA 直传这类特性,能显著缓解带宽压力。这部分参数在芯片数据手册里通常有,前期的经验和实测往往是在这一步拉开差距的。
3. 主流边缘端 AI 芯片与平台怎么选
3.1 传统 MCU 级别:ESP32-S3、STM32N6
先看最入门的档位。很多人觉得边缘端 AI 至少得跑 Linux,其实大量场景用 MCU 就够了。如果你只做关键词唤醒、异常声音识别、振动波形分析、简单的图像分类,没必要上八核 ARM 加 NPU 的大家伙,一个带向量加速指令的 MCU 就能搞定。
ESP32-S3 是我用得最多的低端方案。它自带的向量指令可以做 8 位 SIMD 加速,配合 TensorFlow Lite Micro 或 ESP-DL,能跑几 MB 的小模型,适合做唤醒词、跌倒检测、手势识别这类轻量任务。成本极低,开发资料多,电池供电也好设计。不过它没有真正意义上的 NPU,只适合跑非常小的模型,别想着拿它跑 YOLO。
另一类是 STM32N6,ST 新推的 MCU 内置 NPU,INT8 算力大概在 600 GOPS 级别,约 0.6 TOPS。虽然数字不大,但对于 MCU 平台已经是质的飞跃,可以跑图像分类、小型目标检测。我在一个低功耗产品评估里试过 STM32N6,模型经过 ST Edge AI 工具优化后,时延和控制 MCU 时代完全不是一个级别。这类平台适合对体积、功耗、成本极度敏感的电池设备,量产后单颗芯片成本能在几十元以内。
3.2 Linux SoC 级别:瑞芯微 RK3588、Jetson Orin Nano
中间档位,也是绝大多数边缘视觉项目的落点。当前最火的两个平台,一个是瑞芯微 RK3588,一个是 NVIDIA Jetson Orin Nano。我把它们的差异说透。
RK3588 的 NPU 标称 6 TOPS INT8,CPU 是 4×Cortex-A76 加 4×Cortex-A55,内存常见配套 LPDDR4X 或 LPDDR5。优势是国产供应链稳定,资料中文多,支持多路视频编码解码,价格适中,开发板和核心板选择非常丰富。实际项目里,6 TOPS 跑单路或双路 YOLOv5s 量化版是比较舒服的,跑三路以上就要仔细优化了。Orin Nano 这边,普通版 8GB 模组标称 20 TOPS,后续推出的 Orin Nano Super 开发者套件把算力提成了 40 TOPS,性能提升很直观。优势是有完整的 CUDA 生态、TensorRT 优化工具,模型兼容性极好,基本主流模型都能跑;劣势是功耗和散热要求更高,模组价格也贵一截,而且货源和交期在一些区域需要提前规划。
| 维度 | 瑞芯微 RK3588 | Jetson Orin Nano |
|---|---|---|
| NPU/GPU 算力 | 6 TOPS(INT8) | 20~40 TOPS(INT8,取决于版本) |
| 生态 | RKNN 工具链,国产文档丰富 | CUDA/TensorRT,全球生态完善 |
| 功耗 | 整板 10W~15W | 10W~25W 模式可选 |
| 成本 | 板卡千元以内到一千出头 | 开发板两三千起 |
| 推荐场景 | 多路视频、工业现场、成本敏感 | 模型复杂、需要快速迭代、CUDA 套件依赖 |
选择逻辑也很简单:如果项目要量产、成本敏感、现场高温环境多,RK3588 大概率是更务实的选项。如果你还在模型迭代期,想要最好的工具链兼容性,或者模型必须跑 FP16 精度才达标,Orin 平台会省很多调优时间。
3.3 AI 加速协处理器级别:Hailo-8、Coral Edge TPU
有时候 SoC 自带 NPU 不够,又不想整个平台推到重来,可以走外挂加速器路线。Hailo-8 是典型的例子,INT8 算力标称 26 TOPS,功耗能做到 2.5W 左右,通过 PCIe 或 M.2 接口接在主控芯片旁边。Google Coral Edge TPU 则适合轻量场景,算力 4 TOPS,功耗极低,USB 接口插上就能做原型验证。Intel Movidius 系列曾经也很火,但说实话已经进入生命周期收尾阶段,新项目我不建议再踩进去。
外挂加速器听起来很美,实际要付的代价是“数据搬家”。原始图像数据要过一遍主控的内存和总线进加速器,算完结果再传回来,这中间的延迟和带宽消耗并不低。如果主控本身很弱,外挂加速器反而会成为瓶颈。所以我的建议是:如果主控 SoC 选型阶段就预见到算力缺口,优先换更高算力的 SoC;只有当你手里的主控已经定死、暂时无法更换,才认真考虑外挂方案。
4. 信号完整性与周边配套:别让选型死在电源和接口上
4.1 电源、看门狗、TVS 管、电感这些“不上镜”的料
做过的项目多了会发现,很多边缘 AI 设备不是芯片算力不够,而是死在供电、防护这些小料上。现场一打雷、一启动大电机,设备就掉电重启,检测系统直接停工。这时候换再贵的芯片也没用。
电源部分,电池供电设备要特别关注锂电池保护 IC,常见方案里会出现 8205A 这类双 N-MOS,配合保护芯片实现过充过放保护,选型时注意导通内阻和封装散热;DC-DC 降压芯片则要关注最大输出电流和开关频率,高频方案能用更小电感但纹波控制难度高。TVS 管选型的核心原则是:反向工作电压要比系统最高工作电压留 20% 以上余量,同时钳位电压不能损坏后级芯片。电感选型方面,额定饱和电流要大于实际峰值电流的 1.5 倍,否则磁芯饱和后电感值暴跌,纹波和噪声会直接干扰模拟视频和传感器信号。这些事看着琐碎,却是 7×24 小时连续运行的边缘设备的保命基础。
看门狗芯片也是必须提的一项。虽然大部分 SoC 内部有看门狗,但有些死机状态连内部看门狗都救不回来,或者系统时钟本身异常导致看门狗失效。我习惯在工控级边缘盒子里外挂一颗硬件看门狗,主控死机后能强制断电重启。加上系统里跑独立的监控进程,任何一环挂了都能自动恢复。别小看这成本只有几毛钱的料,它能帮你省掉不少差旅费。
4.2 散热与功耗预算:每瓦 TOPS 比 TOPS 更重要
选型的时候不能只看算力,要看“每瓦 TOPS”和“整板功耗预算”。同样 6 TOPS,RK3588 跑到满载,好一点的工业散热方案能把结温压在 70℃ 以内;有些紧凑结构盒子里没有风道,又不许开孔,那就只能降频运行,等于实际算力打折。
散热设计这块我吃过亏。早期做一台户外抓拍设备,选了一颗性能不错的芯片,但没注意壳体的散热面积,夏天太阳一晒,运行半小时 NPU 就降频到峰值的一半,检测漏报率飙升。后来在硬件结构上加了铝制散热鳍片,固件里加了温度分档降频策略,才算把问题压下去。所以你在选芯片阶段就要想清楚:整机功耗预算是多少?结构上能不能加风扇?运行环境有没有粉尘和高温?这几个问题直接决定哪些芯片能进候选清单。
4.3 评估板选型与开发成本别忽视
最后一步从芯片落到开发板。评估板选型要看三样东西:外设接口是否齐全、启动方式是否合理、配套散热是否到位。瑞芯微的评估板生态选择多,几百到一千多都有,适合快速验证。Jetson Orin Nano 开发套件的资料最全,但价格高一些,而且启动过程和模块化设计有它的特殊坑。比如 Jetson 模组使用 QSPI 启动芯片,有些朋友想更换更大容量或更快的 QSPI 芯片,结果烧录后模块无法引导,还得用恢复模式重刷,折腾半天。遇到这类问题,先确认 QSPI 器件的兼容列表,再确认原厂刷写工具支持,不要直接拿普通编程器乱写。
评估板阶段还容易忽略的是物料成本和生产成本。开发板跑通了,到量产的整机成本可能比开发板贵 3~5 倍,加上外壳、电源适配器、散热、线束,成本要重新算一遍。所以别被开发板的价格误导,从一开始就按“整机 BOM 成本”做预算。
5. 实操案例:从两套典型场景反推最终选型
5.1 场景 A:产线零件缺陷检测
需求描述:一条五金零件产线,用一台 200 万像素工业相机拍摄零件表面,要求 30FPS 实时检测划痕和变形,检测结果要在 50ms 内返回给 PLC,现场有粉尘、环境温度 35℃ 左右,设备需要 24 小时连续运行。
按前面四步法推演:输入分辨率 1920×1080,模型采用 YOLOv5s 定制版并量化到 INT8,模型 FLOPs 大约 16G,30FPS 对应理论算力 0.48 TOPS;考虑 NPU 利用率和 CPU 后处理,我按理论值 4 倍余量定到 2 TOPS。再算带宽,单路输入每秒 186MB,加上特征图读写,至少需要 128bit LPDDR4X 起步。最终我把平台定为 RK3588,因为它 6 TOPS 的 NPU 和充足的 CPU 资源完全够用,工业级核心板方案成熟,整机功耗 12W 左右也容易被现有产线机柜接受。
实际部署时用 RKNN 工具链把 ONNX 模型转成 RK3588 的 INT8 目标模型,转换前后用几百张现场图像做量化校准,精度损失能控制在可接受范围。跑起来之后,单路检测的时延实测在 25~35ms 之间,CPU 占有率约 40%,NPU 占有率约 60%,仍然有较大余量。这个余量很重要,因为现场偶尔会有 PLC 触发多帧连拍的需求,只有预留足够算力才不会在关键时刻掉链子。
5.2 场景 B:户外低功耗人体闯入监测
需求描述:在无市电的果林里装一套太阳能供电的人体闯入监测设备,要求用低功耗摄像头持续待机,有人出现时 5 秒内抓拍并回传告警,整机平均功耗尽量低于 2W。
这种场景和产线完全不同,算力反推的结果也会大幅下降。模型不是每帧全跑的,而是先靠 PIR 红外传感器做粗粒度唤醒,再启动摄像头抓拍一帧,把这帧图像交给小型分类或检测模型判断“有没有人”。模型规模可以压得很小,比如 MobileNetV1 的轻量裁剪版或 MCUNet,FLOPs 只有 0.1G 量级。按抓拍任务算,理论算力需求不到 0.01 TOPS,但要求持续待机功耗极低,所以典型方案是 ESP32-S3 加低功耗摄像头,配合 PIR 外部中断唤醒,把整机平均功耗压到 1W 以内。有人时抓拍和推理,没人时深度睡眠。
这个案例的教训是:不要把产线场景的“算力越大越好”思路带进来。户外电池场景里,算力够用即可,重要的是功耗和唤醒策略。同样一个检测模型,在 RK3588 上跑得很轻松,但整机 12W 功耗和 2W 的预算差了 6 倍,方案直接不成立。
5.3 两套场景的选型清单对照
| 场景 | 模型与输入 | 理论算力需求 | 推荐平台 | 关键制约 |
|---|---|---|---|---|
| 产线单目缺陷检测 | YOLOv5s 量化版,1080p,30FPS | 约 0.5 TOPS,按 4 倍余量选 2 TOPS | RK3588 | 稳定性、散热、工业防护 |
| 户外电池人体检测 | 轻量 CNN,抓拍模式 | 小于 0.01 TOPS | ESP32-S3 | 待机功耗、唤醒时延 |
| 多路园区周界检测 | 多路 720p 检测,并发 | 3~5 TOPS 起步 | RK3588 或 Orin Nano | 内存带宽、整机功耗 |
| 新模型快速迭代验证 | 目标检测/分割大模型 | 5 TOPS 以上 | Jetson Orin Nano Super | 开发效率、预算 |
这张表不是标准答案,而是展示“从场景反推”的落地形态。同样的业务,换一个环境,结论可能就要改。
6. 常见问题与排查技巧实录
6.1 芯片标称算力很高,但跑不出预期帧率
如果你拿到一块开发板,换上自己训练的模型之后发现帧率远低于理论预期,不要先骂芯片,先做三个排查:看模型算子是否全部被 NPU 加速,很多模型里的某些层(比如动态尺寸的 Resize、部分激活函数)会掉到 CPU 执行,这是最常见的性能杀手;看推理框架是不是没开量化,有些板子默认跑 FP16 甚至 FP32,算力直接打对折;看输入图像预处理是否反复拷贝,RK3588 这类平台建议把 letterbox 和归一化放到 RGA 或 NPU 前置处理里,不要在主循环里用 CPU 做。
我的经验是,在选型之前就先把模型的算子兼容性列表拉出来。跑一遍转换工具,看看哪些层不支持、哪些层警告性能低,比等硬件到货再排查省半个月时间。选型选的不只是芯片,也是工具链成熟度。
6.2 掉帧、丢检测,先查内存带宽与 DDR 频率
掉帧不一定是算力不够。常见现象是:NPU 利用率看起来不高,但整体帧率提不上去,或者跑一段时间后开始掉检测。这大概率是内存带宽瓶颈或者 DDR 访问冲突。
自查顺序是:先看推理框架的耗时分布,是算子耗时高还是数据搬运耗时高;再看内存配置,DDR 频率是否跑到了标称值;最后看有没有其他外设抢占带宽,比如多路摄像头 DMA 和显示控制器。RK3588 上如果一路 4K 视频编码同时进行,NPU 数据带宽确实会被挤占,需要调整编码器的抽帧策略或降低视频码率。Orin 平台可以用tegrastats实时看 CPU/GPU/内存占用,确认瓶颈再下手。硬件选型阶段如果带宽吃紧,优先考虑更高主频的 LPDDR5 方案,比单纯堆算力有效。
6.3 发热降频,一跑 AI 就死机
这块我要说一个比较扎心的经验:边缘设备“一跑 AI 就死机”,绝大多数不是芯片算力不行,而是电源余量不足。NPU 满载时电流尖峰很大,如果电源适配器只有标称电流的 1.2 倍左右余量,电压跌落就会触发芯片复位。我见过一个项目,换了原装大功率电源之后,死机问题直接消失。
散热方面,别只看 CPU 温度,很多 NPU 芯片有自己的温度传感器,降频更激进。例如 RK3588 的 NPU 在高负载下温度上升很快,壳体散热做得差,跑十分钟就会触发降频。处理办法有几种:增加接触式铝片或均热板,在固件里把 NPU 的调频曲线改成阶梯式降频而不是断崖式,或者调整任务调度,让检测任务避开 CPU 高负载时段。总之,不要指望被动散热能压住满载边缘 AI 设备,至少在开发阶段不要省散热件。
6.4 快速选型的决策清单
活动里我经常被要求给出一个“抄作业”清单,这里整理一份:
- 明确模型和输入规格:模型结构、FLOPs、输入分辨率、推理时延目标。
- 用公式估算理论算力:FLOPs(G) × FPS ÷ 1000,再乘 3~5 倍作为候选下限。
- 列出候选平台:比较 INT8 算力、内存带宽、功耗、价格、工具链、货源。
- 找评估板实测:跑真实量化模型,记录帧率、温度、CPU/NPU 占用。
- 周边配套同步设计:电源、TVS、看门狗、散热、线缆,提前进 BOM。
- 给系统留 30% 以上余量,别把算力吃到 90% 以上再上线。
我一直保留这个习惯:在项目启动第一周就把“算力需求表”算出来,贴在工位上。后面每换个模型、加一路相机,都先回那张表上更新数字。很多选型翻车,本质上是需求量化不彻底,最后只能靠硬件堆料来补救。
最后再分享一点个人体会:边缘端 AI 算力选型的“最优解”,往往不是参数最强的那块芯片,而是在功耗、散热、成本、开发效率、供应链之间妥协得最合理的那个组合。参数焦虑没必要,先把场景拆清楚,数字算明白,芯片自己会浮出水面。