找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3352

积分

0

好友

446

主题
发表于 2 小时前 | 查看: 4| 回复: 0

很多人一说起 AI 加速,第一反应就是堆算力、堆更多浮点计算单元。
错了。
现在的瓶颈根本不是计算本身,而是数据搬运、通信和不规则算子,峰值算力再高也没用。  

举个最直观的例子,大语言模型推理的时候,每个新生成的 token 都要读写一遍已经存起来的 KV 缓存,这玩意儿根本不怎么缺计算,缺的是内存带宽——你带宽不够,就算计算单元堆得再多,也得等着数据慢悠悠从内存运过来,大部分时间都在摸鱼。  

还有现在流行的混合专家模型(MoE),每次 token 只走部分专家,这种动态路由的不规则计算,原来的通用硬件也根本跑不利索。  

所以现在要跑最新的 SOTA 模型,不管是训练还是推理,没有专门的硬件加速优化,要么成本高到离谱,要么延迟慢到没法用,根本就没法落地。  

芯片设计权衡三角:速度、能效、面积与成本及内存通信和基准测试的关系  

现在整个硬件加速赛道已经铺开了,从带张量核心的通用 GPU,到谷歌 TPU、手机 NPU 这类专用张量处理器,还有 FPGA 可重构设计、ASIC 专用推理芯片,最近还出来了专门给大语言模型推理做的 LPU,甚至存算一体、神经形态计算这些新技术也在跑。  

说白了,都是被刚需逼出来的——没有这些加速,现在的 AI 根本没法从实验室走到你我手机里。  

不管是训练还是推理,现在的大模型早就把压力给到内存和通信了,纯堆计算单元根本解决不了问题。咱们拆开来给你讲清楚每个维度的瓶颈到底在哪。

功耗与能量瓶颈

你知道吗?移动一个字节数据消耗的能量,比做一次浮点计算高好几个数量级。现在绝大多数场景下,整个芯片的功耗大部分都花在数据搬移上,不是花在计算上。  

不同操作能耗消耗对比:数据移动主导能耗  

数据移动能耗显著高于算术运算能耗。咱们分不同硬件看:  

  • GPU 功耗基本都绑在内存流量上,不做算子融合的话,大部分能量都浪费在寄存器、缓存和显存之间来回搬数据;  
  • TPU/Edge NPU 靠专用数据流省能量,但一旦工作负载不符合设计预期,需要频繁访问片外存储,能量效率马上掉下来;  
  • ASIC 和 FPGA 倒是能靠流水线和片上缓存减少搬移,但只要模型出了新算子需要回退到 CPU,或者片上存不下要频繁换数据,能量优势立刻没了;  
  • 哪怕是专门针对大模型推理的 LPU,还有存算一体、神经形态这些新架构,能量瓶颈也都绕不开 KV 缓存的搬移成本——本质还是数据移动的问题。

延迟与吞吐量瓶颈

讲完功耗,再讲大家最关心的延迟和吞吐量。  

很多厂商吹峰值 TOPS,实际跑起来根本达不到,为什么?因为吞吐量和延迟从来不是单靠算力堆出来的,瓶颈永远在数据那端。  

LLM推理关键路径与瓶颈:IO-Aware Attention与分页KV-Cache优化  

就拿大语言模型推理举例:整个过程分预填和解码两个阶段,预填是计算密集型,解码是妥妥的带宽密集型。每个新生成的 token 都要读写整个 KV 缓存,数据搬不完,计算单元再强也只能闲着等数据。  

不同硬件的痛点也不一样:  

  • GPU 靠批处理提吞吐量,但批越大排队越久,尾延迟根本控不住;  
  • TPU/NPU 对固定形状的 dense 算子跑得快,形状一变、序列一长,编译调度跟不上,延迟直接飙升;  
  • ASIC 低延迟靠固定算子,新算子不支持,延迟直接崩;  
  • FPGA 能做确定性低延迟,但路由拥堵和片上内存不够的问题,稍微长点的序列就掉吞吐量;  
  • 专门做 LLM 推理的 LPU,哪怕把调度做到硬件里,也绕不开一个死规律:上下文越长,需要搬的 KV 缓存越多,延迟下限就是由内存带宽决定的,再怎么优化架构也破不了这个物理限制。

面积与成本瓶颈

片上大内存 vs 小内存的能效与成本权衡  

硅片面积就那么大,你把面积给计算单元还是给内存,这是永恒的 Trade-off。现在越来越多的设计发现,把面积分给内存和互联,比分给更多计算单元回报高得多。  

比如现在做大模型推理,哪怕你有满片的计算单元,要放下 70B 模型的权重和 KV 缓存,你就得买更多卡,哪怕每张卡的计算利用率只有 30%,这个“容量税”你不得不交。  

专门做低延迟的 SRAM 架构 LPU,延迟确实牛,但要存大模型权重就得堆很多芯片,成本直接炸上天,根本不是一般人用得起的。  

新架构也一样,存算一体要做很多 ADC/DAC 周边电路,这些东西占的面积比计算交叉阵还大;神经形态芯片把大量面积分给存储和路由,做密集模型的时候面积效率远不如传统的脉动阵列,成本根本收不回来。

内存与通信瓶颈

现在端到端性能,基本都是内存容量、内存带宽和通信限制死的,峰值算力就是个摆看的数字。  

大模型训练与推理的内存容量和带宽瓶颈  

训练的时候要存激活、梯度、优化器状态,大模型这些东西分分钟把显存占满;推理的时候 LLM 的 KV 缓存,随着上下文长度和并发数线性涨,哪怕计算管够,带宽不够照样卡成 PPT。分布式训练更不用说,多卡之间做 all-reduce,通信时间经常比计算时间还长,互联带宽不够,堆再多卡也扩不动。  

不同硬件的具体情况也不同:  

  • GPU 现在算力涨得比内存带宽快得多,“内存墙”越来越明显;  
  • TPU 编译器只要工作集稍微超过片上 SRAM 容量,性能直接跳崖,比 GPU 降级快多了;  
  • ASIC 靠固定数据流省带宽,碰到 Attention 这种不规则访问,直接卡成狗;  
  • LPU 做多芯片互联,要求纳秒级同步,普通 PCIe 根本满足不了,必须做专用互联,成本又上去了;  
  • 存算一体倒是解决了片外搬移的问题,但片上网络又成了新瓶颈,交叉阵算完传不出来,计算单元照样闲着。

资源利用率瓶颈

很多人忽略这点,但实际体验里这个影响极大。不规则的工作负载——比如非结构化稀疏、动态形状、MoE 路由,都会导致负载不均衡,哪怕峰值算力很高,实际能用起来的可能不到一半。  

资源均衡利用 vs 高竞争导致吞吐量下降  

举个例子,小批量推理的时候,很多 ASIC 为了峰值 TOPS 做了很宽的向量,batch=1 的时候利用率连十分之一都不到;TPU 的脉动阵列跑 matmul 快得飞起,跑 LayerNorm、Softmax 这些小算子的向量单元不够用,整个大脉动阵列只能闲着;大模型的预填和解码两个阶段,预填占满计算,解码阶段计算单元 90% 时间在等数据,利用率根本上不去,就算是专门做 LPU 的,也要靠特殊的调度硬件才能把利用率拉回来。

基准测试的坑

最后说下基准测试的坑,现在很多厂商吹的成绩都是挑最优场景测的,换个实际负载直接不对味。  

性能结果对软件栈、精度、模型大小、batch 大小、序列长度都特别敏感,同一个硬件不同测法能出差好几倍的结果。  

比如很多存算一体的论文只测计算单元的峰值,不算 ADC 转换和非 matmul 算子的开销;很多 NPU 只测峰值 TOPS,不说有多少算子不支持要回退 CPU;测大模型只说 tokens per second,不告诉你并发多少、尾延迟多少、上下文多长,这些都是耍流氓。  

基准测试与可复现性挑战:多因素影响性能评估  

总结下来就是:不管什么架构,什么场景,现在神经网络加速的核心矛盾从来都不是“不够算力”,而是“数据搬不过来”。所有有效的优化,本质都是减少不必要的数据移动,让数据尽量待在离计算单元近的地方,这个逻辑从上世纪的“内存墙”提出到今天 AI 大爆发,从来没变过。  

参考:Hardware Acceleration for Neural Networks: A Comprehensive Survey
(本文由云栈社区整理发布)




上一篇:深度学习硬件加速器完全指南:从GPU到TPU/FPGA的架构演进与LLM推理瓶颈
下一篇:原子层沉积(ALD)原理与工艺流程:芯片制造的原子级精确控制之道
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-2 20:51 , Processed in 0.647495 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表