1. 先想清楚“从场景反推”:边缘端AI算力选型的底层逻辑
1.1 为什么对着参数表选型总是翻车
很多人做边缘端AI算力选型的时候,习惯先把各家芯片的TOPS、内存、接口列成一张大表,挑一个看起来最划算或者算力最大的,然后再去想这个项目到底跑什么模型。这条路我走过,翻车率真的很高。真正靠谱的姿势是反过来:先不急着比芯片,把场景需求一项一项拆到足够细,再用这些需求去框定芯片,你会发现能选的型号根本就没几个。
我接手过一个产线质检项目,客户要求40帧每秒、1280乘1024灰度图、实时检测划痕和脏污。我一开始在全志和瑞芯微之间比价格,比了快一周,后来测试才发现真正的瓶颈根本不是NPU算力,而是图像接口和内存带宽。单路千兆网口工业相机理论带宽约125MB/s,这个分辨率和帧率下每路大约要吃掉52MB/s,两路就逼近网口极限了,更别说还要留带宽给推理数据搬运。把需求量化之后,选型范围一下从几十个型号缩到三五个,问题才真正开始有解。
这个案例给我一个很强烈的教训:边缘端芯片是整个系统的钉子,场景才是锤子。你拿锤子去找钉子,是把自己的项目硬塞进芯片的框框里,大概率要牺牲性能或者堆高成本。反过来,先量好锤子要砸多深、多久砸一次、在什么环境下砸,再挑钉子,选出来的方案才是能落地的。这就是“从场景反推芯片”这个思路的核心。
1.2 场景反推的五个关键维度
我现在的做法是,接到一个边缘AI项目,先不碰任何芯片资料,先把下面五个维度逐个问清楚、写下来。
- 任务类型:到底做什么AI任务。目标检测、图像分类、语义分割、姿态估计、语音唤醒、异常声音检测、振动信号分类,这些任务的模型参数量和计算量差距非常大。目标检测动不动就是几十GFLOPs,关键词唤醒可能整个模型压缩后不到1MB。
- 输入数据:图像分辨率多大,是VGA还是500万像素;帧率要求多少,是1帧还是30帧;同时接几路;是USB、MIPI、千兆网还是RTSP拉流。很多项目死在接口数量和带宽上,而不是算力上。
- 部署环境:室内还是室外,有没有粉尘、振动、宽温要求;供电方式是什么,锂电池、POE、12V/24V工业电源还是太阳能加电池;有没有断电保护需求。这些直接决定了芯片温度等级、整板功耗预算和外围电路设计。
- 量产预期和成本区间:是做50台样机验证,还是奔着半年后年产5万台去。样机阶段可以用几千块的开发板跑通,量产阶段就要算核心板和外围器件的BOM成本,差距往往在2到10倍。
- 生命周期与维护:芯片的供货稳定性能不能覆盖产品生命周期,SDK维护承诺到什么时候,设备在现场怎么远程升级和故障恢复,需不需要硬件看门狗和冗余设计。工业客户的项目一做三五年很常见,芯片停产一次就够你喝一壶。
这五个维度梳理完之后,整理成一张表格贴在项目文档开头,选型过程中的每一次争议都可以回到这张表来对质。
| 维度 | 要明确的问题 | 对选型的影响 |
|---|---|---|
| 任务类型 | 检测/分类/分割/语音/异常信号 | 决定模型计算量级和NPU算子偏好 |
| 输入数据 | 分辨率、帧率、路数、接口 | 决定内存带宽、解码能力和接口方案 |
| 部署环境 | 温宽、防护、供电、振动 | 决定芯片工业级/商业级、散热和电源方案 |
| 量产与成本 | 样机数量、目标BOM成本 | 决定核心板和自主设计路线 |
| 维护周期 | 供货年限、升级方式、故障恢复 | 决定SDK选型、看门狗和OTA设计 |
1.3 一套能落地的“反推”流程
有了上面的维度清单,实际的选型流程我会固定成五步,每一步都有明确产出物,不会陷在参数堆里出不来。
第一步是场景分析,把上面表格填满,输出需求清单。第二步是算法方案,先用PyTorch或者ONNX选一个能满足业务指标的模型,比如轻量级的YOLOv5s、YOLOv8n、MobileNetV3,记录模型的参数量、GFLOPs和单帧内存占用,这一步甚至可以在选芯片之前做。第三步是量化指标,把帧率乘上单帧计算量,再考虑NPU实际利用率,算出一个“最小标称TOPS”,同时估算内存容量和功耗上限。第四步才是筛芯片,拿着这些数字去比对候选芯片的算力、内存、接口、功耗和价格,通常会筛出两到三个候选。第五步是拿官方评估板实测,把目标模型转换、量化、部署到板子上,测真实帧率、延迟、功耗和温度,用一周的实测数据做最终决策。
这套流程看起来慢,其实是最快的。跳过了场景分析直接选芯片的项目,十有八九会在开发中后期发现算力不够、接口不够或者成本超支,那时候返工的代价远比前期多花一周大得多。
2. 把场景翻译成算力指标:INT8/FP16与TOPS估算
2.1 INT8/FP16/FP32/FP64一表看明白
场景需求要变成芯片选型参数,绕不开精度格式和算力换算这件事。很多朋友问到底什么是INT8、FP16、FP32、FP64,这里用大白话解释一遍,它们本质上是数字在硬件里的“记账方式”。
FP32叫单精度浮点,用4个字节表示一个数,范围和精度都够用,训练模型和早期CPU推理都靠它。FP16是半精度浮点,只用2个字节,表示范围变小、精度变低,但对神经网络这种本身就有容错性的计算来说,大部分场景够用了,还能省一半内存带宽和存储空间。INT8是8位定点整数,只用一个字节,速度快、省内存,但取值范围只有-128到127,直接用会出大问题,所以要先做“量化”,把权重和激活值按比例映射到这个范围。FP64是双精度浮点,用8个字节,一般科学计算和仿真才用得到,边缘AI产品里基本不会碰。
从算力角度看,同代硬件里通常INT8的吞吐是FP16的2倍、FP32的4倍,但这不是铁律,不同厂商的NPU设计差异很大,有的计算单元对INT8和INT16效率接近。我的建议是不要纠结理论倍率,看官方标称的“INT8 TOPS”就够了,后面会讲怎么用它估算。
| 精度格式 | 占用字节 | 典型用途 | 边缘端适用性 | 相对算力参考 |
|---|---|---|---|---|
| FP64 | 8 | 科学计算 | 基本不用 | 低 |
| FP32 | 4 | 模型训练、精度敏感推理 | 部分MCU无硬件浮点则很吃力 | 基准 |
| FP16 | 2 | 混合精度训练、Jetson端推理 | 当算力和内存允许时用 | 约为FP32的2倍 |
| INT8 | 1 | 端侧NPU主力推理精度 | 最常用,省内存省功耗 | 约为FP32的4倍 |
2.2 从模型计算量推导最小标称TOPS
算力需求不要靠感觉,要能算出来。这里给一个我从实践里简化出来的公式:
所需标称TOPS = 实时帧率(FPS) × 单帧计算量(MACs × 2) ÷ NPU实际利用率
举个例子,YOLOv5s输入640乘640分辨率,单帧计算量大约16.5 GMACs,也就是33 GFLOPs左右。如果业务要求30帧每秒实时推理,那么理论算力需求就是30乘33等于990 GFLOPs,约等于1 TOPS。但任何NPU都不可能跑满百分之百,端侧NPU实际利用率做到40%到70%比较常见,取决于模型结构、量化方式和算子拼接的效率。按50%利用率算,实际需要约2 TOPS的标称INT8算力。这时候选一颗1 TOPS以下的芯片,跑YOLOv5s的30帧就是白日梦;选3到6 TOPS的芯片,才算留了余量。
这里还要提醒一个常见误区:如果是多路视频,不要简单把单路算力乘上路数。多路共用NPU时,因为可以复用预处理、批处理和权重加载,效率往往比逐路独立推理高一些,但也不能太乐观,建议按单路估算后乘以1.5到2倍作为并发余量。
| 模型 | 输入分辨率 | 单帧计算量参考 | 30FPS理论算力 | 50%利用率下标称需求 |
|---|---|---|---|---|
| YOLOv5s | 640×640 | 约16.5 GMACs | 约1 TOPS | 约2 TOPS |
| YOLOv8n | 640×640 | 约8.7 GMACs | 约0.5 TOPS | 约1 TOPS |
| YOLOv8m | 640×640 | 约79 GMACs | 约4.7 TOPS | 约9 TOPS |
| MobileNetV3-Large | 224×224 | 约0.7 GMACs | 约0.04 TOPS | 0.1 TOPS以内 |
这个表里的数字都是一个量级参考,具体看自己导出的模型打印信息。做选型时一定要把自己打算用的那个模型的真实计算量测出来,哪怕用ONNX的onnx_model_metrics跑一下也行。
2.3 别被标称算力带偏:效率和精度的两本账
标称TOPS只是纸面峰值,真正决定体验的是三件事:能利用多少、转化稳不稳定、精度撑不撑得住。
第一件是“能利用多少”。很多国产端侧NPU标称我从不用来看项目的杀手锏是文档里的一行小字,写得清清楚楚是INT8、是否稀疏、是否包含卷积以外的算子。有的芯片标称算力是靠稀疏化翻倍的,模型不稀疏就等于没有。另外,模型结构对利用率影响特别大。MobileNetV3这种大量深度可分离卷积的模型,在不少NPU上算子切分很碎,跑起来利用率不到30%;而一些规整的卷积网络反而能跑到60%以上。所以无论标称多好看,都一定用目标模型实测。
第二件是“转化稳不稳定”。同一个模型在GPU上跑一遍,帧率曲线很平缓;在端侧NPU上跑,可能某一层算子没走硬件加速,掉到CPU执行,延迟瞬间飙上去。这种不稳定带来的掉帧比算力不足更难受。测试的时候不要只看平均帧率,要看P95甚至P99延迟,数据波动大说明工具链还不成熟。
第三件是“精度撑不撑得住”。INT8量化之后,目标检测的mAP一般会掉1到3个点,语义分割可能掉得更多。如果业务精度红线很紧,要么花时间做量化感知训练,要么就直接选支持FP16推理的芯片,比如NVIDIA系列的Jetson。别把量化损失不当回事,等到现场效果不达标再去换芯片,整个项目就废了一半。
还有个细节是内存容量。算完TOPS一定要接着估算内存,只看算力不看内存同样是坑。典型YOLOv5s INT8模型文件约20MB左右,跑起来中间特征图和图像缓冲还要额外占用几十到上百MB,系统的Linux、摄像头驱动和算法进程也得占掉1GB上下。如果还要跑多路视频,内存缺口很快就暴露出来。所以4GB内存基本是当前端侧视觉项目的及格线,2GB只适合非常轻量的单路低分辨率场景。
3. 四档芯片选型图谱:从STM32到边缘服务器
3.1 第一档:MCU级(STM32、ESP32-S3)
有些项目其实根本不需要所谓NPU。比如语音关键词唤醒、振动异常检测、温湿度异常判断、简单的人体红外/毫米波信号分类,这些任务模型很小,用一颗带DSP和硬件加速指令的MCU就能搞定。
STM32系列里,H7系列带Cortex-M7核心和DSP指令,FP16、定点运算有一定加速,跑TensorFlow Lite Micro很顺。ESP32-S3更特别一点,带向量指令,官方提供了ESP-DL库优化神经网络算子,跑轻量级关键词识别或者手势分类这种1MB以内的模型完全可行。这类方案的优势是成本极低、启动快、功耗能压到几十毫瓦级别,很适合电池供电的小设备。
但MCU方案的上限非常明显:没有大算力,内存就几百KB到几MB,跑不了超过几兆参数的模型,也处理不了高分辨率图像。我的经验是,当模型参数量超过5MB,或者输入图像超过VGA分辨率时,就别硬撑MCU了,往上走一档更划算。选MCU时优先看内存容量、指令扩展支持和库生态,算力数字反而是次要的。
3.2 第二档:轻量级MPU/SoC(RV1126、RK3568、全志系列)
再往上走,就是专门为边缘视觉设计的轻量级SoC,算力大概在1到5 TOPS之间,最典型的就是瑞芯微RV1126、RK3568,全志的V853等。这档芯片适合单路到双路视频流、每路跑一个检测模型或者一个分类模型,场景比如工业视觉单点质检、小区门禁人脸识别、果园虫害监测终端。
RV1126自带ISP和视频编解码单元,针对摄像头应用做了很多优化,走USB摄像头或者MIPI接入,硬件解码后直接送NPU,算是入门级视觉方案的经典选择。RK3568的算力在1 TOPS上下,但胜在CPU性能强、接口丰富,可以跑Linux、接网口、串口、USB,适合需要跑一点点预处理逻辑和网络通信的轻量设备。
这档选型最忌讳的是只看算力。因为在这些SoC上,ISP质量、硬件编解码能力、NPU对CONV/BatchNorm的融合支持,直接决定开发难度。很多人在RKNN工具链上转模型,遇到不支持的算子就卡壳,所以才有了选型阶段必须跑工具链这个原则。顺便说一句,如果你对帧率要求只有1到5帧,分辨率也不高,很多1 TOPS芯片用前置CPU优化也能跑,不一定非要带NPU,可以省成本。
3.3 第三档:中高端边缘SoC(RK3588、Jetson Orin NX、地平线征程系列)
当场景变成“多路视频流加复杂模型”,比如智慧园区8路以上监控做结构化、农业采摘机械臂做实时目标检测和分割、自动巡检机器人要跑轻量Transformer,第二档就不太够用了。这时候进入中高端边缘SoC,代表产品是瑞芯微RK3588、NVIDIA Jetson Orin NX、地平线征程系列。
RK3588的NPU标称6 TOPS INT8,8核CPU加上硬件编解码,能同时解码十几路1080p视频,做6到8路轻量模型推理很从容,而且瑞芯微的工具链在中文社区里资料多,上手门槛低。Jetson Orin NX 16GB版本标称100 TOPS INT8,生态最强,支持TensorRT和DeepStream,能跑的模型体量高出两个级别,代价是价格贵、功耗高、必须有主动散热。地平线征程系列在视觉链路上有自己的积累,OE工具链对PyTorch模型转换支持好,在车载和安防场景有不少落地案例。
| 芯片 | 标称算力参考 | 内存 | 典型功耗 | 优势 | 需要注意 |
|---|---|---|---|---|---|
| RK3588 | 6 TOPS INT8 | 4-16GB可选 | 5-15W | 性价比高、接口丰富、中文资料多 | 大模型和大并发仍需实测 |
| Jetson Orin NX | 100 TOPS INT8 | 8/16GB | 10-25W | 软件生态全面、模型兼容性好 | 价格高、必须有散热 |
| 地平线征程 | 5-10 TOPS级 | 视方案而定 | 6-12W | 视觉链路优化好、工具链成熟 | 内部资料相对封闭,需申请 |
这一档选型最核心的分歧在工具链和成本模型之间。如果你的算法团队熟悉PyTorch和CUDA,Jetson上手最快;如果你希望硬件成本可控、供应链稳定,RK3588是很强的候选;如果项目是长期批量出货的视觉设备,地平线这类面向行业视觉的SoC也可以认真评估。
3.4 第四档:边缘计算盒/轻量服务器级
最后还有一个经常被忽略的档次:当单路视频变成16路以上,或者要跑的模型大到YOLOv8m都嫌轻的时候,单板SoC的算力、带宽、内存都不可能满足,这时候该考虑的是边缘计算盒或者轻量级服务器形态。
很多团队特别不愿意跨过这条线,总想用SoC单板压榨成本,结果就是多路视频掉帧、发热死机、模型推理排队,整体调试成本远高于一台边缘盒子。边缘盒子通常基于X86加NVIDIA独显,或者专用AI加速卡,有的还带丰富的工业接口和硬件RAID,本质上是把数据中心那套东西浓缩到接近工业PC的形态里。它的优势是计算密度高、开发方式跟服务器一致,很多云端代码可以无缝迁移,劣势是功耗、体积和成本都高出一个量级。
我的判断标准很简单:如果推理需求超过单板SoC能够稳定承载的50%,就别硬扛,直接上边缘盒子。项目是追求极致成本还是追求快速落地,这一步要想清楚。边缘盒子的选型重点跟前面完全不一样,主要看GPU型号、显存大小、扩展槽位、接口数量和散热风道,而不是只看TOPS。
4. 选型不是只挑SoC:配套硬件与工具链同样决定成败
4.1 电源、保护、看门狗:容易被外围电路卡住的选型点
芯片选完,真正的硬件坑才开始。我见过太多项目,NPU算力、工具链都验证过了,结果死在配套电路上。这里挑四个最常见也最容易翻车的器件聊一聊。
电源芯片是重中之重。边缘设备常见供电是12V或24V工业电源,到SoC侧要经过DC-DC降压到5V、3.3V、1.8V等多路。降压电路的核心元件就是功率电感和电源控制芯片。电感选型按公式算感值,L等于输入输出电压差乘输出电压,除以纹波电流乘开关频率乘输入电压。这个公式很多人会背,但真正实战时经常栽在电感的饱和电流上。电感的饱和电流如果低于实际峰值电流,随着温度升高电感量会掉,电源纹波变大,严重时烧MOS管。所以选电感时饱和电流至少留出30%以上的余量。
如果是锂电池供电的产品,锂电池保护IC也是必选项。市面上很常见的8205系列,内部其实是两个N沟道MOS管,配合保护板主控实现过充、过放、过流保护。选型时关注它的内阻、耐压和持续电流能力,引脚功能看着简单,实际焊错接反的案例多得是,画板前一定要对着规格书的封装仔细核对。
TVS管用于防浪涌。工业现场的雷击浪涌、电机启停带来的尖峰,都会从电源线或信号线灌进设备。TVS选型主要看三个参数:反向关断电压要高于正常工作电压、钳位电压要低于被保护器件的耐压、峰值脉冲功率要大。很多设备过不了浪涌测试,不是TVS型号不对就是安装位置离接口太远,保护效果大打折扣。
看门狗芯片在一些车载和工业设备上非常必要。无人值守设备跑飞了,需要硬件看门狗在几百毫秒内强制复位。像SP706、MAX706这类监控芯片,自带看门狗定时器、电压检测和手动复位功能,选型时注意喂狗窗口时间、复位延迟和输出类型是推挽还是开漏。有些SoC内置看门狗,但应用异常时可能连喂狗线程都卡死,外置硬件看门狗更稳妥。
4.2 评估板与核心板:别在最贵的环节反复浪费
芯片选定之后,接下来就是评估板选型。我的建议是优先选“核心板加载板”的模式,而不是直接买官方整套开发套件。
核心板把SoC、DDR、EMMC、电源管理等最难搞的高速电路都做好了,你只需要设计一块载板把接口引出来。高频DDR布线、电源纹波控制、高速信号完整性这些门槛,核心板厂商已经处理完了,你能把精力集中在业务接口、外设和结构设计上。这种模式从评估到量产的路径很平滑,原理图复用比例高,返工风险低。
选核心板时,要仔细核对核心板的引脚定义、载板原理图、散热方案和供货周期。有些第三方核心板看着接口一样,结果某个电源轨电流不够,或者引脚复用功能不同,一上负载就出问题。尽量选有完整设计文档和样机案例的厂商,发货前让对方提供核心板在目标负载下的功耗和温度实测数据。
评估板阶段,不要急着买最贵的配置。先想清楚你需要验证什么:是NPU算力够不够,还是接口兼容性,还是整机功耗能压到多少。我曾经为了验证一个双网口需求,直接买了一款自带双千兆网口的高配评估板,后来才发现核心板本身占掉一半价格,载板才是大头,完全是浪费预算。
4.3 工具链比纸面参数更值得花时间验证
如果说配套硬件决定设备能不能点亮,工具链就决定项目能不能按期交付。边缘AI芯片的“隐性门槛”基本都集中在模型转换、量化和算子支持上。
不同厂商的工具链成熟度差异极大。瑞芯微的RKNN-Toolkit2支持PyTorch、ONNX、TFLite模型的转换和量化,中文文档全,社区问答多,对新手最友好。地平线的OE工具链对CNN支持不错,Transformer类模型的适配也比老一代强。NVIDIA的TensorRT功能最全面,但需要CUDA基础,调试门槛高一些。MCU侧则是TensorFlow Lite Micro加CMSIS-NN,或者ESP32-S3的ESP-DL,模型大小和算子类型限制更多。
我的建议是,在选型阶段就下载SDK,用你要落地的那个模型做一次完整的转换加量化加部署测试。选两三个有代表性的模型,比如一个检测、一个分类、一个分割,跑通工具链,记录算子转换日志里那些WARNING和FALLBACK。一个周末就能暴露工具链的深浅,这比读三十份数据手册有价值得多。特别是那些标称支持很多算子、实际要回退到CPU的芯片,就是开发期的无底洞。
还有两个非常现实的提醒:第一,SDK和NPU驱动版本一定要在项目开始时锁定,上线后不要随便升级新版本,否则模型可能重新量化,精度变了、算子支持变了,麻烦会特别大。第二,量化的校准数据集一定要贴近真实场景,不要随手找几张网络图片凑数,否则转换时效果看着好,一到现场就飘。
5. 实战复盘:智慧大棚视觉检测项目选型全过程
5.1 场景需求拆解与算力推导
分享一个真实项目做个完整复盘。去年一个智慧大棚项目,要求用6路200万像素摄像头监控果蔬成熟度,同时识别是否有病虫害。现场条件:设备安装在农业大棚里,夏天最高接近50度,冬天靠近棚膜位置会到零下十几度,供电只能用POE,网络不稳定,设备需要无人值守运行。
需求拆解下来是这样的:6路1080p视频流,业务不需要高帧率,每秒5帧就够了;算法用YOLOv5s,输入640乘640,单帧计算量大约16.5 GMACs;单路5帧那全部6路合起来就是30帧,理论算力需求接近1 TOPS,按50%利用率算,标称INT8算力至少2 TOPS。内存方面,6路视频缓冲加算法进程,4GB比较稳,最好能到8GB。功耗方面,POE供电最高只有30瓦,整板功耗需要控制在20瓦以内,最好15瓦左右。无人值守状态下,必须考虑看门狗和远程恢复机制。
这段推导看起来简单,但整个项目组的价值就在这些数字要被认认真真写进需求文档里。后来每次有人提出换芯片的时候,我们都是拿这组数字出来对质,省了不少扯皮。
5.2 候选方案对比与最终选型
拿着这些指标筛选,第一轮就把MCU档排除了,算力和内存都不够。第二档的RV1126、RK3568算力在1到2 TOPS附近,跑单路或者双路有余量,但6路并发满负荷时容易吃紧,而且扩展接口数量也不够。第三档里我重点比了RK3588、Jetson Orin NX和地平线征程。
Jetson Orin NX性能确实强,但单板成本高出RK3588方案好几倍,而且主动散热在农业大棚粉尘环境下维护成本高,直接排除。地平线征程的视觉链路好,软件生态这两年进步很大,但项目当时的开发周期紧张,团队对RKNN的工具链更熟,最终选了RK3588S核心板加自研载板的方案。RK3588S是RK3588的精简版本,NPU同样是6 TOPS,CPU少了一组核心,对我们这个应用影响不大,价格更友好。
选RK3588S还有一个考虑:它的硬件编解码能力很强,能支持多路1080p硬解,这样CPU不会被解码任务拖死,NPU可以专心跑推理。加上8GB内存版本,整个系统余量非常充足。
5.3 开发实测与复盘体会
开发过程中我们用RKNN-Toolkit2把YOLOv5s从PyTorch转到INT8,量化校准用了现场拍摄的草莓和番茄图像各1000张。实测单路推理延迟约20毫秒,6路并发5帧的调度完全无压力,NPU负载大概在六成左右,余量足够后续模型升级。整板满载功耗12到14瓦,POE供电稳定,没有出现掉电问题。
现场环境验证时踩过两个坑,都值得记录。第一,冬天低温下系统启动变慢,DDR初始化偶尔失败,通过调整核心板电源时序和启动延时解决,这个靠软件完全查不出来。第二,POE网线供电时摄像头瞬态电流和主板峰值电流叠加,导致TVS管和电源输入端的浪涌保护偶尔误触发,后来换了更高脉冲功率的TVS并调整了地线布局才稳定下来。
复盘整个项目,最大的体会是如果当时按“算力越大越好”的逻辑选了更贵的方案,功耗、成本和散热都会超预算;如果只图便宜选了第二档芯片,6路并发的余量不足,后面模型一升级就得出问题。场景反推的价值不是挑一颗“最好的芯片”,而是挑一颗“刚好够用、又留了余地”的芯片。
6. 边缘端选型避坑记录:问题速查与独家经验
6.1 我踩过的五个典型坑
第一个坑是只看标称TOPS不看效率。同一颗芯片,跑单一大卷积的网络和跑大量小算子的网络,帧率能差出两倍。所以选型阶段必须用真实模型实测,带着转换工具链的日志看。
第二个坑是忽略内存带宽。芯片标称算力很高,但DDR带宽就那么多,多路视频解码、预处理、NPU权重读取、系统进程一起抢带宽,帧率立刻掉下来。内存容量和位宽都要提前算。
第三个坑是温度等级和散热设计。商用级芯片标称温度范围0到70度,很多边缘设备装在户外机壳里,阳光直射下内部温度轻松上70度。要么选工业级宽温芯片,要么在结构设计之前就预留主动散热方案。
第四个坑是POE供电功率预算不足。POE标准供电有功率限制,设备整机功耗高过预算就会反复重启。选型阶段就用功率仪实测整板在不同负载下的功耗,比任何估算都靠谱。
第五个坑是工具链版本随意升级。上线后被客户反馈模型精度下降,排查了三天,最后发现是团队有人升级了NPU驱动和RKNN版本,重新量化后INT8精度变了。从此我把SDK版本锁死放进构建文件管理。
6.2 现场问题速查表
下面这个表是我这几年做边缘AI项目总结出来的快速排查思路,按症状找原因,很多时候能省半天时间。
| 症状 | 常见原因 | 排查思路 |
|---|---|---|
| 推理延迟达标但整体掉帧 | 内存带宽或硬件解码瓶颈 | 检查DDR占用、解码器通道数和DMA争抢,别只盯NPU |
| 模型转换成功但精度骤降 | INT8量化样本不具代表性 | 采集贴近现场的数据重新校准,或改用FP16推理 |
| 设备户外高温死机 | 散热不足或非工业级温度等级 | 测内部空气温度,优化散热片和风道,必要时换宽温芯片 |
| 跑官方Demo正常,跑自己模型卡顿 | 有算子回退到CPU执行 | 看转换日志的FALLBACK/WARNING,改算子或调分辨率 |
| POE供电反复重启 | 峰值功耗超过POE功率预算 | 用功率仪测整板峰值,优化电源策略或换高功率POE交换 |
| 设备偶发死机无日志 | 看门狗没喂好或电源毛刺 | 加外置看门狗,用示波器抓电源轨掉电瞬间 |
做边缘端AI算力选型做了这几年,我越来越觉得这件事不是纯粹的技术比较,而是把场景需求翻译成工程约束的过程。芯片选型永远没有“最好的芯片”,只有“对当下的场景最合适的方案”。最后分享一个我自己一直用的操作习惯:无论选哪颗芯片,先花几百块租或借一块官方评估板,把目标模型跑起来,测出真实帧率、功耗、温度三个数据之后再谈选型。有了这三个实测数字,你手里的每一份芯片资料都会比原来有用得多。