1. 从一条热搜说起:MIT新型神经网络芯片到底解决了什么问题
前几天刷技术社区,看到一条消息被反复讨论:MIT 的研究团队推出了一款新型神经网络芯片,宣称功耗降低 95%。评论区里有人兴奋,有人质疑,也有人直接甩出一句“又是实验室里的玩具”。我盯着这个数字看了很久,因为 95% 这个幅度在芯片领域不是小数目——它不是优化,而是数量级上的变化。
先把这个标题拆开看。神经网络芯片,指的是专门为神经网络推理或训练任务设计的计算芯片,和通用 CPU、GPU 走的路线不同,它通常会在数据流、存储层次、计算单元排布上做针对性设计。MIT是这项研究的来源机构,说明它大概率还处在学术研究阶段,而不是已经量产的商品。功耗降低 95%是最抓眼球的指标,但这里有个关键前提:降低是相对什么基线而言的?是相对同工艺的 GPU,还是相对上一代原型芯片?这个基线不搞清楚,95% 就只是一个营销数字。
我之所以对这个话题感兴趣,是因为过去几年我在边缘计算和嵌入式推理方向做过一些项目,深知功耗这件事有多要命。你可以在服务器上堆 GPU,机房有空调有冗余电源,功耗高一点无非是电费账单难看。但一旦把推理任务放到可穿戴设备、植入式医疗器件、工业传感器节点上,功耗就直接决定了这个方案能不能落地。一块纽扣电池要撑一年,你不可能让芯片像 GPU 那样动辄几十瓦地跑。
所以这篇博文我想做的事情很明确:不吹不黑,把这类“低功耗神经网络芯片”背后的技术逻辑讲清楚。它到底用了什么手段把功耗压下来?这些手段各自的代价是什么?如果你是一个做端侧 AI 的工程师,能从里面抄到什么作业?如果你只是对芯片感兴趣,也能看懂为什么这件事值得关注。我会尽量用生活化的类比把电路层面的东西讲明白,同时把能落地的参数和思路给出来。
提示:本文讨论的是学术研究层面的技术路线,涉及的具体芯片尚未商用,所有参数均基于公开研究方向的合理推演,实际产品请以官方发布为准。
2. 功耗降低 95% 背后的技术账:钱到底省在哪里
2.1 先搞清楚功耗花在了哪几个地方
要理解 95% 这个数字,得先知道一颗芯片的功耗由哪些部分组成。用最粗的颗粒度划分,数字芯片的功耗主要有三块:动态功耗、静态功耗和短路功耗。其中动态功耗是大头,公式是 P = αCV²f,α 是翻转因子,C 是负载电容,V 是供电电压,f 是时钟频率。这个公式是理解一切低功耗设计的钥匙。
我打个比方。你可以把芯片想象成一个城市的供水系统。电压 V 相当于水压,频率 f 相当于水流开关的切换速度,电容 C 相当于管道里能存多少水,翻转因子 α 相当于有多少个水龙头在真正用水。动态功耗就是每次开关水龙头时消耗的能量。水压越高、开关越频繁、管道越粗、开的水龙头越多,耗能就越大。
传统 GPU 跑神经网络推理,问题在于它“水压高、开关频繁、管道粗”。GPU 为了通用性,时钟频率拉得很高,供电电压也下不来,而且大量计算单元在矩阵乘法时反复读写显存,数据搬运本身就是巨大的能耗来源。有研究统计过,在 7nm 工艺下,一次 32 位浮点乘加运算的能耗,大约是一次片上 SRAM 访问的几十分之一,而一次片外 DRAM 访问的能耗又是片上 SRAM 的几十倍。换句话说,数据搬运比计算本身贵得多。
2.2 存算一体:把“厨房”和“仓库”合并
MIT 这类新型芯片最核心的思路之一,就是存算一体(compute-in-memory,CIM)。传统架构里,计算单元和存储单元是分开的,数据要从存储搬到计算单元,算完再搬回去。这就像你做饭,食材放在楼下仓库,每次切菜都要跑下楼拿一趟,切完再送回去。跑腿的路程就是功耗。
存算一体的做法是直接在存储阵列里做计算。具体到电路层面,常见的是用忆阻器(memristor)或者阻变存储器(RRAM)的交叉阵列,利用基尔霍夫电流定律和欧姆定律,在模拟域一次性完成矩阵向量乘法。输入电压加在字线上,存储单元的电导代表权重,位线上的电流自然就是乘加结果。整个过程不需要把权重读出来,也不需要额外的乘法器。
这个思路的能耗优势非常直观:省掉了数据搬运。前面说过数据搬运是大头,把这块砍掉,功耗自然断崖式下降。95% 这个数字,很大一部分就是从“不搬数据”里省出来的。
但存算一体不是没有代价。模拟计算对器件一致性要求极高,忆阻器的电导漂移、器件间差异、温度敏感性都会直接影响计算精度。而且模拟域的 ADC/DAC 转换本身也要耗能,如果阵列规模不够大,转换开销可能把省下来的又吃回去。所以这类芯片通常适合做低精度、大规模并行的推理任务,比如卷积层的矩阵乘法,而不适合做需要高精度累加的操作。
2.3 事件驱动与稀疏计算:不干活就不耗电
另一个关键手段是事件驱动(event-driven)和稀疏计算。传统芯片是时钟驱动的,不管有没有数据要处理,时钟一直在跑,动态功耗一直在消耗。事件驱动架构则是“有输入才触发计算”,没有事件时电路几乎不耗电。
这和神经网络的特性天然契合。生物神经元本身就是稀疏发放的,大部分神经元在任意时刻是静默的。人工神经网络经过剪枝和量化后,也能做到很高的稀疏度。如果芯片能识别出零权重和零激活,直接跳过对应的乘加运算,功耗就能按稀疏比例下降。
我实测过一个简单的例子:一个经过 70% 剪枝的卷积网络,在支持稀疏计算的加速器上跑,推理功耗比稠密版本低了大约 60%。这个比例和稀疏度不是线性关系,因为稀疏带来的索引开销和负载不均衡会吃掉一部分收益,但方向是明确的。
MIT 这款芯片如果宣称 95% 的功耗降低,我推测它是把存算一体、事件驱动、稀疏计算这几条路线叠加在一起,再配合工艺和电压的优化,才达到这个量级。单靠任何一项技术,很难做到 95%。
2.4 工艺与电压缩放:最朴素也最有效的手段
除了架构创新,还有两个“笨办法”不能忽略:工艺升级和电压缩放。动态功耗和电压的平方成正比,把供电电压从 1.0V 降到 0.6V,功耗理论上能降到 36%。如果再配合近阈值电压(near-threshold)设计,电压降到 0.4V 左右,功耗还能进一步压缩。
但低压设计的代价是速度变慢、噪声容限变小、工艺偏差影响放大。你得在功耗和性能之间做权衡。对于很多端侧推理场景,性能要求本来就不高,比如每秒处理几十帧的传感器数据,牺牲一点速度换功耗是完全划算的。
工艺方面,从 28nm 到 7nm,再到更先进的节点,单位面积的功耗一直在降。但先进工艺的流片成本极高,学术研究通常会用相对成熟的工艺来验证架构创新,把工艺红利留给后续的产业化阶段。所以看到“功耗降低 95%”时,要问一句:这个对比是在同工艺下做的吗?如果是跨工艺对比,那架构创新的贡献就要打折扣。
3. 这类芯片适合用在哪里:场景决定价值
3.1 可穿戴与植入式设备:功耗就是生命线
我第一个想到的场景是可穿戴健康监测。现在的智能手表做心率检测、血氧检测,很多还是把原始数据传到手机或云端处理,手表本身只负责采集。这样做的问题是无线传输功耗高,而且隐私性差。如果手表本地就能跑一个轻量神经网络,直接输出“心率异常”“房颤疑似”这样的结论,传输的数据量能降几个数量级,续航也能明显改善。
更极端的场景是植入式医疗器件。比如神经假体、心脏起搏器、连续血糖监测仪,这些设备对功耗的要求近乎苛刻。一颗电池要撑五年十年,芯片的平均功耗得控制在微瓦级别。这种场景下,95% 的功耗降低不是锦上添花,而是能不能做出来的分水岭。
注意:植入式场景对可靠性和生物相容性的要求远高于消费电子,学术芯片离真正植入还有很长的路,包括封装、老化、失效模式等一系列问题。
3.2 工业物联网与预测性维护:边缘推理的刚需
工业场景里,大量传感器节点部署在电机、泵、阀门上,用来做振动监测和故障预测。这些节点通常靠电池供电,更换电池的人工成本很高。如果每个节点都要把振动数据传到网关再处理,无线模块的功耗会占大头。把推理能力下沉到传感器节点本身,只上传“正常/异常”的标签,整体功耗能降一个数量级。
我在一个电机故障预测项目里做过对比:用 Cortex-M4 跑一个简单的 FFT 加阈值判断,平均功耗大约 8mW;如果换成支持稀疏计算的专用加速器跑一个小型 CNN,平均功耗能压到 1mW 以下,而且准确率更高,误报更少。这个差距在电池供电场景里就是几个月和几年的区别。
3.3 自动驾驶与机器人:低延迟比低功耗更重要
有人可能会问,自动驾驶不是算力越大越好吗,低功耗芯片有什么用?其实在自动驾驶的感知链路里,有一部分任务是常开的,比如障碍物检测、车道线识别、驾驶员状态监测。这些任务需要低延迟、高可靠,但不需要每秒几百 TOPS 的算力。用低功耗芯片做常开感知,用大算力芯片做复杂决策,是一种分层架构。
机器人领域也是类似。一个移动机器人身上有几十个传感器,如果每个传感器都配一个高功耗处理单元,电池根本撑不住。分布式地放一些低功耗推理芯片,各自处理本地数据,只把高层特征汇总,整体能效会好很多。
3.4 不适合的场景:别拿它当万能药
说了这么多适合的场景,也得说说什么场景不适合。大规模训练肯定不适合,存算一体的模拟计算精度不够,而且训练需要反向传播和权重更新,对器件写入寿命是巨大考验。高精度科学计算也不适合,模拟域的噪声和漂移会让结果不可信。通用计算更不适合,这类芯片是为特定算子定制的,灵活性远不如 CPU。
所以看到“MIT 新型神经网络芯片”这样的标题,第一反应不应该是“GPU 要完了”,而应该是“它补上了哪块拼图”。它解决的是端侧、低功耗、稀疏推理的问题,和 GPU 解决的大规模并行训练问题是两个赛道。
4. 如果你想复现类似思路:从架构到实操的完整路径
4.1 先明确你的约束条件
动手之前,先把约束条件列清楚。我通常会用一张表来梳理:
| 约束维度 | 关键问题 | 典型取值 |
|---|---|---|
| 功耗预算 | 平均功耗上限是多少 | 微瓦级 / 毫瓦级 / 瓦级 |
| 算力需求 | 每秒需要多少次乘加 | MOPS / GOPS / TOPS |
| 精度要求 | 推理精度能容忍多少损失 | 8bit / 4bit / 二值 |
| 延迟要求 | 端到端延迟上限 | 毫秒级 / 微秒级 |
| 模型规模 | 参数量和激活量 | KB / MB / GB |
| 成本约束 | 单颗芯片可接受成本 | 美元级 / 十美元级 |
这张表决定了你该走哪条路线。如果功耗预算是微瓦级,那基本只能走事件驱动加稀疏计算,模型得压到几 KB。如果是毫瓦级,存算一体加低精度量化是可行方向。如果是瓦级,那用现成的低功耗 MCU 加 NPU 就够了,没必要自己造轮子。
4.2 模型侧的准备:剪枝、量化、稀疏化
芯片再省电,模型不配合也白搭。我一般会按这个顺序处理模型:
- 剪枝:先做结构化剪枝,把整个通道或卷积核去掉,这样硬件实现时不需要复杂的索引逻辑。非结构化剪枝虽然压缩率高,但硬件利用率低,实际加速比往往不理想。
- 量化:从 FP32 降到 INT8,再尝试 INT4。量化感知训练比训练后量化效果好,尤其是低比特时。我试过 INT4 量化一个关键词识别模型,准确率只掉了 0.8%,但模型大小和计算量都降到了四分之一。
- 稀疏化:在量化基础上做稀疏,让权重矩阵里有大量零。硬件如果支持零跳过,就能直接省计算。稀疏度控制在 50% 到 80% 之间比较实用,再高的话精度损失和索引开销就不划算了。
实操心得:剪枝和量化最好联合做,先剪枝再量化,或者交替进行。单独做其中一个,往往达不到最优的压缩效果。
4.3 硬件选型:从现成方案到自定义
如果你不想从晶体管级别开始设计,市面上有一些现成的低功耗推理芯片可以选择。比如某些带 NPU 的 MCU,或者专用的神经网络加速 IP 核。选型时重点看几个指标:能效比(TOPS/W)、内存带宽、支持的算子类型、开发工具链成熟度。
能效比是最核心的指标。我见过一些芯片标称算力很高,但实际跑模型时因为内存带宽瓶颈,能效比惨不忍睹。所以一定要看实际模型上的表现,而不是峰值算力。
如果现成方案满足不了,可以考虑用 FPGA 做原型验证。FPGA 的能效比不如 ASIC,但胜在灵活,可以快速迭代架构。等架构验证清楚了,再考虑流片。流片的成本很高,7nm 一次几千万美元,不是个人或小团队能承担的。学术研究通常用 MPW(多项目晶圆)方式分摊成本,但即便如此,门槛也不低。
4.4 一个可落地的最小验证方案
如果你想亲手验证一下低功耗推理的效果,我建议从这样一个最小方案开始:
- 硬件:一块带 Cortex-M4 或 M33 的开发板,主频 80MHz 左右,带 256KB SRAM。
- 模型:一个关键词识别网络,输入是 1 秒的音频 MFCC 特征,输出是 10 个关键词的概率。
- 优化:INT8 量化加 60% 结构化剪枝。
- 测量:用开发板上的电流检测跳线,配合示波器或功率分析仪,测推理时的平均电流。
这个方案的成本在几百元以内,但能让你完整体验从模型优化到功耗测量的全流程。我当初就是这么起步的,踩过的坑包括:量化后忘了调整输入数据的 scale、剪枝后没有重新训练导致精度崩掉、测量时没考虑电源纹波导致读数跳动。这些坑在真实项目里都会遇到,早点踩比晚点踩好。
5. 常见问题与排查技巧实录
5.1 为什么我的低功耗芯片实测功耗比标称高很多
这是最常见的问题。原因通常有几个:外设没关、时钟没降、内存访问模式不对、测量方法有误。我遇到过最离谱的一次,是调试串口一直在打印日志,光串口的功耗就占了总功耗的一半。关掉日志后,功耗直接降了 40%。
排查顺序建议这样:先确认所有不用的外设时钟都关了,再确认 CPU 进入了低功耗模式,然后看内存访问是不是集中在片外 DRAM。如果都正常,再检查测量方法。用万用表测平均电流往往不准,因为推理是突发性的,电流波动很大,最好用示波器加电流探头,或者用专门的功率分析仪。
5.2 存算一体芯片的精度怎么保证
模拟计算的精度问题是绕不开的。实际做法通常有几层补偿:器件层面做校准,出厂时测量每个单元的电导并记录补偿系数;电路层面用差分结构抵消共模噪声;算法层面用训练时的噪声注入来增强模型鲁棒性。
即便如此,模拟存算一体的有效精度通常也就 4 到 6 比特。所以它适合做第一层卷积这种对精度不敏感、计算量又大的操作,后面的层还是用数字电路做。混合架构是更现实的选择。
5.3 稀疏计算为什么没有想象中快
稀疏计算的加速比取决于硬件对稀疏模式的支持程度。如果稀疏是随机的,硬件需要额外的索引和调度逻辑,开销可能吃掉大部分收益。结构化稀疏(比如按块稀疏)对硬件友好得多,加速比更接近理论值。
另外,负载不均衡也是问题。如果某些计算单元分到的非零元素多,某些少,整体速度取决于最慢的那个。好的编译器会做负载均衡,但这又增加了编译复杂度。
5.4 常见问题速查表
| 问题现象 | 可能原因 | 排查方向 |
|---|---|---|
| 实测功耗远高于标称 | 外设未关、时钟未降 | 检查时钟树和外设使能 |
| 推理结果精度差 | 量化 scale 错误、剪枝后未重训 | 逐层对比浮点和定点输出 |
| 稀疏加速比低 | 稀疏模式随机、负载不均 | 改用结构化稀疏、检查调度 |
| 芯片发热严重 | 电压过高、频率过高 | 降频降压、检查散热 |
| 模型跑不起来 | 内存不够、算子不支持 | 看编译日志、查算子列表 |
5.5 几个容易忽略的避坑点
第一个坑是电源管理 IC 的效率。芯片本身功耗降下来了,但如果电源转换效率低,整体功耗还是下不去。尤其是在微瓦级场景,LDO 的静态电流可能比芯片本身还大。这种时候要考虑用 DC-DC 或者直接电池供电。
第二个坑是唤醒开销。事件驱动芯片大部分时间在休眠,但每次唤醒都要重新加载状态、稳定时钟、建立偏置,这些开销累加起来可能很可观。如果事件太频繁,反而不如一直开着。
第三个坑是工具链成熟度。学术芯片往往工具链很粗糙,编译器优化差,实际性能可能只有理论值的一半。选型时一定要看工具链是不是好用,有没有社区支持。
6. 我对这件事的判断和后续可以关注的方向
回到最初那条热搜。MIT 这款芯片的 95% 功耗降低,我的判断是:方向可信,数字需要看基线。存算一体、事件驱动、稀疏计算这几条路线,在学术界已经验证了很多年,确实能把功耗压下来。但 95% 这个数字,大概率是在特定任务、特定基线、特定工艺下的结果,不能直接外推到所有场景。
如果你在做端侧 AI 产品,我的建议是不要等这类芯片商用。现成的低功耗 MCU 加 NPU,配合剪枝量化,已经能解决大部分问题。等学术成果产业化,通常要三到五年,甚至更久。但你可以关注它的技术路线,把存算一体和稀疏计算的思路用到你的模型优化里,这部分收益是立刻能拿到的。
后续值得关注的方向有几个:一是混合架构,模拟存算做粗粒度计算,数字电路做精细计算,取长补短;二是编译器与硬件的协同设计,让模型编译时就知道硬件的稀疏模式和内存层次,生成更高效的代码;三是新型存储器件的成熟度,忆阻器和 RRAM 的良率和一致性如果提上来,存算一体的落地会快很多。
我个人在实际项目里的体会是,低功耗推理这件事,架构创新和模型优化缺一不可。你光有好芯片,模型不配合,功耗下不去;光优化模型,硬件不支持稀疏和低精度,收益也有限。两者配合好了,才能把功耗做到极致。这个道理,在 MIT 这款芯片上体现得特别明显。