ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

端侧AI落地九大约束与八维评测:从算力到功耗的工程权衡

2026/10/1 16:00:16 拓冰建站 浏览量
端侧AI落地九大约束与八维评测:从算力到功耗的工程权衡 端侧AI这两年从“概念验证”一路卷到“量产落地”我身边做嵌入式、做算法、做产品的朋友几乎每周都在群里吵同一件事模型到底该不该塞进设备里。有人觉得云端API又便宜又省事有人坚持端侧才是终局。吵到最后往往发现大家说的根本不是同一个“端侧AI”——有人指的是手机上的拍照优化有人指的是工业相机里的缺陷检测有人指的是车载语音助手。场景不同约束条件天差地别评测维度也完全不是一套。我自己从早期在MCU上跑简单分类模型到后来参与过几款带NPU的消费级设备部署踩过的坑足够写一本小册子。这篇内容想聊的就是标题里说的“横切”视角不针对某一个具体模型或某一款芯片而是把端侧AI落地过程中反复出现的九类约束、八个评测维度以及那些绕不开的权衡关系系统地拆一遍。如果你正在评估一个端侧AI方案或者已经被“模型精度掉了两个点”“推理时间忽高忽低”“内存不够用”这类问题折磨过下面的内容应该能帮你少走一些弯路。1. 端侧AI的“横切”到底切的是什么1.1 为什么不能按“模型”或“芯片”来分类讨论大多数端侧AI的讨论习惯按模型架构分CNN、Transformer、RNN或者按芯片平台分某款NPU、某款DSP、某款GPU。这种分法在学术研究里没问题但一到工程落地就失效。原因很简单同一个模型在不同芯片上的表现可能差出三倍同一款芯片跑不同模型的效率也完全不可比。你没法说“Transformer不适合端侧”因为经过量化、剪枝、算子融合之后它在某些NPU上的表现反而比轻量CNN更稳。“横切”的意思是把模型、芯片、框架、工具链这些纵向的技术栈暂时放一边横向去看所有端侧AI项目都会遇到的共同问题。这些问题不依赖于你用什么模型、跑在什么硬件上而是由“端侧”这个部署位置本身决定的。比如内存带宽不管你跑什么模型只要数据要在片外DRAM和片上SRAM之间搬运带宽就是硬约束。再比如功耗只要设备是电池供电热设计功耗就是绕不过去的天花板。我见过太多团队在选型阶段只盯着“这个模型精度多少”“这个芯片算力多少TOPS”结果到了集成阶段才发现算力标称值是在理想条件下测的实际可用算力可能只有标称的三成。这就是没有用横切视角看问题的代价。1.2 端侧与云端的本质差异不是“小一号的服务器”很多人潜意识里把端侧设备当成“缩小版的云端服务器”觉得无非是算力小一点、内存少一点。这个类比非常危险。云端服务器有稳定的供电、主动散热、充裕的内存带宽、可预测的并发模型端侧设备面对的是完全不同的物理现实。举几个我实际遇到过的例子。某款带电池的智能摄像头实验室里跑得好好的模型到了户外夏天中午外壳温度升到六十多度芯片触发降频推理时间从30毫秒直接跳到120毫秒导致丢帧。另一个案例是工业手持设备电机启动瞬间的电流波动导致电压跌落NPU直接复位。这些问题在云端根本不存在但在端侧是常态。所以端侧AI的第一性原理不是“把模型做小”而是“在物理约束下维持可接受的功能表现”。这个“可接受”的边界由具体应用场景定义而不是由模型指标定义。1.3 九大约束的提出从反复踩坑中归纳下面要展开的九大约束不是从某篇论文里抄的而是我在多个项目复盘时反复归类出来的。它们分别是算力约束、内存容量约束、内存带宽约束、功耗与热约束、实时性约束、精度约束、成本约束、开发周期约束、以及碎片化约束。这九类约束几乎覆盖了端侧AI落地中所有“卡脖子”的环节。需要强调的是这九类约束不是并列关系而是相互耦合的。你为了降低功耗去降频实时性就受影响你为了省内存去量化精度就可能掉你为了赶开发周期选了一个成熟但算力偏低的芯片后面所有优化都受限于这个选择。理解它们之间的耦合关系比单独记住每一条更重要。2. 九大约束的逐条拆解与真实项目中的表现2.1 算力约束标称TOPS与实际可用算力的鸿沟算力约束是最容易被低估的一条。芯片规格书上的TOPS每秒万亿次操作通常是在特定条件下测得的可能是INT8精度、可能只算MAC单元、可能假设数据全部在片上。实际项目中你的模型可能包含大量非MAC操作数据搬运可能占了大头算子调度可能无法填满所有计算单元。我做过一个粗略统计在几款主流边缘NPU上实际推理吞吐对应的有效算力通常只有标称值的20%到50%。差距来源包括算子不支持导致回退到CPU、内存带宽不足导致计算单元空转、以及调度开销。所以选型时不要只看TOPS要看目标模型在目标芯片上的实测帧率。如果供应商给不出实测数据那这个芯片的风险就很高。另一个常见误区是拿不同精度的算力直接比较。某芯片标称4TOPS INT8另一款标称2TOPS FP16你不能简单说前者是后者的两倍。FP16的2TOPS在某些模型上可能比INT8的4TOPS更实用因为不需要量化精度损失小开发周期短。算力约束的本质是“在可接受的精度和延迟下能跑通目标模型”而不是一个孤立的数字。2.2 内存容量约束模型权重只是冰山一角新手算内存通常只算模型权重大小。一个5MB的量化模型觉得留10MB内存就够了。实际运行时内存占用远不止权重中间激活值activation、输入输出缓冲区、框架运行时开销、以及内存对齐带来的碎片加起来可能是权重的两到三倍。我遇到过最极端的情况是一个目标检测模型权重只有3MB但峰值内存占用到了18MB因为特征图在某一层特别大加上框架的临时缓冲区直接把设备内存撑爆。后来通过调整输入分辨率、优化算子融合顺序才把峰值压到12MB以下。内存容量约束还有一个隐蔽的坑内存碎片。端侧设备往往长时间运行如果内存分配释放策略不当运行几天后可能出现“总空闲内存够但最大连续块不够”的情况导致分配失败。解决办法通常是在初始化阶段一次性分配好所有需要的缓冲区运行时不动态申请释放。这个策略在云端可能显得浪费但在端侧是保命手段。2.3 内存带宽约束被忽视的性能杀手内存带宽是端侧AI里最容易被忽视、但影响最大的约束之一。很多模型在算力充足的芯片上跑不快瓶颈根本不在计算而在数据搬运。特别是Transformer类模型注意力机制涉及大量矩阵乘和转置数据在片外DRAM和片上缓存之间反复搬运带宽一卡算力再高也没用。一个实用的判断方法算一下模型的算术强度Arithmetic Intensity即每搬运一字节数据能做多少次运算。如果算术强度低于芯片的算力带宽比那这个模型就是带宽受限的。对于带宽受限的模型优化方向不是换更强的算力单元而是减少数据搬运算子融合、权重复用、把中间结果留在片上。我在一个语音唤醒项目里吃过这个亏。模型本身很小算力绰绰有余但每次推理都要从Flash里重新加载权重Flash的读取带宽成了瓶颈。后来把权重常驻在片上SRAM里推理时间直接降了四成。这个改动不涉及任何模型结构变化纯粹是内存布局的调整。2.4 功耗与热约束电池和外壳温度的双重天花板功耗约束在电池供电设备上是硬约束在插电设备上则表现为热约束。两者本质相同设备能持续散发的热量有限芯片的持续功耗不能超过这个上限。这里有个关键概念峰值功耗和持续功耗是两回事。很多芯片能短时间跑在高功耗状态但持续跑就会过热降频。端侧AI应用如果是持续推理比如视频流分析那必须按持续功耗来设计如果是间歇推理比如语音唤醒可以允许短时峰值。实测中我习惯用“每帧能耗”而不是“功耗”来评估。每帧能耗等于推理时间乘以平均功耗单位是毫焦耳。这个指标直接对应电池续航假设电池容量是3000毫安时、3.7伏总能量约40千焦耳如果每帧能耗是10毫焦耳那理论上能跑400万帧。当然实际还要算上系统其他部分的功耗但这个估算能快速判断方案是否可行。热约束还有一个容易被忽略的点外壳温度。消费电子对可接触表面的温度有安全要求通常不能超过某个阈值。如果芯片功耗高热量传导到外壳用户会觉得烫手。解决方式要么降低持续功耗要么加强散热设计但后者在轻薄设备上空间有限。2.5 实时性约束平均延迟和尾延迟是两码事实时性约束不是“平均推理时间小于多少毫秒”这么简单。真正影响体验的是尾延迟即最慢的那几次推理。一个系统平均延迟20毫秒但每100帧有一帧延迟200毫秒用户就会感觉到卡顿。尾延迟的来源很多操作系统调度、内存垃圾回收、其他任务的干扰、温度降频、以及模型本身某些输入导致的动态计算量变化。在端侧这些因素比云端更难控制因为端侧系统通常没有资源隔离机制。我通常建议在端侧AI项目里做两件事一是给推理任务最高的调度优先级避免被其他任务抢占二是对输入做预处理避免极端输入导致计算量激增。比如目标检测模型如果输入图像里目标特别多后处理阶段的计算量会显著增加这时候可以通过限制最大检测数量来保证尾延迟可控。2.6 精度约束业务精度和模型精度不是一回事精度约束的坑在于模型精度指标如mAP、准确率和业务实际感受到的精度往往有差距。一个模型在测试集上mAP是0.85但实际部署后用户觉得“经常识别错”可能是因为测试集和真实场景的数据分布不一致也可能是因为后处理逻辑放大了某些错误。端侧部署中量化是精度损失的主要来源。INT8量化通常带来1到3个点的精度下降但某些模型对量化特别敏感比如包含大量小目标的检测模型或者输出层对数值范围敏感的模型。这时候需要做量化感知训练或者在量化后对特定层做微调。我的经验是精度约束必须在项目早期就明确“业务可接受的最低精度”而不是追求“尽可能高的精度”。因为精度和算力、功耗、成本都是耦合的追求极致精度往往意味着更大的模型、更高的算力需求、更短的续航。找到一个满足业务需求的平衡点比刷榜更重要。2.7 成本约束BOM成本只是显性部分成本约束不只是芯片的采购价格。端侧AI方案的成本包括芯片本身、配套的内存和存储、散热材料、电池容量如果功耗高就需要更大电池、以及开发成本。开发成本又包括工具链的成熟度、团队的学习曲线、以及调试时间。我见过一个案例某团队为了省几块钱选了便宜芯片结果工具链极不成熟算子支持不全模型移植花了三个月最后算下来人力成本远超芯片差价。所以成本约束要算总账不能只看BOM。另一个隐性成本是产线测试成本。端侧AI设备出厂前通常需要做功能测试如果模型推理不稳定测试环节的返修率会上升。这个成本在大批量生产时非常可观。2.8 开发周期约束工具链成熟度决定生死开发周期约束在端侧AI项目里经常被低估。云端AI开发框架成熟、文档齐全、社区活跃遇到问题搜一下基本能找到答案。端侧AI的工具链则碎片化严重每家芯片厂商都有自己的编译器、量化工具、运行时库文档质量参差不齐。工具链成熟度直接影响开发周期。一个成熟的工具链能做到模型转换一键完成、算子支持列表清晰、量化工具自动化程度高、调试信息可读。不成熟的工具链则可能让你在“模型转换失败”这个环节卡两周。我的建议是在选型阶段就把工具链评估作为独立环节。拿目标模型去跑一遍转换和量化流程看报错信息是否可理解、是否有社区支持、厂商FAE响应是否及时。这个评估花两三天可能省下后面两个月。2.9 碎片化约束没有一套方案能通吃碎片化约束是端侧AI区别于云端AI的最大特征。云端AI基本被少数几家平台垄断硬件和软件栈相对统一。端侧则是芯片厂商林立、架构各异、工具链互不兼容。你在A芯片上调好的模型换到B芯片上可能要重做量化、重调算子。碎片化带来的直接后果是端侧AI方案很难复用。一个在手机上跑通的方案搬到车载或工业设备上可能需要大量适配工作。这也是为什么端侧AI项目的人力投入往往比预期高。应对碎片化的策略一是尽量选择生态相对好的平台二是把模型和推理引擎解耦用中间表示如ONNX作为交换格式三是把优化经验沉淀成可复用的检查清单而不是绑定到具体芯片。3. 八维评测怎么判断一个端侧AI方案是否靠谱3.1 评测维度一有效算力利用率有效算力利用率等于实际推理吞吐对应的算力除以芯片标称算力。这个指标直接反映工具链和模型优化的水平。测量方法是用目标模型在目标芯片上跑推理记录帧率和芯片频率反推实际使用的算力。这个指标低于20%说明优化空间很大可能是算子回退、内存瓶颈或调度问题。高于50%说明方案比较成熟。需要注意的是不同模型的算力利用率不可直接比较因为算子构成不同。所以这个指标主要用于同一模型在不同芯片或不同优化阶段的对比。3.2 评测维度二峰值内存与内存增长曲线峰值内存是端侧AI方案能否跑通的关键指标。测量时不能只看模型加载后的静态内存要在推理过程中持续监控内存占用找到峰值。特别要注意的是内存增长曲线如果每次推理后内存没有完全释放存在缓慢增长那长时间运行必然出问题。我通常用两种方法测一是用系统自带的内存监控工具二是自己在推理循环里埋点记录每次推理前后的内存差值。后者更准确能发现框架层面的内存泄漏。3.3 评测维度三每帧能耗与热稳定性每帧能耗的测量需要硬件支持通常通过电流探头或芯片内置的功耗计数器。如果没有硬件测量条件可以用推理时间和芯片功耗估算。热稳定性则需要在持续推理条件下记录芯片温度和频率变化看是否触发降频。一个实用的测试方法是让设备连续跑推理一小时记录每十分钟的平均帧率和芯片温度。如果帧率随时间下降超过10%说明热设计有问题。这个测试在实验室容易通过但在实际环境如高温车间、户外阳光直射下可能完全不同所以有条件的话要在真实环境做。3.4 评测维度四尾延迟分布尾延迟分布比平均延迟更能反映用户体验。测量方法是记录每次推理的耗时然后看P50、P90、P99分位数。如果P99延迟是P50的三倍以上说明系统存在明显的干扰或调度问题。改善尾延迟的手段包括提高推理任务优先级、预分配内存避免运行时分配、限制动态计算量、以及避免在推理路径上做同步IO操作。3.5 评测维度五量化后精度保持率量化后精度保持率等于量化后模型精度除以原始模型精度。这个指标需要在目标数据集上测而不是在通用测试集上。因为端侧应用的数据分布通常比较特定通用测试集的精度保持率参考价值有限。如果精度保持率低于业务要求可以考虑量化感知训练、混合精度量化敏感层用FP16、或者调整量化校准集使其更贴近真实数据分布。3.6 评测维度六工具链端到端耗时工具链端到端耗时指从原始模型到可部署二进制文件的全流程时间包括模型转换、量化、编译、以及调试。这个指标反映开发效率直接影响项目周期。测量时要注意区分“首次跑通”和“稳定复现”。有些工具链首次跑通很快但每次修改模型都要重新踩一遍坑实际效率很低。稳定的工具链应该能做到流程脚本化、结果可复现。3.7 评测维度七跨平台可移植性跨平台可移植性指模型和推理代码从一款芯片迁移到另一款芯片的难易程度。评估方法是看模型是否用标准格式如ONNX保存、推理代码是否与芯片SDK解耦、后处理逻辑是否独立于推理引擎。可移植性高的方案迁移到新芯片可能只需要几天可移植性低的方案可能意味着重写整个推理管线。在芯片供应不稳定的当下这个维度的重要性在上升。3.8 评测维度八长期运行稳定性长期运行稳定性是端侧AI方案能否产品化的最后一道关。测试方法是让设备连续运行目标应用至少72小时监控推理成功率、内存占用、温度、以及是否有崩溃或重启。这个测试能暴露很多短期测试发现不了的问题内存泄漏、温度累积、以及某些罕见输入导致的异常。我经历过一个项目短期测试全部通过但连续运行48小时后推理开始随机失败最后定位到是某个中间缓冲区的内存对齐问题在长时间运行后触发了硬件异常。4. 没有免费午餐端侧AI里那些绕不开的权衡4.1 精度与延迟的权衡量化不是免费的量化是端侧AI最常用的优化手段但它不是免费的。INT8量化通常能带来两到四倍的推理加速和四倍的内存节省代价是精度下降。下降幅度取决于模型结构和数据分布可能从零点几个点到几个点不等。关键是要区分“可接受的精度下降”和“不可接受的精度下降”。对于分类任务一两个点的准确率下降可能无所谓对于检测任务小目标召回率下降可能直接导致功能不可用。所以量化策略要按任务定制不能一刀切。另一个容易被忽略的点是量化后的模型对输入分布更敏感。原始模型可能对输入的小幅变化不敏感量化后可能因为数值范围压缩而变得敏感。这在真实场景中可能导致“实验室好用、现场不好用”。4.2 功耗与算力的权衡降频容易升频难端侧设备的功耗和算力是直接矛盾的。要省电就得降频降频就损失算力。这个权衡在电池设备上尤其尖锐。我的经验是不要试图在“持续满负荷”和“深度休眠”之间二选一而是设计多级功耗状态。比如语音唤醒场景平时用极低功耗的always-on模块做关键词检测检测到关键词后再唤醒主芯片做完整推理。这样平均功耗很低但响应速度也能接受。热设计也是类似思路如果设备有金属外壳可以利用外壳做散热但要注意外壳温度不能超过安全阈值。有时候增加一点热质量比如用相变材料能平滑温度波动避免频繁降频。4.3 内存与带宽的权衡片上还是片外把数据放在片上SRAM还是片外DRAM是一个经典权衡。片上SRAM带宽高、功耗低但容量小、成本高片外DRAM容量大、成本低但带宽有限、功耗高。端侧AI的优化方向通常是把最频繁访问的数据如权重、热点激活值放在片上把大容量的中间结果放在片外。但具体怎么切分需要根据模型的数据流和芯片的存储层次来定。一个实用的方法是做“数据流分析”统计模型各层的数据访问模式找出访问最频繁、复用率最高的数据块优先放到片上。这个分析可以用工具做也可以手动估算。4.4 成本与性能的权衡贵芯片不一定划算贵芯片通常算力更强、工具链更成熟但不一定划算。因为端侧AI的总成本包括芯片、内存、散热、电池、以及开发人力。贵芯片可能让你省下开发时间但如果项目对成本极度敏感省下的开发时间可能抵不过芯片差价。我的判断方法是先明确业务的“最低可行性能”然后找满足这个性能的最便宜方案。如果最便宜方案的工具链太差导致开发周期不可控再考虑升一档。不要一开始就选最高配因为端侧AI的性能瓶颈往往不在算力而在内存或带宽。4.5 开发速度与长期维护的权衡快速原型 vs 可维护架构快速原型和可维护架构往往矛盾。快速原型追求最短时间跑通可能用大量硬编码、跳过异常处理、不做模块化。可维护架构则要求接口清晰、配置化、可测试。端侧AI项目通常时间压力大容易偏向快速原型。但我的经验是至少在推理管线的接口层面做抽象把模型加载、预处理、推理、后处理分成独立模块模块之间用明确定义的数据结构通信。这样即使初期实现粗糙后面替换模型或迁移芯片时也能减少返工。5. 从约束到落地一个可复用的评估流程5.1 第一步明确业务场景的硬边界在碰任何模型或芯片之前先把业务场景的硬边界写清楚。包括输入数据是什么、输出要求是什么、延迟上限是多少、功耗上限是多少、成本上限是多少、设备运行环境是什么。这些边界不是拍脑袋定的要和产品、硬件、以及最终用户确认。我习惯用一张表来记录这些边界每个边界标注“硬约束”还是“软约束”。硬约束是不可妥协的软约束是可以权衡的。这个区分在后续选型时非常关键。5.2 第二步用目标模型做芯片实测不要只看芯片规格书拿目标模型去实测。实测内容包括模型转换是否顺利、量化后精度如何、推理帧率和延迟、内存占用、以及功耗。如果芯片厂商提供开发板尽量借来实测如果没有要求厂商提供实测数据并确认测试条件。实测时要注意测试条件是否贴近真实场景输入分辨率、批大小、以及环境温度。有些厂商的实测数据是在理想条件下测的参考价值有限。5.3 第三步按八维评测打分把实测结果按八维评测打分每个维度可以设权重。权重根据业务场景定比如电池设备功耗权重高工业设备实时性权重高。打分不是为了选“最高分”而是为了识别风险点。如果某个维度得分很低就要评估这个风险是否可接受或者是否有缓解方案。5.4 第四步识别关键权衡并做决策根据打分结果识别出最关键的权衡关系。比如精度和延迟矛盾、功耗和算力矛盾。然后针对这些矛盾做决策是接受精度下降换延迟还是接受延迟增加保精度。决策要记录理由方便后续复盘。5.5 第五步预留优化空间和退出路径端侧AI项目很少一次成功所以要预留优化空间。比如内存预算留20%余量、算力预算留30%余量。同时要准备退出路径如果主方案芯片供应出问题备选方案是什么如果精度达不到要求是否有云端兜底方案。这些准备工作在项目顺利时看不出价值但在出问题时能救命。6. 几个真实项目里的教训与心得6.1 教训一不要相信“理论算力”早期项目里我按芯片标称算力选型结果实际帧率只有预期的三分之一。后来复盘发现模型里有几个算子不被NPU支持回退到CPU执行而CPU算力很弱成了瓶颈。从那以后我选型时第一件事就是确认目标模型的所有算子是否被支持不支持的话是否有替代实现。6.2 教训二内存峰值要在最坏输入下测另一个项目里模型在正常输入下内存占用正常但遇到极端输入比如画面里目标特别多时后处理阶段的内存分配激增导致OOM。后来我们在测试集里专门加入极端样本确保内存峰值在最坏情况下也可控。6.3 心得一把优化经验写成检查清单端侧AI优化涉及很多细节容易遗漏。我习惯把每次踩坑后的解决方案写成检查清单下次项目开始前过一遍。清单包括算子支持检查、内存峰值测试、尾延迟测试、热稳定性测试、以及长期运行测试。这个清单帮我避免了很多重复错误。6.4 心得二和芯片厂商FAE保持紧密沟通端侧AI工具链的文档往往不完整很多问题只能靠FAE解决。和FAE建立良好关系能大幅缩短调试时间。我的做法是遇到问题先自己排查把复现步骤和日志整理清楚再找FAE这样对方也能更快定位。6.5 心得三不要追求“最优”追求“够用且稳定”端侧AI的优化没有终点总有更快的模型、更省的方案。但产品化要求的是“够用且稳定”而不是“最优”。在满足业务边界的前提下尽早冻结方案把精力放在稳定性测试和异常处理上比继续优化性能更有价值。7. 端侧AI方案选型的快速对照表下面这张表是我在实际项目中总结的快速对照工具用于在选型阶段快速识别风险。表格按九大约束列出常见风险信号和应对方向不针对特定芯片或模型可以通用。约束类型常见风险信号应对方向算力标称TOPS高但无实测数据要求实测目标模型帧率内存容量只算权重大小不算激活值实测峰值内存留20%余量内存带宽模型算术强度低算子融合、权重复用功耗热只测短时功耗连续跑一小时看降频实时性只看平均延迟测P99尾延迟精度只看通用测试集用业务数据测量化后精度成本只看芯片价格算总账含开发和散热开发周期忽略工具链评估拿目标模型跑通转换流程碎片化绑定单一芯片用ONNX解耦沉淀检查清单这张表不能替代详细评估但能在早期快速筛掉明显不靠谱的方案。我通常在和供应商第一次沟通后就用这张表过一遍如果风险信号超过三个就会谨慎推进。8. 写在最后端侧AI的工程判断力比技术栈更重要做了这么多端侧AI项目我越来越觉得这个领域最稀缺的不是会调模型的人也不是会写驱动的人而是能在约束之间做判断的人。模型精度掉了两个点要不要接受功耗超了10%要不要换芯片开发周期紧要不要牺牲可维护性这些判断没有标准答案只能基于对业务场景的深刻理解来做。九大约束和八维评测只是工具帮你把问题结构化但最终决策还是要靠工程判断力。这种判断力来自反复踩坑、复盘、以及和不同角色产品、硬件、测试的碰撞。如果你刚开始做端侧AI我的建议是不要怕踩坑但每次踩坑后一定要写下来形成自己的检查清单。日积月累这些清单就是你最值钱的东西。另外端侧AI的硬件和工具链还在快速演进今天的最佳实践可能明年就过时了。所以保持对新技术的好奇心同时保持对基本约束的敬畏这两者不矛盾。基本约束——算力、内存、带宽、功耗、实时性——在可预见的未来不会消失理解它们比追逐某个具体工具更重要。