端侧跑大模型,为什么算力标得高也没用
编译自 arXiv:2507.09010(cs.AR),发表于 ISLPED 2025 · 开放获取 CC BY 4.0
把大模型放进手机、PC,或者任何不带风扇的盒子里,是过去两年被反复提起的方向。厂商介绍端侧芯片时,习惯把算力标在最前面:多少 TOPS,能跑多大的模型,第几代 NPU。这个数字当然重要,但它掩盖了一个更硬的约束。一篇发表在 ISLPED 上的论文把端侧大模型的推理拆开测了一遍,发现真正的瓶颈不在算力,而在内存带宽,而且两者差了将近两个数量级。
解码阶段在等内存
大模型生成文字分两个阶段,性格完全不同。
第一个阶段是理解输入,把用户给的一段话并行地算一遍,这时的运算以矩阵乘矩阵为主,数据复用率高,属于算力密集型,是芯片算力能发挥作用的地方。
第二个阶段是逐个往外吐字。每生成一个词,模型都要把全部权重读一遍,把历史上下文的中间结果读一遍,算出一个概率分布,选出下一个词,然后再把上面这套重来一次。这里的运算是矩阵乘向量,一次算完就丢掉,权重的复用率极低。换句话说,芯片大部分时间不在计算,而在等数据从内存里搬过来。
论文测出的结果是,解码阶段占据整体运行时间超过 80%。哪怕输入比输出长得多,这个比例依然成立。大模型推理快不快,主要看解码,而解码快不快,基本由内存带宽决定。
不妨按量级估一下这条线在哪。13 亿参数的模型做 4 位量化,权重约 650 兆字节,按 68 GB 每秒的带宽算,光是完整读一遍就需要接近 10 毫秒,一秒最多生成一百来个词。这还只是读权重的账,尚未计入读取历史上下文的那部分开销。算力再充裕,也突破不了这道由带宽划出来的上限。
图1 边缘计算平台上大模型推理的各阶段耗时构成:解码占据八成以上,外部访存主导能耗(依据原文第 1 节剖析数据绘制)
四十 TOPS 只能用到一点七
论文拿一块常见的边缘计算平台做了剖析,数字很说明问题。
这块平台的峰值算力标称 40 TOPS,看起来不低。但它配的是 LPDDR5 内存,带宽约 68 GB 每秒。拿这个带宽去支撑解码阶段那种每算一个词就要搬一遍全部权重的模式,算力利用率掉到了峰值的 1.7%。也就是说,那颗标着 40 TOPS 的芯片,在实际跑大模型解码的时候,接近 98% 的算力是闲置的,全都在等内存。
这个数字解释了端侧 AI 的一个常见困惑:为什么换一颗算力翻倍的芯片,实际生成速度没有翻倍。因为瓶颈根本不在算力那一侧。
还有一层差异要说明。数据中心处理大模型,会把很多用户的请求攒成一批一起算,同一份权重读一次服务一批请求,带宽被摊薄,利用率就上去了。端侧的场景是单人单机,用户的请求一个一个来,没有攒批的机会,带宽只能服务一次运算。这是端侧和云端在物理条件上的分别,不是优化水平的问题。
图2 标称峰值算力与解码阶段实际利用率的对比:算力大部分时间在等内存(依据原文第 1 节剖析数据绘制)
量化省下的是带宽,不只是精度
既然短板是带宽,减小要搬的东西就成了最直接的解法,这也把量化的意义重新摆了一次。
过去讨论量化,焦点通常在精度损失上:从 16 位压到 8 位、4 位,模型效果掉多少。从带宽的角度看,位宽减半,每次要搬的数据就减半,解码速度近似翻倍。量化在端侧的第一价值,是把带宽换算成了速度。
论文选的是 MXINT4 权重量化,这是一种带共享指数的 4 位浮点格式,在压缩位宽的同时保留了一定的动态范围。为了让量化带来的额外开销不抵消省下来的带宽,论文还专门设计了一套配合硬件的数据流,让反量化的过程几乎不产生额外开销。结果是硬件利用率可以做到 100%,而精度损失控制在很小的范围内。量化能不能落地,一半看格式,一半看硬件有没有把反量化的那点计算藏进流水线里。
把数据流按阶段分开设计
论文提出的硬件结构是混合脉动阵列,思路就是承认两个阶段的性质不同,用同一套阵列去服务两者,但要为各自优化数据流。
脉动阵列擅长的是数据复用:数据在阵列里一站一站传下去,被多个计算单元重复利用,适合第一阶段那种矩阵乘矩阵的活。到了解码阶段,矩阵乘向量没什么可复用的,阵列规模再大也用不饱,重点是减少对外的访存次数。所以论文为两种模式分别调了数据流,让权重进来一次就被用足,而不是反复取。
阵列之外的运算也没放过。大模型里除了矩阵乘,还有归一化和位置编码这类非线性的小算子,它们数据量不大,但访存模式碎,容易在不经意间制造额外的内存访问。论文把归一化和旋转位置编码做成专门的单元,缩短延迟、压缩面积、减少访存开销,让整条链路不至于卡在这些不起眼的地方。最终在一颗 13 亿参数的模型上,长输入长输出两种场景分别做到了 247 和 117 每平方毫米每秒的输出速率。
端侧 AI 该比什么
这篇论文对端侧 AI 的启示,比它提出的某个电路结构更值得记住。
端侧和云端处在两种不同的约束下。云端可以堆算力、堆带宽、攒批处理,瓶颈往往是能耗和成本;端侧是一个人用一台设备,算力和带宽都有限,攒批这条路走不通。用同一套指标去衡量两者,结论会很偏。厂商在端侧芯片上标 TOPS,就像在一条限速很低的路上宣传发动机马力:数字不假,但决定你多久到的是那条路。
真正该看的,是芯片在记忆受限的场景下能把外部访存压到多低,是量化之后反量化的开销能不能被流水线吃掉,是那些不起眼的小算子会不会成为新的堵点。这些指标不如 TOPS 那么好懂,但它们离实际体验更近。对做端侧产品的人来说,选芯片时拿一个真实的解码场景去跑时间,比对着参数表比较算力更靠得住。
内容来源:arXiv:2507.09010(cs.AR),发表于 ISLPED 2025
原文标题:Hybrid Systolic Array Accelerator with Optimized Dataflow for Edge Large Language Model Inference
作者:Chun-Ting Chen, HanGyeol Mun, Jian Meng, Mohamed S. Abdelfattah, Jae-sun Seo
原文链接:https://arxiv.org/abs/2507.09010
许可协议:CC BY 4.0(https://creativecommons.org/licenses/by/4.0/)
配图说明:图1、图2 为本文依据原文献内容自行绘制。
改动声明:本文在其基础上进行了中文编译与删节,未改变技术结论与原始数据。
来源:21ic电子网
作者:Ayase





