做AI和硬件结合的开发这几年,我最深的感受是:AI模型本身是“软”的,但一旦它要跑在真实设备上、去驱动真实世界的执行器,就变成了一件非常“硬”的事。我说的“硬”不只是硬件意义上的硬,更是“难题”的硬。
比如你辛辛苦苦在服务器上训好的一个图像分类模型,精度98%,看起来完美。但把它部署到一块带NPU的嵌入式板卡上,帧率跑不上去、内存直接爆掉、某些算子压根不支持,这时候你会意识到一个问题——AI系统落地到物理世界,从来不是一个单点问题,而是一个系统工程。
这就是我今天想聊的“AI与硬件结合的结构”。这篇文章不是某个特定产品的拆解,而是我对这类系统整体架构的理解:它分几层、每层干什么、层与层之间怎么衔接、做选型时的核心依据是什么。如果你是嵌入式工程师想往AI方向靠,或者算法工程师想搞懂模型怎么在硬件上跑起来,这篇应该能帮你把整张地图先铺开。
1. AI与硬件结合的整体架构:从数据采集到执行的完整链路
1.1 一次语音唤醒背后的软硬件协作
先从一个最直观的例子切入:智能音箱的语音唤醒。
你用“小X小X”唤醒音箱,整个过程看起来只有一秒钟,背后却经过了完整的AI+硬件链路。麦克风把声音振动变成模拟电信号,信号经过放大和ADC采样后变成数字PCM数据,这时候硬件层面的第一个动作就完成了。
数字音频进入主控芯片之后,先做的是语音预处理——去回声、降噪、人声增强,这些算法很多是跑在芯片的DSP或专用音频处理单元上的,不需要动用大算力。预处理完的音频帧会被送进唤醒词检测模型,也就是一个经过量化的、常驻内存的轻量级神经网络。这个网络把“是唤醒词还是非唤醒词”的判断结果输出出来,一旦判定为唤醒,系统才会把后续的音频送去云端或更大的本地模型做语义理解。
我很喜欢用这个例子来向别人解释AI和硬件结合的结构,因为它完整体现了分层的逻辑:物理感知层负责把真实世界变成数字信号,边缘处理层负责轻量级的实时算法,推理层运行AI模型做模式识别,执行层根据识别结果去驱动应用逻辑。
1.2 四层架构模型:每一层的职责边界
把上面的例子抽象出来,一个完整的AI+硬件系统,我习惯把它分成四层来看。这四层不是硬性的行业标准,是我自己做项目时梳理的心智模型,新手可以把它当成地图来用。
物理层是最底层的感知和执行。麦克风、摄像头、温湿度传感器、IMU惯性测量单元、电机驱动、继电器,这一层的核心矛盾是“信号质量”。模拟电路设计、PCB布局布线会影响传感器数据的信噪比,这直接决定了上层AI模型输入的质量上限。我见过不少项目,模型在公开数据集上跑得好好的,一接上真实传感器就Garbage In Garbage Out,问题往往就出在物理层。
接入层负责把物理层的原始信号变成计算机能理解的数字结构。ADC采样率配置、I2S总线时序、图像传感器的MIPI接口、SPI总线上的寄存器读写,都是这一层要处理的事情。这一层是最容易被AI工程师忽视的,但它决定了数据的完整性和实时性。
处理层是整个AI能力的执行单元。CPU、GPU、NPU、DSP,各自承担不同类型的计算任务。AI推理主要在NPU或GPU上进行,但整个系统的任务调度、通信管理、内存管理还是要靠CPU。这一层需要考虑的不是“模型精度”而是“算力效率”。
应用层是AI的“智慧”真正转化为行动的地方。识别出人脸之后要不要开门,检测到异常之后要不要报警,这个决策逻辑和应用逻辑就在这一层。它看似简单,却是整个系统价值交付的终点。
把这四层放在一起看,你就能明白为什么我强调“结构”这个概念——AI和硬件结合不是简单地把模型塞进芯片,而是从传感器到决策执行的一条完整链条,每一层都有自己需要解决的核心问题,任何一层掉链子,整个系统都跑不起来。
2. 算力底座的选择逻辑:算的是“硬件性价比账”
2.1 常见的算力方案定位
从MCU到GPU,算力方案的跨度非常大。这也是很多嵌入式工程师刚接触AI项目时最大的困惑——芯片型号那么多,到底哪个够用?
纯MCU跑AI的方案适合极轻量级的任务,比如关键词唤起、异常声音检测、基于决策树的简单分类。Cortex-M4或者Cortex-M7运行CMSIS-NN优化后的模型,可以跑运算量在1M MACs到几十M MACs之间的网络,功耗可以控制在几十毫瓦级别,成本几块钱到几十块钱。这类方案商用成熟,智能门锁、TWS耳机里大量使用。
带NPU的SoC是目前边缘AI设备的主流选择。瑞芯微的RK3588、算能的CV181x、地平线的旭日系列,本质是CPU+GPU+NPU的异构SoC,NPU算力从0.5 TOPS到6 TOPS不等。这类平台能跑2-4M参数量的模型或轻量级目标检测网络,同时支持多路视频流接入,是智能家居摄像头、边缘计算盒子、工业质检设备最常见的方案。根据我的实际测试体验,Rockchip平台的RKNN工具链在算子支持度上这几年进步明显,很多常见视觉模型基本能无痛转换。
更高算力的方向就是英伟达的Jetson系列、华为昇腾系列等。Orin平台可以跑到275 TOPS,支持Transformer结构的大模型在边缘端推理,适合自动驾驶、机器人、复杂工业视觉这类需要更大模型和更高实时性的场景。如果算力需求再往上走,就只能走服务器GPU或云端方案了。
2.2 选型时最容易被忽略的三个维度
很多人都知道“算力越高越好”这个道理,但真正做选型的时候,只看TOPS数值是远远不够的。有几个维度是纸面参数上看不出来的,但不考虑清楚,项目后面一定会吃苦头。
内存带宽和片内SRAM大小。这是我最想强调的一点。很多NPU的实际利用效率远低于理论值,就是因为数据在DDR和SRAM之间搬运的时间远远大于计算本身的时间。如果芯片的SRAM只有几百KB,而你的模型中间层特征图有几十MB,那NPU就只能反复从内存搬运数据,效率非常低。我看过一个项目,换了算力更低的芯片反而跑得更快,就是因为新芯片的SRAM更大、带宽更高。
工具链成熟度比芯片算力本身更影响开发进度。算力再高,如果模型转换工具各种报错、算子各种不支持,你怎么都跑不起来。我做项目评估一款芯片,会先看它的模型转换工具支持哪些算子、失败率多高、社区活跃度怎么样,这些信息比跑分数据更值钱。
量产供货稳定性。选型不能只看性能,还要看这颗芯片能不能稳定供货、未来会不会停产,生命周期有多长。工业、车载这类长生命周期产品,芯片的供货周期至少要看5年。
2.3 一个实际的选型推演
以工业缺陷检测项目为例。需求是检测产品表面的划痕、污渍,精度要求达到95%以上,速度要求每件产品检测时间在500毫秒以内。
我先评估模型规模。用YOLOv5s或YOLOv8n这类轻量级目标检测网络,模型大小在10-20MB之间,INT8量化后算力需求大约在2-4 TOPS左右。这个算力在NPU SoC方案和Jetson方案里都能满足。
再考虑实际使用环境,工厂车间温度可能比较高,要无风扇设计,整机功耗控制在10W以内,Jetson Nano的5W-10W功耗能满足,但价格偏高。RK3588的NPU算力为6 TOPS,功耗在3-8W之间,价格比Nano低不少,工具链支持YOLO系列已经很成熟。最后我选择RK3588,不仅成本更优,还能利用它的6路视频接入能力做多工位复用。
核心逻辑只有一个:在满足功能和性能需求的前提下,综合评估成本、功耗、开发难度和长期供应稳定性,选最经济可靠的组合。你会发现在绝大多数项目场景里,算力适中、工具链成熟的工业级SoC比单纯的大算力方案更符合商业逻辑。
3. 数据通路设计:瓶子里装的到底是水还是沙子
3.1 传感器数据是怎么走到AI模型里的
我习惯把AI+硬件系统的“数据通路”比作一条水管,从传感器到算法模型,数据的形态在每一段都不一样,决定了整条管子的输送方式。
以视觉系统为例,图像传感器的CMOS阵列输出的原始RAW数据经过ISP(图像信号处理器)处理后变成RGB或YUV图像,这段数据量是最大的。一颗500万像素传感器在30fps时,每帧原始数据超过10MB,YUV422格式也有近15MB。如果这部分所有帧都交给NPU去跑,算力再强也难以支撑,所以工程师会设计复杂的调度机制:只有真正需要识别的关键帧才会进入推理模块,其他帧只做编码存储或者直接丢弃。
音频通路也有类似逻辑。麦克风采集到的PCM数据通常以16kHz/24kHz采样率进来,相比图像数据不大,但要保证数据没有撕口。音频的I2S接口采样的缓冲尤其重要,如果DMA缓冲区处理不及时,会出现“咔哒”声那样的数据丢失。这考验的是驱动和中断任务的实时性设计。
3.2 推理结果如何变成控制指令
AI模型输出的是概率值、类别编号、检测框坐标等逻辑层面的结果,这些结果要被转换成物理世界的动作,中间需要一条“解释”链路。
比如一个自动门禁系统,模型识别出“人脸是管理员”之后,系统需要把结果映射为一个门锁控制信号。这个映射过程通常经历:置信度阈值判断→业务逻辑校验(比如当前时间是否允许通行)→动作决策(开门还是不开门)→执行信号生成→功率驱动(电机转动、电磁锁断电)。
这里有个容易被忽视的点是执行器动作的“平滑性”和安全机制。AI的输出是非连续的离散判断,上一秒“识别到人”,下一秒“没识别到人”,如果直接把开关量丢给电机,就会出现一顿一顿的抖动。好的设计会在AI决策和物理执行之间加一层“平滑层”:结合时间相滤波、滞后阈值、超时保护这些机制,让动作更自然。在工业场景里,这层平滑机制也是安全逻辑的一部分,需求里经常会要求“AI判断可能出错时,系统要能自动进入安全状态”。
3.3 通信协议选型:一切都在为“实时性”服务
在更复杂的系统中,AI和硬件可能分布在多个板卡甚至多个设备之间,通信就成为了数据通路的重要部分。通信协议的选择核心是看你要传什么数据、对实时性要求多高。
板内传感器到主控,通常用I2C、SPI或MIPI CSI接口,带宽从几百Kbps到几Gbps不等,选型主要看芯片外设支持。
板间短距离实时控制,CAN总线是最稳的选择。ARM Cortex-M芯片上跑CAN透传大概能到1Mbps,抗干扰能力强、支持多主通信,在汽车、机器人底盘中大量使用。
需要大带宽视频图像传输时,千兆以太网是常见选择。在工控场景,GigE Vision标准能让每个摄像头以千兆速率回传视频。此时需要考虑的是网络拓扑和传输延迟的预算——从摄像头到AI推理到结果回传,几百毫秒的延迟通常是质检场景的底线。
选择通信协议时,我的经验是三条原则:能传得通,带宽余量至少在需求值的3倍以上;不会“拖后腿”——总线调度不会因为大数据包阻塞关键控制帧;不搞复杂——增加一个协议就增加一个故障点,能用现成协议栈就别自己发明。
4. 迈向终端推理:模型如何从“浮在水面上”到“扎进硬件里”
4.1 模型压缩与量化的现实意义
在服务器上训练的深度学习模型,参数默认是FP32浮点类型。“模型跑在GPU上是正常的,部署到嵌入式设备上就走不通”,原因很简单:嵌入式硬件算浮点的能力要么很弱,要么根本没有。
量化是解决这个问题最有效的手段。把FP32的权重和激活值映射到INT8或INT16的整数空间,模型体积缩小到原来的1/4,计算量也大幅下降。以YOLOv5s模型为例,原始权重文件大约14MB,INT8量化后在3.5-4MB左右,推理速度可以提升2-4倍。
一套完整的量化流程,最关键的是校准阶段。挑一批有代表性的数据喂给模型,统计每一层激活值的动态范围,再确定合适的缩放因子。数据选得不好,量化后的精度损失会超出预期。我的经验是校准数据不要只用“最理想”的数据集,加入真实场景的噪声、遮挡、光照变化,量化的鲁棒性会更好。精度损失控制在1-2%以内,就是一个可以接受的量化模型。
4.2 算子映射:从网络结构到NPU微架构
模型转换到NPU运行,本质上是一个“算子映射”的过程。你的PyTorch或TensorFlow模型里每一个层(卷积、池化、全连接、归一化),最终都要映射到NPU上对应的计算单元。不同厂商的工具链有不同的算子实现方式。
以卷积层为例,NPU为了提升效率,通常会把多维卷积运算转换到矩阵运算单元上执行,过程中要做数据重排。矩阵运算单元本质上是一个二维的乘加阵列,数据排布方式决定了计算效率。有些工具链会插入一些“内存重排”的数据移动操作,这些操作本身不产生计算,但会消耗时间。如果模型里小算子太多,比如频繁使用各种细碎激活函数或拼接操作,NPU会有大量时间花在等待数据搬运上。
这解释了为什么同样一个模型,在不同厂商芯片上的运行效率差异会那么大。芯片的算子库对特定网络结构做了深度优化的,就快,反之就慢。我也建议做嵌入式模型部署时不要“闭门造车”——先看看目标芯片的算子支持列表,再决定模型的网络结构搭建。
4.3 值得关注的硬件加速新方向
除了传统NPU,大模型催生了新的硬件加速方案。很多做端侧AI的公司开始在芯片中增加针对Transformer结构的加速单元,比如Flash Attention的硬件化、KV Cache专用加速设计。这类技术让原本需要几十TOPS算力的LLM在几瓦功耗的设备上运行成为可能。
另一个方向是存内计算(Computing-in-Memory)。传统架构里数据不停在存储和计算单元之间搬家,存内计算直接把计算搬进存储器,大幅减少数据搬运开销,特别适合大矩阵乘法的场景。目前很多厂商还在从实验室走向量产的过程中,但这代表了AI硬件新的发展方向。
作为软件或算法背景的工程师,了解这些方向能够帮助你理解未来1-2年硬件平台的能力边界在哪里,在做架构方案预留时心里有数。
5. 联调阶段的“排雷”经验:性能与稳定性的平衡
5.1 实际项目中高频碰到的三类问题
跑通一个AI+硬件系统,模型在开发板上能够推理出结果只是第一步,联调阶段才是真正锤炼能力的时期。根据我做过的项目经验,有三类问题格外高频。
内存溢出问题。嵌入式设备的内存是有限的,而AI推理框架往往需要申请大量临时内存。如果在跑推理的同时还要处理图像编解码、网络传输,内存竞争就非常激烈。一个常见的处理方式是把推理的输入输出固定为预分配内存,避免每一个局部块频繁分配释放,内存碎片也会减轻很多。
推理延迟抖动问题。你测平均耗时可能只有80ms,但在某个特殊输入上突然变成了300ms,这种抖动在实时性要求高的场景里是致命的。延迟抖动往往来自系统调度、内存带宽竞争和缓存miss,处理方法是给推理任务绑核设置高优先级,同时把推理用到的内存设为不换出(mLock/unlock)方式锁住。
精度回归问题。模型的仿真精度是97%,在硬件上推理只剩90%,这种精度负优化很常见。除了量化损失,很多时候是因为输入数据的预处理和服务器端不完全一致,比如图像缩放算法不同、归一化参数不同、颜色通道顺序搞反。这是我强烈建议排查的第一个方向——“对照服务器端的预处理做端到端的输出排查”,确定问题出在哪个环节。
5.2 性能瓶颈的定位方法论
如果你得到的推理性能离预期差距太大,不要慌乱,按照我的方法一步一步排查,通常能快速定位瓶颈。
第一,确认高效计算单元的真实利用率。芯片厂商提供的profiler工具(比如RKNN Toolkit的profiling功能,或者NVIDIA的Nsight)能显示出NPU的利用率和各算子耗时。利用率低就要留意数据搬运是否成为瓶颈。
第二,做层级的耗时分析。把模型的每一层在芯片上的耗时拉出来,看哪一层最慢。如果某个算子耗时为总耗时的一半以上,优先考虑优化这个算子:看看有没有替代算子、是否能用内核融合技术减少数据搬移。
第三,确认DDR带宽占用情况。AI推理对内存带宽的需求敏感程度超出了很多人的预期,系统的其他部件对带宽的占用会直接拖慢推理速度。我经历过一个出乎意料的场景:主控芯片在跑视频编码任务时,推理速度几乎慢了3倍,问题根因就在DDR带宽竞争。
5.3 稳定性和信任基础:硬件安全设计
AI+硬件项目一旦涉及身份认证、支付、数据隐私场景,安全设计就成了硬件工程师关注的重头戏。
硬件信任根(Root of Trust)是我强烈推荐大家在设计中尽早考虑的方向。所谓信任根,简单理解就是硬件上一个可信的起点,通常是一个非易失性的安全单元,里面预置了根密钥和校验算法。整个系统的安全启动都建立在这个起点之上:芯片上电后首先运行信任根里的代码,它验证引导加载程序的数字签名,引导加载程序再验证操作系统、再验证AI模型文件的完整性和合法性。这样一层层校验下来,能有效防止固件被篡改、模型文件被窃取替换这类攻击路径。
安全方案设计最忌“事后补救”。在原型阶段就要把安全需求梳理清楚:要不要防抄板、模型要不要加密存储、密钥怎么管理、安全启动链路怎么规划。否则到后期想加安全功能,往往需要在硬件上预留Secure Element芯片或者更换主控,改动量会非常大。很多做设备的老工程师常挂在嘴边的一句话:“硬件保密靠一拆损坏”,指的是在结构设计上让暴力拆解变得更困难,这是物理层的防护手段,它和安全芯片的逻辑防护是互补的。
6. 给跨界工程师的几条实战建议
6.1 嵌入式工程师如何切入AI方向
如果你是有经验的嵌入式/硬件工程师,想往AI方向拓展,我的建议很直接:不要一上来就啃深度学习理论,先跑通一条端到端的最小链路。买一块带NPU的开发板,比如RK3588或者Jetson系列,跑一个官方demo,比如YOLOv5目标检测、语音关键词识别。
你要关注的不是模型本身,而是整个链路的调通机制:怎么把模型文件转成对应工具链的模型格式,怎么写推理代码,怎么分配内存,怎么处理输入输出。跑通一个demo之后,试着换成你自己的场景数据,微调一下模型,再部署上去。这个过程中你自然而然会理解数据标定、量化导出、端侧部署中涉及的大量工程细节。
还有一个比较高效的途径是去读开源项目的代码。比如BMS硬件里的电池状态估计算法(有的是用神经网络做SOC/SOH评估的开源项目),既有硬件设计又有AI算法的完整实现,能同时锻炼多方面的能力,建议去找一两个精读一下。
6.2 算法工程师如何补硬件短板
反过来,做算法或AI应用开发的工程师,往往会面临“模型训练部署之后无法达到预期效果”的尴尬。模型部署到真实设备上表现不佳,未必是模型网络结构的问题。很多AI项目实际上线后暴露的深度学习相关问题和模型本身关联有限,算法团队并不需要理解硬件的每一条电路,但以下几个概念必须有直觉。
在BIOS或Bootloader里能确认内存配置正确、CPU/GPU/NPU驱动正常加载。在很多平台,NPU驱动加载失败不会报严重错误,只会导致模型推理速度异常慢。
系统能否为AI推理任务预留专用的内存区域,避免大模型和系统服务互相踩踏。
温控策略是否合理。NPU高负载运行发热严重,如果温控策略太激进,温度墙一卡住计算能力就降一半,这会让你误以为是模型或者代码出了问题。
我在实际项目里的经验是,算法工程师至少要能和硬件工程师对话。不被“这个模型跑不动”一句话挡回来,而是能追问出“跑不动”的具体原因:算力不够?内存不够?算子不支持?这样沟通效率会高很多。
6.3 练手项目推荐路径
给想系统性入门“AI+硬件”这个方向的开发者推荐一条从简单到复杂的练手路径,应该能帮你少走弯路。
先做一个关键词唤起(KWS)项目。这个项目数据量要求不大,对算力要求低,但能让你完整体验音频采集→特征提取→模型推理→触发动作的完整链路。代码量和调试难度都很友好,适合作为第一个项目。
再到视觉物体识别项目。用YOLO系列做简单目标检测,把你的桌面物品当作识别目标。这个阶段你会接触到图像采集、ISP调优、视觉预处理、目标框后处理、屏幕显示或机械结构响应,开发难度上一个台阶但收获也更大。
进阶可以做异常检测或预测性维护项目。比如给电机加振动检测传感器,训练模型识别正常和异常振动的模式。这类项目涉及时间序列数据处理、小样本训练、实时性和稳定性的平衡,更接近工业场景的真实需求。
在这个过程中,你会逐渐建立起属于自己的“AI+硬件”知识框架,积累起后续做更复杂项目的能力底气。
最后说一个我自己的体会。做AI和硬件结合的系统,核心思路是“合适的模型放在合适的位置,用合适的方式运行起来”。云端大模型负责复杂的理解,本地小模型负责实时可靠的执行,两者之间的边界取决于算力、功耗、带宽、隐私、成本这些综合因素。绝大多数产品根本不需要在设备端跑大模型,但几乎所有产品都需要把那一大堆成熟的小模型高效稳定地用好。把这条链路跑顺了,把每一层之间接口对齐了,你手上的硬件就能真正“长出”AI来。